POST
/
unstable
/
wallets
/
{walletLocator}
/
send
curl --request POST \
  --url https://staging.crossmint.com/api/unstable/wallets/{walletLocator}/send \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <x-api-key>' \
  --data '{
  "recipient": "0x1234567890123456789012345678901234567890",
  "token": "ethereum:usdc",
  "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>

Query Parameters

sendEmail
string
required

Body

application/json

Input schema for sending different types of tokens

recipient
required

Recipient address, email or twitter handle

token
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
signer
string

Optional signer locator. Defaults to admin signer

amount
string

Amount of tokens to transfer

Response

201 - application/json
The transaction has been successfully created.

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

walletType
enum<string>
required

The type of wallet that created this transaction

Available options:
evm-smart-wallet
params
object
required

EVM smart wallet transaction parameters

onChain
object
required

EVM smart wallet transaction data including input parameters and chain specific details

id
string
required

Unique identifier for the transaction

status
enum<string>
required

Current status of the transaction

Available options:
awaiting-approval,
pending,
failed,
success
createdAt
number
required

ISO timestamp when the transaction was created

approvals
object

Complete approval data including requirements, pending and submitted signatures

completedAt
number

ISO timestamp when the transaction reached finality

error
object

Error message if the transaction fails after submission