@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
110 lines • 8.98 kB
JavaScript
;
/**
* 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