Skip to main content

Overview

Wallets are destination blockchain addresses where cryptocurrency is sent during on-ramp transactions. Each wallet is tied to a virtual machine (VM) type that determines which blockchains are compatible with that address. You can save wallets ahead of time or pass the address directly when creating a transaction.

VM Types

The vmType determines the address format and which blockchains are compatible:
VM TypeCompatible BlockchainsAddress Format
EVMPOL, BASE, ARB, BSC, OP, ETH, WLDEthereum-style (0x...)
SVMSOLSolana-style base58 address
STKSTKStarknet-style address
The wallet address is validated against the selected vmType when created. Duplicate combinations of walletAddress + vmType for the same user are rejected.

Creating a Wallet

Use the Create Wallet endpoint to register a new wallet for a user.
POST /api/partner/v2/user/{userId}/wallets

Required Fields

  • vmType: The virtual machine type (EVM, SVM, or STK)
  • walletAddress: The blockchain address
  • alias: A friendly name for the wallet (e.g., β€œMy Polygon Wallet”)

Example

{
  "vmType": "EVM",
  "walletAddress": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
  "alias": "My Polygon Wallet"
}

Response

{
  "success": true,
  "data": {
    "id": "8374f327-38bd-4b0b-b8a7-2524599eb903",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "walletAddress": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
    "alias": "My Polygon Wallet",
    "vmType": "EVM",
    "enabled": true,
    "createdAt": "2025-05-08T18:00:00Z"
  }
}

Listing Wallets

Use the List Wallets endpoint to retrieve all enabled wallets for a user.
GET /api/partner/v2/user/{userId}/wallets

Query Parameters

ParameterRequiredDescription
vmTypeNoFilter by VM type (EVM, SVM, STK)
idNoFilter by wallet ID
skipNoNumber of results to skip (pagination)
limitNoMaximum number of results to return
sortByNoSort field (supported: createdAt)
The response includes count (matching results) and total (all wallets for the user) fields for pagination.

Deleting a Wallet

Use the Delete Wallet endpoint to soft-delete (disable) a wallet. Disabled wallets will no longer appear in list results.
DELETE /api/partner/v2/user/{userId}/wallets/{walletId}

Using Wallets in Transactions

When creating an on-ramp transaction, the destinationWalletAddress field specifies where crypto will be sent. You can either:
  • Use a saved wallet: Save the wallet first with the Create Wallet endpoint, then reference the address in the transaction.
  • Pass the address directly: Provide the destinationWalletAddress in the Create On-Ramp request without saving it beforehand.
In both cases, the address must be valid for the blockchain used in the transaction.
What’s Next