Before you start
Set up your project and get an API key.
Wallets Quickstart
See a full working example.
Understanding Wallet Types
Crossmint supports two types of wallets:- Smart Wallets: Account abstraction wallets with configurable signers. You control who can sign transactions (external wallets, API keys, passkeys, etc.).
- MPC Wallets: Custodial wallets where Crossmint manages the private keys using multi-party computation. Simpler setup with no signer configuration needed.
1
Create a wallet
- EVM Smart Wallet
- Solana Smart Wallet
- EVM MPC Wallet
- Solana MPC Wallet
Smart wallets on EVM chains (Base, Polygon, Ethereum, etc.) with configurable signers.Key Parameters:
Save the
chainType: The blockchain family (evmfor Ethereum-compatible chains)type: Wallet type (smartfor smart wallets)config.adminSigner: The primary signer for the wallettype: "external-wallet": Use an external wallet address you controltype: "api-key": Let Crossmint manage signing via API
owner: User identifier in formatemail:user@example.com(optional but recommended)
Sample Response (201 Created)
Sample Response (201 Created)
address field - you’ll need it to interact with this wallet.2
Retrieve a wallet
Retrieve wallet information using a . This is useful when you need to get wallet details without storing the wallet address.Wallet Locator Formats:
- By address:
0xABC...orGbA2NZ... - By email:
email:user@example.com:evm:smart - By user ID:
userId:507f1f77bcf86cd799439011:solana:mpc
Sample Response (200 OK)
Sample Response (200 OK)
More Wallet Locator Examples
More Wallet Locator Examples
0x1234567890123456789012345678901234567890- Direct addressemail:user@example.com:evm:smart- Email + wallet typeuserId:507f1f77bcf86cd799439011:solana:mpc- User ID + wallet typephoneNumber:+12125551234:evm:smart- Phone + wallet typetwitter:johndoe:evm:smartorx:@johndoe:evm:smart- Twitter/X + wallet typeme:evm:smart- Authenticated user (client-side only)
3
Check wallet balance
Check token balances for a wallet. You can query multiple tokens at once by providing a comma-separated list.Query Parameters:
Balances are returned as strings in the token’s smallest unit (wei for ETH, lamports for SOL, etc.).
tokens(required): Comma-separated list of token symbols (e.g.,usdc,eth,usdxm)chains(optional): Filter by specific chains when using multi-chain wallets
Sample Response (200 OK)
Sample Response (200 OK)
4
Transfer tokens
Send tokens from a wallet to a recipient. Smart wallets handle gas fees automatically through Crossmint’s paymaster.Token Locator Format: Request Parameters:
Transaction Status Values:
{chain}:{symbol} or {chain}:{contractAddress} (e.g., base-sepolia:eth, polygon:usdc, base-sepolia:0x123...)recipient(required): Destination address or AddressLocator. Supports wallet addresses (0x...) or identity-based locators likeemail:user@example.com,phoneNumber:+12125551234,userId:abc123amount(required): Amount to transfer in decimal format (e.g.,"0.001"for 0.001 ETH)signer(optional): Signer locator if using delegated signers (defaults to admin signer)
Sample Response (201 Created)
Sample Response (201 Created)
awaiting-approval- Transaction created, waiting for signer approvalpending- Transaction submitted to the blockchainsuccess- Transaction confirmed onchainfailed- Transaction failed
Common Token Locators
Common Token Locators
EVM Chains:
base-sepolia:eth- ETH on Base Sepolia testnetbase-sepolia:usdc- USDC on Base Sepoliapolygon:usdc- USDC on Polygon mainnetethereum:usdt- USDT on Ethereum mainnet
solana:sol- Native SOL tokensolana:usdc- USDC on Solana
base-sepolia:0x123...Using Idempotency Keys
Prevent duplicate wallet creation by using idempotency keys:Launching in Production
Ready to go live? Here’s what you need to do:- Create a production account at www.crossmint.com/console
- Create a production API key with the required scopes:
wallets.create,wallets.read,wallets:balance.read,wallets:transactions.create
- Update your API endpoint from
staging.crossmint.comtowww.crossmint.com - Update your API key in your code to use the production key

