---
title: "Create Transaction"
method: POST
path: "/2025-06-09/wallets/{walletLocator}/transactions"
---

# Create Transaction

`POST /2025-06-09/wallets/{walletLocator}/transactions`

Creates a new transaction for the specified wallet. Transaction will be automatically broadcast once it has all necessary approvals.

**API scope required**: `wallets:transactions.create`

## Path parameters

- `walletLocator` string, required

## Headers

- `X-API-KEY` string, required
- `x-idempotency-key` string

## Request body

- union — Input schema for creating a new transaction. The parameters vary based on the wallet type (EVM vs Solana vs Stellar).
  - object — Parameters for a transaction from a Solana Smart Wallet
    - `params` object, required
      - `transaction` string, required — Base58 encoded serialized Solana transaction
      - `requiredSigners` string[] — Optional array of additional signers required for the transaction
      - `signer` string — The locator for the signer
    - `fees` object — Optional per-transaction fee configuration override. When omitted, the project default is used.
      - `mode` 'user-native' | 'user-fungible' | 'project', required — Override the project-level fee mode for this transaction. When omitted, the project default is used.
      - `token` 'USDC' — The fungible token to use when mode is 'user-fungible'. Defaults to 'USDC' if omitted.
  - object — Parameters for a transaction from a Solana MPC Wallet
    - `params` object, required
      - `transaction` string, required — Base58 encoded serialized Solana transaction
      - `requiredSigners` string[] — Optional array of additional signers required for the transaction
    - `fees` object — Optional per-transaction fee configuration override. When omitted, the project default is used.
      - `mode` 'user-native' | 'user-fungible' | 'project', required — Override the project-level fee mode for this transaction. When omitted, the project default is used.
      - `token` 'USDC' — The fungible token to use when mode is 'user-fungible'. Defaults to 'USDC' if omitted.
  - object — Parameters for a transaction from an EVM Smart Wallet
    - `params` object, required
      - `calls` union[], required — Array of transaction calls to execute
        - union — Transaction data to execute
          - object — Parameters for a transaction to execute a contract function
            - `address` string, required — The recipient address for this transaction call
            - `functionName` string, required — The name of the function to call
            - `abi` unknown[], required — The ABI for the function to call
              - …
            - `args` unknown[], required — The arguments to pass to the function
              - …
            - `value` string — The amount of native token to send in wei
          - object — Parameters for a transaction to send a direct calldata transaction
            - `to` string, required — The recipient address for this transaction call
            - `value` string, required — The amount of native token to send in wei
            - `data` unknown, required
          - object — Parameters for a transaction to send a serialized EVM transaction
            - `transaction` unknown, required
      - `chain` unknown, required
      - `signer` string — The locator for the signer who will submit this transaction
    - `fees` object — Optional per-transaction fee configuration override. When omitted, the project default is used.
      - `mode` 'user-native' | 'user-fungible' | 'project', required — Override the project-level fee mode for this transaction. When omitted, the project default is used.
      - `token` 'USDC' — The fungible token to use when mode is 'user-fungible'. Defaults to 'USDC' if omitted.
  - object — Parameters for a transaction from an EVM MPC Wallet
    - `params` object, required — Parameters for a transaction from an EVM MPC Wallet
      - `call` union, required — The transaction call to execute
        - object
          - `to` string, required — The recipient address for this transaction call
          - `data` unknown, required
        - object
          - `address` string, required — The recipient address for this transaction call
          - `functionName` string, required — The name of the function to call
          - `abi` unknown[], required — The ABI for the function to call
            - unknown
          - `args` unknown[], required — The arguments to pass to the function
            - unknown
      - `chain` 'arbitrum-sepolia' | 'arc-testnet' | 'avalanche-fuji' | 'curtis' | 'base-goerli' | 'base-sepolia' | 'bsc-testnet' | 'chiliz-spicy-testnet' | 'coti-testnet' | 'ethereum-goerli' | 'ethereum-sepolia' | 'hedera-testnet' | 'hypersonic-testnet' | 'lightlink-pegasus' | 'mantle-sepolia' | 'optimism-goerli' | 'optimism-sepolia' | 'polygon-amoy' | 'polygon-mumbai' | 'crossmint-private-testnet-ethereum' | 'crossmint-private-testnet-polygon' | 'rari-testnet' | 'scroll-sepolia' | 'sei-atlantic-2-testnet' | 'shape-sepolia' | 'skale-nebula-testnet' | 'soneium-minato-testnet' | 'space-testnet' | 'story-testnet' | 'verify-testnet' | 'viction-testnet' | 'xai-sepolia-testnet' | 'zkatana' | 'zkyoto' | 'zora-goerli' | 'zora-sepolia' | 'mode-sepolia' | 'u2u-nebulas' | 'zenchain-testnet' | 'abstract-testnet' | 'world-chain-sepolia' | 'plume-testnet' | 'flow-testnet' | 'tempo-testnet' | 'robinhood-chain-testnet' | 'ethereum' | 'polygon' | 'bsc' | 'optimism' | 'arbitrum' | 'base' | 'zora' | 'arbitrumnova' | 'astar-zkevm' | 'apechain' | 'hedera' | 'coti' | 'lightlink' | 'mantle' | 'skale-nebula' | 'sei-pacific-1' | 'chiliz' | 'avalanche' | 'xai' | 'shape' | 'rari' | 'scroll' | 'viction' | 'mode' | 'space' | 'soneium' | 'story' | 'u2u-solaris' | 'abstract' | 'world-chain' | 'plume' | 'flow' | 'tempo' | 'robinhood-chain', required — The chain on which the signature will be submitted
    - `fees` object — Optional per-transaction fee configuration override. When omitted, the project default is used.
      - `mode` 'user-native' | 'user-fungible' | 'project', required — Override the project-level fee mode for this transaction. When omitted, the project default is used.
      - `token` 'USDC' — The fungible token to use when mode is 'user-fungible'. Defaults to 'USDC' if omitted.
  - object — Parameters for a transaction from a Stellar Smart Wallet
    - `params` object, required — Parameters for a transaction from a Stellar Smart Wallet
      - `transaction` union, required — Stellar transaction to execute
        - object — Parameters for a transaction to execute a smart contract function
          - `type` 'contract-call', required — The type of transaction to execute
          - `contractId` string, required — The recipient address for this transaction call
          - `method` string, required — The name of the function to call
          - `memo` union — The memo for the transaction
            - object
              - …
            - object
              - …
            - object
              - …
          - `args` object, required — The arguments to pass to the function
        - object — Upgrades the wallet's on-chain contract to a new version. The wallet will be locked until a migrate-wallet transaction completes the upgrade.
          - `type` 'upgrade-wallet', required — The type of transaction to execute
        - object — Completes a pending wallet upgrade by migrating on-chain signer data to the new contract version. Must be called after upgrade-wallet.
          - `type` 'migrate-wallet', required — The type of transaction to execute
      - `signer` string — The locator for the signer who will submit this transaction. Defaults to the admin signer.
    - `fees` object — Optional per-transaction fee configuration override. When omitted, the project default is used.
      - `mode` 'user-native' | 'user-fungible' | 'project', required — Override the project-level fee mode for this transaction. When omitted, the project default is used.
      - `token` 'USDC' — The fungible token to use when mode is 'user-fungible'. Defaults to 'USDC' if omitted.

## Response `201`

The transaction has been successfully created.

- union — The signer registration transaction the wallet admin must sign and submit to add (on create) or revoke (on delete) the card's delegated topup signer on-chain.
  - object
    - `chainType` 'evm' | 'solana' | 'aptos' | 'sui' | 'stellar', required — The blockchain type of the wallet
    - `walletType` 'smart' | 'mpc', required — The wallet type (smart or mpc)
    - `params` object, required
      - `calls` union[], required — Array of transaction calls to execute
        - union — Transaction data to execute
          - object — Parameters for a transaction to execute a contract function
            - `address` string, required — The recipient address for this transaction call
            - `functionName` string, required — The name of the function to call
            - `abi` unknown[], required — The ABI for the function to call
              - …
            - `args` unknown[], required — The arguments to pass to the function
              - …
            - `value` string — The amount of native token to send in wei
          - object — Parameters for a transaction to send a direct calldata transaction
            - `to` string, required — The recipient address for this transaction call
            - `value` string, required — The amount of native token to send in wei
            - `data` unknown, required
          - object — Parameters for a transaction to send a serialized EVM transaction
            - `transaction` unknown, required
      - `chain` unknown, required
      - `signer` union — The full signer object who will submit this transaction
        - object — Full External Wallet signer object
          - `type` 'external-wallet', required
          - `address` string, required — The address of the external wallet
          - `locator` string, required — The locator of the external wallet signer
        - object — Full Passkey signer object
          - `type` 'passkey', required
          - `id` string, required — The ID of the passkey
          - `locator` string, required — The locator of the passkey signer
        - object — Full API Key signer object
          - `type` 'api-key', required
          - `address` string, required — The address of the api key
          - `locator` string, required — The locator of the api key signer
        - object — Full Device signer object
          - `type` 'device', required
          - `publicKey` object, required — The p256 public key of the device signer
            - `x` string, required
            - `y` string, required
          - `locator` string, required — The locator of the device signer
          - `name` string — Optional human-readable name for the device signer
        - object
          - `type` 'email', required
          - `email` string, email, required
          - `locator` string, required
        - object
          - `type` 'phone', required
          - `phone` string, required
          - `locator` string, required
        - object
          - `type` 'server', required
          - `address` string, required
          - `locator` string, required
    - `onChain` object, required — EVM smart wallet transaction data including input parameters and chain specific details
      - `userOperation` object, required
        - `sender` string, required — WebAuthn authenticator data as hex string
        - `nonce` string, required — WebAuthn authenticator data as hex string
        - `callData` string, required — WebAuthn authenticator data as hex string
        - `callGasLimit` string, required — WebAuthn authenticator data as hex string
        - `verificationGasLimit` string, required — WebAuthn authenticator data as hex string
        - `preVerificationGas` string, required — WebAuthn authenticator data as hex string
        - `maxFeePerGas` string, required — WebAuthn authenticator data as hex string
        - `maxPriorityFeePerGas` string, required — WebAuthn authenticator data as hex string
        - `paymaster` string — WebAuthn authenticator data as hex string
        - `paymasterVerificationGasLimit` string — WebAuthn authenticator data as hex string
        - `paymasterData` string — WebAuthn authenticator data as hex string
        - `paymasterPostOpGasLimit` string — WebAuthn authenticator data as hex string
        - `signature` string, required — WebAuthn authenticator data as hex string
        - `factory` string — WebAuthn authenticator data as hex string
        - `factoryData` string — WebAuthn authenticator data as hex string
      - `userOperationHash` string, required — WebAuthn authenticator data as hex string
      - `txId` string — WebAuthn authenticator data as hex string
      - `proxiedTxId` string — WebAuthn authenticator data as hex string
      - `explorerLink` string
    - `id` string, required — Unique identifier for the transaction
    - `status` 'awaiting-approval' | 'pending' | 'failed' | 'success', required — Current status of the transaction
    - `approvals` object — Complete approval data including requirements, pending and submitted signatures
      - `pending` union[], required — List of pending signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that needs to be signed
      - `submitted` union[], required — Record of all submitted signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signature` string, required — The cryptographic signature
            - `submittedAt` union, required — ISO timestamp when the signature was created
              - …
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that was signed
            - `metadata` object — Additional metadata about the signature submission
              - …
      - `required` number — Number of required approvals for the transaction
    - `createdAt` union, required — ISO timestamp when the signature was created
      - number — ISO timestamp when the signature was created
      - string
    - `completedAt` union — ISO timestamp when the transaction reached finality
      - number — ISO timestamp when the signature was created
      - string
    - `error` union — Error message if the transaction fails after submission
      - object
        - `reason` union, required
          - 'build_failed'
          - 'failed_to_land_on_chain'
          - 'unknown'
          - 'sanctioned_wallet_address'
        - `message` string, required
        - `revertData` object
      - object
        - `reason` 'program_error', required
        - `message` string, required
        - `revertData` object
        - `logs` unknown
      - object
        - `reason` 'execution_reverted', required
        - `message` string, required
        - `revertData` object
        - `revert` object — Revert reason from smart contract
          - `type` union, required
            - 'contract_call'
            - 'wallet_authorization'
            - 'wallet_deployment'
          - `reason` string, required
          - `reasonData` union
            - string
            - object
          - `explorerLink` string
          - `simulationLink` string
    - `sendParams` object
      - `token` string, required — The token locator that's being sent
      - `params` object, required — The parameters for the send token transaction
        - `amount` string — The amount of the token to send
        - `recipient` string, required — The recipient locator for the token
        - `recipientAddress` string, required — The recipient address for the token
    - `fees` object — Transaction fee information including actual transaction fees, billed amounts, and billing status
      - `mode` 'user-native' | 'user-fungible' | 'project', required
      - `estimate` unknown
      - `actual` unknown
      - `billed` object
        - `usd` number, required
      - `billing` object
        - `status` 'pending' | 'settled' | 'failed', required
  - object
    - `chainType` 'evm' | 'solana' | 'aptos' | 'sui' | 'stellar', required — The blockchain type of the wallet
    - `walletType` 'smart' | 'mpc', required — The wallet type (smart or mpc)
    - `params` object, required — EVM MPC wallet transaction parameters
      - `call` union, required — The transaction call to execute
        - object
          - `to` string, required — The recipient address for this transaction call
          - `data` unknown, required
        - object
          - `address` string, required — The recipient address for this transaction call
          - `functionName` string, required — The name of the function to call
          - `abi` unknown[], required — The ABI for the function to call
            - unknown
          - `args` unknown[], required — The arguments to pass to the function
            - unknown
      - `chain` 'arbitrum-sepolia' | 'arc-testnet' | 'avalanche-fuji' | 'curtis' | 'base-goerli' | 'base-sepolia' | 'bsc-testnet' | 'chiliz-spicy-testnet' | 'coti-testnet' | 'ethereum-goerli' | 'ethereum-sepolia' | 'hedera-testnet' | 'hypersonic-testnet' | 'lightlink-pegasus' | 'mantle-sepolia' | 'optimism-goerli' | 'optimism-sepolia' | 'polygon-amoy' | 'polygon-mumbai' | 'crossmint-private-testnet-ethereum' | 'crossmint-private-testnet-polygon' | 'rari-testnet' | 'scroll-sepolia' | 'sei-atlantic-2-testnet' | 'shape-sepolia' | 'skale-nebula-testnet' | 'soneium-minato-testnet' | 'space-testnet' | 'story-testnet' | 'verify-testnet' | 'viction-testnet' | 'xai-sepolia-testnet' | 'zkatana' | 'zkyoto' | 'zora-goerli' | 'zora-sepolia' | 'mode-sepolia' | 'u2u-nebulas' | 'zenchain-testnet' | 'abstract-testnet' | 'world-chain-sepolia' | 'plume-testnet' | 'flow-testnet' | 'tempo-testnet' | 'robinhood-chain-testnet' | 'ethereum' | 'polygon' | 'bsc' | 'optimism' | 'arbitrum' | 'base' | 'zora' | 'arbitrumnova' | 'astar-zkevm' | 'apechain' | 'hedera' | 'coti' | 'lightlink' | 'mantle' | 'skale-nebula' | 'sei-pacific-1' | 'chiliz' | 'avalanche' | 'xai' | 'shape' | 'rari' | 'scroll' | 'viction' | 'mode' | 'space' | 'soneium' | 'story' | 'u2u-solaris' | 'abstract' | 'world-chain' | 'plume' | 'flow' | 'tempo' | 'robinhood-chain', required — The chain on which the signature will be submitted
    - `onChain` object, required — EVM MPC wallet transaction data including input parameters and chain specific details
      - `call` object, required
        - `to` string, required — The recipient address for this transaction call
        - `data` unknown, required
      - `txId` string — WebAuthn authenticator data as hex string
      - `explorerLink` string
    - `id` string, required — Unique identifier for the transaction
    - `status` 'awaiting-approval' | 'pending' | 'failed' | 'success', required — Current status of the transaction
    - `approvals` object — Complete approval data including requirements, pending and submitted signatures
      - `pending` union[], required — List of pending signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that needs to be signed
      - `submitted` union[], required — Record of all submitted signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signature` string, required — The cryptographic signature
            - `submittedAt` union, required — ISO timestamp when the signature was created
              - …
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that was signed
            - `metadata` object — Additional metadata about the signature submission
              - …
      - `required` number — Number of required approvals for the transaction
    - `createdAt` union, required — ISO timestamp when the signature was created
      - number — ISO timestamp when the signature was created
      - string
    - `completedAt` union — ISO timestamp when the transaction reached finality
      - number — ISO timestamp when the signature was created
      - string
    - `error` union — Error message if the transaction fails after submission
      - object
        - `reason` union, required
          - 'build_failed'
          - 'failed_to_land_on_chain'
          - 'unknown'
          - 'sanctioned_wallet_address'
        - `message` string, required
        - `revertData` object
      - object
        - `reason` 'program_error', required
        - `message` string, required
        - `revertData` object
        - `logs` unknown
      - object
        - `reason` 'execution_reverted', required
        - `message` string, required
        - `revertData` object
        - `revert` object — Revert reason from smart contract
          - `type` union, required
            - 'contract_call'
            - 'wallet_authorization'
            - 'wallet_deployment'
          - `reason` string, required
          - `reasonData` union
            - string
            - object
          - `explorerLink` string
          - `simulationLink` string
    - `sendParams` object
      - `token` string, required — The token locator that's being sent
      - `params` object, required — The parameters for the send token transaction
        - `amount` string — The amount of the token to send
        - `recipient` string, required — The recipient locator for the token
        - `recipientAddress` string, required — The recipient address for the token
    - `fees` object — Transaction fee information including actual transaction fees, billed amounts, and billing status
      - `mode` 'user-native' | 'user-fungible' | 'project', required
      - `estimate` unknown
      - `actual` unknown
      - `billed` object
        - `usd` number, required
      - `billing` object
        - `status` 'pending' | 'settled' | 'failed', required
  - object
    - `chainType` 'evm' | 'solana' | 'aptos' | 'sui' | 'stellar', required — The blockchain type of the wallet
    - `walletType` 'smart' | 'mpc', required — The wallet type (smart or mpc)
    - `params` object, required
      - `transaction` string, required — Base58 encoded serialized Solana transaction
      - `requiredSigners` union[] — Optional array of additional full signer objects required for the transaction
        - union — The full signer object who submitted this signature
          - object — Full External Wallet signer object
            - `type` 'external-wallet', required
            - `address` string, required — The address of the external wallet
            - `locator` string, required — The locator of the external wallet signer
          - object — Full Passkey signer object
            - `type` 'passkey', required
            - `id` string, required — The ID of the passkey
            - `locator` string, required — The locator of the passkey signer
          - object — Full API Key signer object
            - `type` 'api-key', required
            - `address` string, required — The address of the api key
            - `locator` string, required — The locator of the api key signer
          - object — Full Device signer object
            - `type` 'device', required
            - `publicKey` object, required — The p256 public key of the device signer
              - …
            - `locator` string, required — The locator of the device signer
            - `name` string — Optional human-readable name for the device signer
          - object
            - `type` 'email', required
            - `email` string, email, required
            - `locator` string, required
          - object
            - `type` 'phone', required
            - `phone` string, required
            - `locator` string, required
          - object
            - `type` 'server', required
            - `address` string, required
            - `locator` string, required
      - `signer` union — The full signer object who will submit this transaction. Defaults to the admin signer.
        - union
          - object — Full External Wallet signer object
            - `type` 'external-wallet', required
            - `address` string, required — The address of the external wallet
            - `locator` string, required — The locator of the external wallet signer
          - object — Full Passkey signer object
            - `type` 'passkey', required
            - `id` string, required — The ID of the passkey
            - `locator` string, required — The locator of the passkey signer
          - object — Full API Key signer object
            - `type` 'api-key', required
            - `address` string, required — The address of the api key
            - `locator` string, required — The locator of the api key signer
          - object — Full Device signer object
            - `type` 'device', required
            - `publicKey` object, required — The p256 public key of the device signer
              - …
            - `locator` string, required — The locator of the device signer
            - `name` string — Optional human-readable name for the device signer
          - object
            - `type` 'email', required
            - `email` string, email, required
            - `locator` string, required
          - object
            - `type` 'phone', required
            - `phone` string, required
            - `locator` string, required
          - object
            - `type` 'server', required
            - `address` string, required
            - `locator` string, required
        - object — The quorum signer this approval entry belongs to
          - `type` 'quorum', required
          - `locator` string, required — The derived `quorum:<id>` locator of the quorum signer
      - `feeConfig` union, required
        - object
          - `feePayer` string, required — The address that will pay for the transaction
          - `token` 'sol' | 'usdc' | 'usdt', required — The token to use for the fee
          - `amount` string, required — The amount of the fee
        - object
          - `feePayer` 'crossmint', required
          - `amount` string, required — The amount of the fee
    - `onChain` object, required — Solana custodial wallet transaction data including input parameters and chain specific details
      - `transaction` string, required
      - `lastValidBlockHeight` number
      - `txId` string
      - `proxiedTxId` string
      - `explorerLink` string
    - `id` string, required — Unique identifier for the transaction
    - `status` 'awaiting-approval' | 'pending' | 'failed' | 'success', required — Current status of the transaction
    - `approvals` object — Complete approval data including requirements, pending and submitted signatures
      - `pending` union[], required — List of pending signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that needs to be signed
      - `submitted` union[], required — Record of all submitted signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signature` string, required — The cryptographic signature
            - `submittedAt` union, required — ISO timestamp when the signature was created
              - …
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that was signed
            - `metadata` object — Additional metadata about the signature submission
              - …
      - `required` number — Number of required approvals for the transaction
    - `createdAt` union, required — ISO timestamp when the signature was created
      - number — ISO timestamp when the signature was created
      - string
    - `completedAt` union — ISO timestamp when the transaction reached finality
      - number — ISO timestamp when the signature was created
      - string
    - `error` union — Error message if the transaction fails after submission
      - object
        - `reason` union, required
          - 'build_failed'
          - 'failed_to_land_on_chain'
          - 'unknown'
          - 'sanctioned_wallet_address'
        - `message` string, required
        - `revertData` object
      - object
        - `reason` 'program_error', required
        - `message` string, required
        - `revertData` object
        - `logs` unknown
      - object
        - `reason` 'execution_reverted', required
        - `message` string, required
        - `revertData` object
        - `revert` object — Revert reason from smart contract
          - `type` union, required
            - 'contract_call'
            - 'wallet_authorization'
            - 'wallet_deployment'
          - `reason` string, required
          - `reasonData` union
            - string
            - object
          - `explorerLink` string
          - `simulationLink` string
    - `sendParams` object
      - `token` string, required — The token locator that's being sent
      - `params` object, required — The parameters for the send token transaction
        - `amount` string — The amount of the token to send
        - `recipient` string, required — The recipient locator for the token
        - `recipientAddress` string, required — The recipient address for the token
    - `fees` object — Transaction fee information including actual transaction fees, billed amounts, and billing status
      - `mode` 'user-native' | 'user-fungible' | 'project', required
      - `estimate` unknown
      - `actual` unknown
      - `billed` object
        - `usd` number, required
      - `billing` object
        - `status` 'pending' | 'settled' | 'failed', required
  - object
    - `chainType` 'evm' | 'solana' | 'aptos' | 'sui' | 'stellar', required — The blockchain type of the wallet
    - `walletType` 'smart' | 'mpc', required — The wallet type (smart or mpc)
    - `params` object, required
      - `transaction` string, required — Base58 encoded serialized Solana transaction
      - `requiredSigners` union[] — Optional array of additional full signer objects required for the transaction
        - union — The full signer object who submitted this signature
          - object — Full External Wallet signer object
            - `type` 'external-wallet', required
            - `address` string, required — The address of the external wallet
            - `locator` string, required — The locator of the external wallet signer
          - object — Full Passkey signer object
            - `type` 'passkey', required
            - `id` string, required — The ID of the passkey
            - `locator` string, required — The locator of the passkey signer
          - object — Full API Key signer object
            - `type` 'api-key', required
            - `address` string, required — The address of the api key
            - `locator` string, required — The locator of the api key signer
          - object — Full Device signer object
            - `type` 'device', required
            - `publicKey` object, required — The p256 public key of the device signer
              - …
            - `locator` string, required — The locator of the device signer
            - `name` string — Optional human-readable name for the device signer
          - object
            - `type` 'email', required
            - `email` string, email, required
            - `locator` string, required
          - object
            - `type` 'phone', required
            - `phone` string, required
            - `locator` string, required
          - object
            - `type` 'server', required
            - `address` string, required
            - `locator` string, required
    - `onChain` object, required — Solana custodial wallet transaction data including input parameters and chain specific details
      - `transaction` string, required
      - `lastValidBlockHeight` number
      - `txId` string
      - `proxiedTxId` string
      - `explorerLink` string
    - `id` string, required — Unique identifier for the transaction
    - `status` 'awaiting-approval' | 'pending' | 'failed' | 'success', required — Current status of the transaction
    - `approvals` object — Complete approval data including requirements, pending and submitted signatures
      - `pending` union[], required — List of pending signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that needs to be signed
      - `submitted` union[], required — Record of all submitted signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signature` string, required — The cryptographic signature
            - `submittedAt` union, required — ISO timestamp when the signature was created
              - …
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that was signed
            - `metadata` object — Additional metadata about the signature submission
              - …
      - `required` number — Number of required approvals for the transaction
    - `createdAt` union, required — ISO timestamp when the signature was created
      - number — ISO timestamp when the signature was created
      - string
    - `completedAt` union — ISO timestamp when the transaction reached finality
      - number — ISO timestamp when the signature was created
      - string
    - `error` union — Error message if the transaction fails after submission
      - object
        - `reason` union, required
          - 'build_failed'
          - 'failed_to_land_on_chain'
          - 'unknown'
          - 'sanctioned_wallet_address'
        - `message` string, required
        - `revertData` object
      - object
        - `reason` 'program_error', required
        - `message` string, required
        - `revertData` object
        - `logs` unknown
      - object
        - `reason` 'execution_reverted', required
        - `message` string, required
        - `revertData` object
        - `revert` object — Revert reason from smart contract
          - `type` union, required
            - 'contract_call'
            - 'wallet_authorization'
            - 'wallet_deployment'
          - `reason` string, required
          - `reasonData` union
            - string
            - object
          - `explorerLink` string
          - `simulationLink` string
    - `sendParams` object
      - `token` string, required — The token locator that's being sent
      - `params` object, required — The parameters for the send token transaction
        - `amount` string — The amount of the token to send
        - `recipient` string, required — The recipient locator for the token
        - `recipientAddress` string, required — The recipient address for the token
    - `fees` object — Transaction fee information including actual transaction fees, billed amounts, and billing status
      - `mode` 'user-native' | 'user-fungible' | 'project', required
      - `estimate` unknown
      - `actual` unknown
      - `billed` object
        - `usd` number, required
      - `billing` object
        - `status` 'pending' | 'settled' | 'failed', required
  - object
    - `chainType` 'evm' | 'solana' | 'aptos' | 'sui' | 'stellar', required — The blockchain type of the wallet
    - `walletType` 'smart' | 'mpc', required — The wallet type (smart or mpc)
    - `params` object, required
      - `transaction` union, required — Stellar transaction to execute
        - object — Parameters for a transaction to execute a smart contract function
          - `type` 'contract-call', required — The type of transaction to execute
          - `contractId` string, required — The recipient address for this transaction call
          - `method` string, required — The name of the function to call
          - `memo` union — The memo for the transaction
            - object
              - …
            - object
              - …
            - object
              - …
          - `args` object, required — The arguments to pass to the function
        - object — Upgrades the wallet's on-chain contract to a new version. The wallet will be locked until a migrate-wallet transaction completes the upgrade.
          - `type` 'upgrade-wallet', required — The type of transaction to execute
        - object — Completes a pending wallet upgrade by migrating on-chain signer data to the new contract version. Must be called after upgrade-wallet.
          - `type` 'migrate-wallet', required — The type of transaction to execute
      - `signer` string — The locator for the signer who will submit this transaction. Defaults to the admin signer.
    - `onChain` object, required
      - `transaction` object, required — The Stellar Transaction Envelope
        - `method` string, required
        - `tx` string, required
      - `txId` string — The transaction hash
      - `ledger` number — The ledger number where the transaction was included
      - `expiration` number, required — The expiration of the transaction
      - `result` unknown
      - `explorerLink` string — Optional link to view the transaction in an explorer
    - `id` string, required — Unique identifier for the transaction
    - `status` 'awaiting-approval' | 'pending' | 'failed' | 'success', required — Current status of the transaction
    - `approvals` object — Complete approval data including requirements, pending and submitted signatures
      - `pending` union[], required — List of pending signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that needs to be signed
      - `submitted` union[], required — Record of all submitted signatures
        - union
          - object — Approval entry for a quorum (multisig) admin signer
            - `signer` object, required — The quorum signer this approval entry belongs to
              - …
            - `quorumApprovals` object, required — Per-member progress of an m-of-n quorum signer
              - …
          - object
            - `signature` string, required — The cryptographic signature
            - `submittedAt` union, required — ISO timestamp when the signature was created
              - …
            - `signer` union, required — The full signer object who submitted this signature
              - …
            - `message` string, required — The message that was signed
            - `metadata` object — Additional metadata about the signature submission
              - …
      - `required` number — Number of required approvals for the transaction
    - `createdAt` union, required — ISO timestamp when the signature was created
      - number — ISO timestamp when the signature was created
      - string
    - `completedAt` union — ISO timestamp when the transaction reached finality
      - number — ISO timestamp when the signature was created
      - string
    - `error` union — Error message if the transaction fails after submission
      - object
        - `reason` union, required
          - 'build_failed'
          - 'failed_to_land_on_chain'
          - 'unknown'
          - 'sanctioned_wallet_address'
        - `message` string, required
        - `revertData` object
      - object
        - `reason` 'program_error', required
        - `message` string, required
        - `revertData` object
        - `logs` unknown
      - object
        - `reason` 'execution_reverted', required
        - `message` string, required
        - `revertData` object
        - `revert` object — Revert reason from smart contract
          - `type` union, required
            - 'contract_call'
            - 'wallet_authorization'
            - 'wallet_deployment'
          - `reason` string, required
          - `reasonData` union
            - string
            - object
          - `explorerLink` string
          - `simulationLink` string
    - `sendParams` object
      - `token` string, required — The token locator that's being sent
      - `params` object, required — The parameters for the send token transaction
        - `amount` string — The amount of the token to send
        - `recipient` string, required — The recipient locator for the token
        - `recipientAddress` string, required — The recipient address for the token
    - `fees` object — Transaction fee information including actual transaction fees, billed amounts, and billing status
      - `mode` 'user-native' | 'user-fungible' | 'project', required
      - `estimate` unknown
      - `actual` unknown
      - `billed` object
        - `usd` number, required
      - `billing` object
        - `status` 'pending' | 'settled' | 'failed', required

## Other responses

- `400` — Returns an error if the transaction or the provided signer is not valid
- `404` — Returns an error if a wallet with the specified locator not found
- `422` — Returns an error if the transaction fails during simulation

---

[API](https://skmtc.net/crossmint/apis/onramp.md) · [All operations](https://skmtc.net/crossmint/apis/onramp/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crossmint/onramp/versions/e2143d192130/schema)
