UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

110 lines • 8.98 kB
"use strict"; /** * x402 support for the CDP SDK. * * Import from `@coinbase/cdp-sdk/x402` to access: * - **Resource server**: `createX402Server` — add x402 payment gating to HTTP endpoints * - **Payment client**: `CdpX402Client` — pay for x402-protected APIs * - **Facilitator**: `createCdpFacilitatorClient` — CDP-hosted payment facilitator * - **Spend controls**: guardrails for autonomous agents * - **Builder codes**: optional `builderCode` on client/server for ERC-8021 attribution * - **Signer adapters**: bridge CDP accounts into existing x402 setups * * ## Quick start * * ### Gate an endpoint * * ```typescript * import { createX402Server } from "@coinbase/cdp-sdk/x402"; * import { paymentMiddlewareFromHTTPServer } from "@x402/express"; * * // Set: CDP_API_KEY_ID, CDP_API_KEY_SECRET, CDP_WALLET_SECRET * const server = await createX402Server({ * routes: { "GET /report": { price: "$0.01", description: "AI-generated report" } }, * }); * app.use(paymentMiddlewareFromHTTPServer(server)); * console.log("Receiving EVM payments at", server.payToEvmAddress); * console.log("Receiving Solana payments at", server.payToSvmAddress); * ``` * * ### Pay for an x402-protected API * * ```typescript * import { CdpX402Client } from "@coinbase/cdp-sdk/x402"; * import { wrapFetchWithPayment } from "@x402/fetch"; * * // Set: CDP_API_KEY_ID, CDP_API_KEY_SECRET, CDP_WALLET_SECRET * const client = new CdpX402Client(); * const fetchWithPayment = wrapFetchWithPayment(fetch, client); * const response = await fetchWithPayment("https://api.example.com/report"); * ``` * * ### Use a CDP-managed wallet with an existing x402Client * * ```typescript * import { CdpClient } from "@coinbase/cdp-sdk"; * import { x402Client } from "@x402/core/client"; * import { registerExactEvmScheme } from "@x402/evm/exact/client"; * import { fromCdpEvmAccount } from "@coinbase/cdp-sdk/x402"; * * const cdp = new CdpClient(); * const account = await cdp.evm.getOrCreateAccount({ name: "my-signer" }); * * const client = new x402Client(); * registerExactEvmScheme(client, { signer: fromCdpEvmAccount(account) }); * ``` * * @module */ Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefaultEvmRpcUrls = exports.cdpSolanaAccountToSvmSigner = exports.fromCdpSmartWallet = exports.fromCdpEvmAccount = exports.normalizePayee = exports.normalizeNetwork = exports.normalizeAsset = exports.SpendTracker = exports.parseAmount = exports.parseDuration = exports.SpendControlErrorCodes = exports.SpendControlError = exports.getSpendControlsRegistry = exports.applySpendControls = exports.CDP_FACILITATOR_URL = exports.createCdpFacilitatorClient = exports.CdpX402Client = exports.buildBazaarDeclaration = exports.CDP_SUPPORTED_EXTENSIONS = exports.CDP_EXTENSION_BUILDER_CODE = exports.CDP_EXTENSION_BAZAAR = exports.CDP_EXTENSION_GAS_SPONSORING_ERC20_APPROVAL = exports.CDP_EXTENSION_GAS_SPONSORING_EIP2612 = exports.getCdpExtensionRegistrations = exports.getCdpDefaultSchemes = exports.CDP_SERVER_DEVELOPMENT_NETWORKS = exports.CDP_SERVER_DEVELOPMENT_SVM_NETWORKS = exports.CDP_SERVER_DEVELOPMENT_EVM_NETWORKS = exports.CDP_SERVER_DEFAULT_NETWORKS = exports.CDP_SERVER_DEFAULT_SVM_NETWORKS = exports.CDP_SERVER_DEFAULT_EVM_NETWORKS = exports.X402Server = exports.createX402Server = void 0; // Resource server var server_js_1 = require("./server.js"); Object.defineProperty(exports, "createX402Server", { enumerable: true, get: function () { return server_js_1.createX402Server; } }); Object.defineProperty(exports, "X402Server", { enumerable: true, get: function () { return server_js_1.X402Server; } }); Object.defineProperty(exports, "CDP_SERVER_DEFAULT_EVM_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEFAULT_EVM_NETWORKS; } }); Object.defineProperty(exports, "CDP_SERVER_DEFAULT_SVM_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEFAULT_SVM_NETWORKS; } }); Object.defineProperty(exports, "CDP_SERVER_DEFAULT_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEFAULT_NETWORKS; } }); Object.defineProperty(exports, "CDP_SERVER_DEVELOPMENT_EVM_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEVELOPMENT_EVM_NETWORKS; } }); Object.defineProperty(exports, "CDP_SERVER_DEVELOPMENT_SVM_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEVELOPMENT_SVM_NETWORKS; } }); Object.defineProperty(exports, "CDP_SERVER_DEVELOPMENT_NETWORKS", { enumerable: true, get: function () { return server_js_1.CDP_SERVER_DEVELOPMENT_NETWORKS; } }); var server_extensions_js_1 = require("./server-extensions.js"); Object.defineProperty(exports, "getCdpDefaultSchemes", { enumerable: true, get: function () { return server_extensions_js_1.getCdpDefaultSchemes; } }); Object.defineProperty(exports, "getCdpExtensionRegistrations", { enumerable: true, get: function () { return server_extensions_js_1.getCdpExtensionRegistrations; } }); Object.defineProperty(exports, "CDP_EXTENSION_GAS_SPONSORING_EIP2612", { enumerable: true, get: function () { return server_extensions_js_1.CDP_EXTENSION_GAS_SPONSORING_EIP2612; } }); Object.defineProperty(exports, "CDP_EXTENSION_GAS_SPONSORING_ERC20_APPROVAL", { enumerable: true, get: function () { return server_extensions_js_1.CDP_EXTENSION_GAS_SPONSORING_ERC20_APPROVAL; } }); Object.defineProperty(exports, "CDP_EXTENSION_BAZAAR", { enumerable: true, get: function () { return server_extensions_js_1.CDP_EXTENSION_BAZAAR; } }); Object.defineProperty(exports, "CDP_EXTENSION_BUILDER_CODE", { enumerable: true, get: function () { return server_extensions_js_1.CDP_EXTENSION_BUILDER_CODE; } }); Object.defineProperty(exports, "CDP_SUPPORTED_EXTENSIONS", { enumerable: true, get: function () { return server_extensions_js_1.CDP_SUPPORTED_EXTENSIONS; } }); Object.defineProperty(exports, "buildBazaarDeclaration", { enumerable: true, get: function () { return server_extensions_js_1.buildBazaarDeclaration; } }); // Main client var client_js_1 = require("./client.js"); Object.defineProperty(exports, "CdpX402Client", { enumerable: true, get: function () { return client_js_1.CdpX402Client; } }); // Facilitator var facilitator_js_1 = require("./facilitator.js"); Object.defineProperty(exports, "createCdpFacilitatorClient", { enumerable: true, get: function () { return facilitator_js_1.createCdpFacilitatorClient; } }); Object.defineProperty(exports, "CDP_FACILITATOR_URL", { enumerable: true, get: function () { return facilitator_js_1.CDP_FACILITATOR_URL; } }); // Spend controls var apply_js_1 = require("./guardrails/apply.js"); Object.defineProperty(exports, "applySpendControls", { enumerable: true, get: function () { return apply_js_1.applySpendControls; } }); Object.defineProperty(exports, "getSpendControlsRegistry", { enumerable: true, get: function () { return apply_js_1.getSpendControlsRegistry; } }); var types_js_1 = require("./guardrails/types.js"); Object.defineProperty(exports, "SpendControlError", { enumerable: true, get: function () { return types_js_1.SpendControlError; } }); Object.defineProperty(exports, "SpendControlErrorCodes", { enumerable: true, get: function () { return types_js_1.SpendControlErrorCodes; } }); Object.defineProperty(exports, "parseDuration", { enumerable: true, get: function () { return types_js_1.parseDuration; } }); Object.defineProperty(exports, "parseAmount", { enumerable: true, get: function () { return types_js_1.parseAmount; } }); var spend_tracker_js_1 = require("./guardrails/spend-tracker.js"); Object.defineProperty(exports, "SpendTracker", { enumerable: true, get: function () { return spend_tracker_js_1.SpendTracker; } }); var normalize_js_1 = require("./guardrails/normalize.js"); Object.defineProperty(exports, "normalizeAsset", { enumerable: true, get: function () { return normalize_js_1.normalizeAsset; } }); Object.defineProperty(exports, "normalizeNetwork", { enumerable: true, get: function () { return normalize_js_1.normalizeNetwork; } }); Object.defineProperty(exports, "normalizePayee", { enumerable: true, get: function () { return normalize_js_1.normalizePayee; } }); // Signer adapters (for x402 Dev migration) var account_signers_js_1 = require("./account-signers.js"); Object.defineProperty(exports, "fromCdpEvmAccount", { enumerable: true, get: function () { return account_signers_js_1.fromCdpEvmAccount; } }); Object.defineProperty(exports, "fromCdpSmartWallet", { enumerable: true, get: function () { return account_signers_js_1.fromCdpSmartWallet; } }); Object.defineProperty(exports, "cdpSolanaAccountToSvmSigner", { enumerable: true, get: function () { return account_signers_js_1.cdpSolanaAccountToSvmSigner; } }); // Constants var constants_js_1 = require("./constants.js"); Object.defineProperty(exports, "getDefaultEvmRpcUrls", { enumerable: true, get: function () { return constants_js_1.getDefaultEvmRpcUrls; } }); //# sourceMappingURL=index.js.map