POST
/
unstable
/
wallets
/
{walletLocator}
/
tokens
/
{tokenLocator}
/
transfers
curl --request POST \
  --url https://staging.crossmint.com/api/unstable/wallets/{walletLocator}/tokens/{tokenLocator}/transfers \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <x-api-key>' \
  --data '{
  "recipient": [
    "7v91N7iZ9mNicL8WfG6cgSCKyRXydQjLh6UYBWwm6y1M",
    "ethereum:0x1234567890123456789012345678901234567890",
    "address:0x1234567890123456789012345678901234567890:ethereum",
    "email:user@example.com:evm",
    "phoneNumber:+12125551234:evm",
    "twitter:johndoe:evm",
    "x:@johndoe:evm",
    "userId:did:example:abc123:evm"
  ],
  "signer": "evm-keypair:0x1234567890123456789012345678901234567890",
  "amount": "42.42"
}'
{
  "id": "tx-b984491a-5785-43c0-8811-45d46fe6e520",
  "walletType": "evm-smart-wallet",
  "status": "awaiting-approval",
  "approvals": {
    "pending": [
      {
        "signer": "evm-keypair:0xdeadbeef",
        "message": "Please sign this transaction"
      }
    ],
    "submitted": []
  },
  "params": {
    "calls": [
      {
        "to": "0x1234567890123456789012345678901234567890",
        "value": "1000000000000000000",
        "data": "0x"
      }
    ],
    "chain": "base",
    "signer": "evm-keypair:0xdeadbeef"
  },
  "onChain": {
    "userOperation": "... full user operation object",
    "userOperationHash": "0xf719f9570671c6eb016f1f4a95ada4278b8e91f55bc384d70c69fd756919a41c"
  },
  "createdAt": "2024-01-01T00:00:00Z"
}

Headers

X-API-KEY
string
required

API key required for authentication

x-idempotency-key
string

Unique key to prevent duplicate transaction creation

Path Parameters

walletLocator
string
required

A wallet locator can be of the format:

  • <walletAddress>
  • email:<email>:<walletType>
  • userId:<userId>:<walletType>
  • userId:<userId>:<walletType> (white label user example)
  • phoneNumber:<phoneNumber>:<walletType>
  • twitter:<handle>:<walletType>
  • x:<handle>:<walletType>
tokenLocator
string
required

A token locator that supports native tokens, fungible tokens, and NFTs across different chains. It can be of the format:

  • chain:address[:tokenId]
  • chain:currency
  • chain:address

Body

application/json

Response

201 - application/json

The transaction has been successfully created.

Complete transaction response including status, signing requirements, and wallet type specific data