# Coinbase Developer Documentation: SDKs

## SDKs

- [SDKs / CRYPTO INFRASTRUCTURE (1429 pages)](https://docs.cdp.coinbase.com/_llms/sdks/crypto-infrastructure.md): Documentation for SDKs / CRYPTO INFRASTRUCTURE.

### SDKs

- [Introduction](https://docs.cdp.coinbase.com/sdks/index.md): Explore our SDKs for building onchain apps, AI agents, and more.

### COINBASE APIs

#### Coinbase Advanced Trade

- [Python](https://docs.cdp.coinbase.com/sdks/advanced-trade/python.md)
- [TypeScript](https://docs.cdp.coinbase.com/sdks/advanced-trade/typescript.md)
- [Go](https://docs.cdp.coinbase.com/sdks/advanced-trade/go.md)
- [Java](https://docs.cdp.coinbase.com/sdks/advanced-trade/java.md)

### INSTITUTIONAL APIs

#### Coinbase Prime

- [Java](https://docs.cdp.coinbase.com/sdks/prime/java.md)
- [.NET](https://docs.cdp.coinbase.com/sdks/prime/dotnet.md)
- [Go](https://docs.cdp.coinbase.com/sdks/prime/go.md)
- [Python](https://docs.cdp.coinbase.com/sdks/prime/python.md)
- [TypeScript](https://docs.cdp.coinbase.com/sdks/prime/typescript.md)

### COINBASE WALLET

#### Coinbase Wallet SDK

##### Base Pay

- [Pay](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/pay.md): Send USDC payments on the Base network
- [getPaymentStatus](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/getPaymentStatus.md): Check the status of a payment transaction
- [subscription.subscribe](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/subscribe.md): Create USDC subscriptions with spend permissions on Base network
- [subscription.getStatus](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/getStatus.md): Check the status and details of an existing subscription
- [subscription.charge](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/charge.md): Execute subscription charges from your backend using CDP server wallets
- [subscription.prepareCharge](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/prepareCharge.md): Prepare transaction calls to charge a subscription (advanced)
- [subscription.revoke](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/revoke.md): Revoke subscriptions from your backend using CDP server wallets
- [subscription.prepareRevoke](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/prepareRevoke.md): Prepare transaction calls to revoke a subscription (advanced)
- [subscription.getOrCreateSubscriptionOwnerWallet](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/getOrCreateSubscriptionOwnerWallet.md): Create or retrieve a CDP smart wallet to act as subscription owner
- [Subscriptions Overview](https://docs.cdp.coinbase.com/coinbase-wallet/reference/base-pay/subscriptions-overview.md): Accept recurring USDC payments using spend permissions on Base

##### Core

- [createBaseAccountSDK](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/createBaseAccount.md): Create a Coinbase Wallet SDK instance with EIP-1193 compliant provider
- [getProvider](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/getProvider.md): Get an Ethereum provider instance from the Coinbase Wallet SDK
- [getCryptoKeyAccount](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/getCryptoKeyAccount.md): Retrieve the current crypto key account associated with the user's session
- [generateKeyPair](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/generateKeyPair.md): Generate a new P256 key pair for use with Coinbase Wallet
- [getKeypair](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/getKeypair.md): Retrieve an existing P256 key pair from storage
- [SDK Utilities](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/sdk-utilities.md): Core utility functions for key management and account access

###### Capabilities

- [Capabilities Overview](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/overview.md): Understand how to use Coinbase Wallet capabilities with wallet_connect and wallet_sendCalls
- [Atomic](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/atomic.md): Ensures batched transactions are executed atomically and contiguously
- [auxiliaryFunds](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/auxiliaryFunds.md): Indicates wallet access to funds beyond on-chain balance verification
- [dataCallback](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/datacallback.md): Coinbase Wallet allows you to collect personal information like email addresses, physical addresses, phone numbers, and names during transactions.
- [dataSuffix](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/dataSuffix.md): Append arbitrary data to transaction calldata for attribution tracking
- [flowControl](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/flowControl.md): Control transaction batch behavior after failed or reverted calls
- [gasLimitOverride](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/gasLimitOverride.md): Override gas limits for individual calls in a wallet_sendCalls batch
- [paymasterService](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/paymasterService.md): Enable sponsored transactions using ERC-4337 paymaster web services
- [signInWithEthereum](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/capabilities/signInWithEthereum.md): Enable secure authentication using the Sign-In With Ethereum (SIWE) standard

###### Provider RPC Methods

- [Provider RPC Methods](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/sdk-overview.md): The Coinbase Wallet SDK provider (CoinbaseWalletProvider) — an EIP-1193 Ethereum provider and its request method.
- [Overview](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/request-overview.md): The Coinbase Wallet provider `request` method — how apps make Ethereum RPC requests to the wallet.
- [Standard RPC Methods](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/standard-rpc-methods.md): Standard Ethereum RPC methods supported by Coinbase Wallet
- [coinbase_fetchPermission](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/coinbase_fetchPermission.md): Retrieve a single permission by its hash
- [coinbase_fetchPermissions](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/coinbase_fetchPermissions.md): Retrieve permissions for a specific spender and chain, optionally filtered by account
- [eth_accounts](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_accounts.md): Returns a list of addresses owned by the connected wallet without prompting user authorization
- [eth_blockNumber](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_blockNumber.md): Get the number of the most recent block
- [eth_chainId](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_chainId.md): Get the currently configured chain ID
- [eth_coinbase](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_coinbase.md): Get the client coinbase address
- [eth_estimateGas](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_estimateGas.md): Estimate gas needed for a transaction
- [eth_feeHistory](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_feeHistory.md): Get historical gas fee information for a range of blocks
- [eth_gasPrice](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_gasPrice.md): Get the current gas price
- [eth_getBalance](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getBalance.md): Get the balance of an account at a given block
- [eth_getBlockByHash](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getBlockByHash.md): Get information about a block by block hash
- [eth_getBlockByNumber](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getBlockByNumber.md): Get information about a block by block number
- [eth_getBlockTransactionCountByHash](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getBlockTransactionCountByHash.md): Get the number of transactions in a block by block hash
- [eth_getBlockTransactionCountByNumber](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getBlockTransactionCountByNumber.md): Get the number of transactions in a block by block number
- [eth_getCode](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getCode.md): Get the bytecode at a given address
- [eth_getLogs](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getLogs.md): Get an array of all logs matching a given filter object
- [eth_getProof](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getProof.md): Get the Merkle proof for account and storage values
- [eth_getStorageAt](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getStorageAt.md): Get the value from a storage position at a given address
- [eth_getTransactionByBlockHashAndIndex](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getTransactionByBlockHashAndIndex.md): Get a transaction by block hash and transaction index position
- [eth_getTransactionByBlockNumberAndIndex](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getTransactionByBlockNumberAndIndex.md): Get a transaction by block number and transaction index position
- [eth_getTransactionByHash](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getTransactionByHash.md): Get transaction details by transaction hash
- [eth_getTransactionCount](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getTransactionCount.md): Get the number of transactions sent from an address
- [eth_getTransactionReceipt](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getTransactionReceipt.md): Get the receipt of a transaction by transaction hash
- [eth_getUncleCountByBlockHash](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getUncleCountByBlockHash.md): Get the number of uncles in a block by block hash
- [eth_getUncleCountByBlockNumber](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_getUncleCountByBlockNumber.md): Get the number of uncles in a block by block number
- [eth_requestAccounts](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_requestAccounts.md): Request account access and authorization from the user
- [eth_sendRawTransaction](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_sendRawTransaction.md): Submit a signed transaction to the network
- [eth_sendTransaction](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_sendTransaction.md): Create and send a new transaction or message call
- [eth_signTypedData_v4](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/eth_signTypedData_v4.md): Sign structured data according to EIP-712
- [personal_sign](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/personal_sign.md): Sign data using a specific account with Ethereum-specific signature format
- [wallet_addEthereumChain](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_addEthereumChain.md): Add a new Ethereum chain to the wallet
- [wallet_addSubAccount](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_addSubAccount.md): Add a sub account to the wallet
- [wallet_connect](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_connect.md): Connect wallet and request account access
- [wallet_getCallsStatus](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_getCallsStatus.md): Get the status of a call batch sent via wallet_sendCalls
- [wallet_getCapabilities](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_getCapabilities.md): Get the wallet's supported capabilities for the given account
- [wallet_getSubAccounts](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_getSubAccounts.md): Fetch the sub accounts of the wallet
- [wallet_sendCalls](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_sendCalls.md): Submit a batch of calls to the wallet for execution
- [wallet_switchEthereumChain](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_switchEthereumChain.md): Switch the wallet to a different Ethereum chain
- [wallet_watchAsset](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/wallet_watchAsset.md): Add a token to the wallet's asset watchlist
- [web3_clientVersion](https://docs.cdp.coinbase.com/coinbase-wallet/reference/core/provider-rpc-methods/web3_clientVersion.md): Get the current client version

##### Spend Permissions

- [requestSpendPermission](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/requestSpendPermission.md): Create and sign an EIP-712 Spend Permission for a user's Coinbase Wallet
- [fetchPermission](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/fetchPermission.md): Retrieve a single Spend Permission by its hash
- [fetchPermissions](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/fetchPermissions.md): Retrieve available Spend Permissions for an account and chain, optionally filtered by spender
- [getPermissionStatus](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/getPermissionStatus.md): Gets the current status of a Spend Permission
- [prepareSpendCallData](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/prepareSpendCallData.md): Prepare calldata to approve (if needed) and spend using a Spend Permission
- [requestRevoke](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/requestRevoke.md): Request the user's approval to revoke a Spend Permission
- [prepareRevokeCallData](https://docs.cdp.coinbase.com/coinbase-wallet/reference/spend-permission-utilities/prepareRevokeCallData.md): Construct calldata so your app's spender can revoke a Spend Permission without user interaction

##### Prolink

- [createProlinkUrl](https://docs.cdp.coinbase.com/coinbase-wallet/reference/prolink-utilities/createProlinkUrl.md): Create a link with a prolink query parameter
- [encodeProlink](https://docs.cdp.coinbase.com/coinbase-wallet/reference/prolink-utilities/encodeProlink.md): Encode a JSON-RPC request into a compressed, URL-safe prolink payload
- [decodeProlink](https://docs.cdp.coinbase.com/coinbase-wallet/reference/prolink-utilities/decodeProlink.md): Decode a prolink payload back to a JSON-RPC request

##### UI Elements

- [SignInWithBaseButton](https://docs.cdp.coinbase.com/coinbase-wallet/reference/ui-elements/sign-in-with-base-button.md): Pre-built React component for user authentication with Coinbase Wallet
- [BasePayButton](https://docs.cdp.coinbase.com/coinbase-wallet/reference/ui-elements/base-pay-button.md): Pre-built React component for accepting payments with Coinbase Wallet
- [Brand Guidelines](https://docs.cdp.coinbase.com/coinbase-wallet/reference/ui-elements/brand-guidelines.md): Design and brand guidelines for Sign in With Base and Base Pay buttons

##### Onchain Contracts

- [Smart Wallet](https://docs.cdp.coinbase.com/coinbase-wallet/reference/onchain-contracts/smart-wallet.md): ERC-4337 compliant smart contract wallet that serves as the foundation for Coinbase Wallet.
- [Spend Permissions](https://docs.cdp.coinbase.com/coinbase-wallet/reference/onchain-contracts/spend-permissions.md): The Spend Permissions onchain contracts that let apps charge a Coinbase Wallet on a recurring basis.
- [Basenames](https://docs.cdp.coinbase.com/coinbase-wallet/reference/onchain-contracts/basenames.md): Decentralized naming system that allows users to register human-readable names (like 'alice.base.eth') on Base.
