POST
/
2022-06-09
/
wallets
/
{walletLocator}
/
transactions
curl --request POST \
  --url https://staging.crossmint.com/api/2022-06-09/wallets/{walletLocator}/transactions \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <x-api-key>' \
  --data '{
  "params": {
    "calls": [
      {
        "to": "0x1234567890123456789012345678901234567890",
        "value": "1000000000000000000",
        "data": "0x"
      }
    ],
    "chain": "base",
    "signer": "evm-keypair:0xdeadbeef"
  }
}'
{
  "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>

Body

application/json

Input schema for creating a new transaction. The parameters vary based on the wallet type (EVM vs Solana).

params
object
required

Wallet type specific transaction parameters

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