Skip to main content
A Wallet represents an on-chain deposit and execution address provisioned under an Application Account. You can programmatically deploy wallets across supported blockchains, link them directly to end-users, query asset balances, and manage operational controls such as auto-sweeping and wallet state.

Prerequisites

Before starting this guide, ensure you have:

The Plan

We’ll go through:
  1. Creating a Wallet via API: Provisioning a chain-specific wallet address scoped to an account.
  2. Updating Wallet Settings: Managing wallet activity state (isActive), display labels, and auto-sweep configurations.
  3. Fetching Wallet Balances: Querying asset holdings by wallet ID or blockchain address.
  4. Next Steps: Configuring treasury sweeps.

Step 1: Create a Wallet via API

To provision a new wallet, send a POST request to the /v2/wallets endpoint.

Key Request Parameters

  • idempotencyKey (string, required): A unique string to prevent duplicate wallet creation requests.
  • accountId (string, required): The parent Application Account container.
  • blockchain (string, required): Target network identifier (e.g., ethereum-mainnet, polygon-mainnet).
  • name (string, optional): A human-readable display label for internal tracking.
  • userId (string, optional): Pass a userId during creation to link this wallet directly to an end-user identity.
  • refId (string, optional): Client reference identifier. Re-using the same refId across different EVM chains ensures deterministically identical wallet addresses.
  • autoSweep (boolean, optional): Set to true to automatically route incoming deposits directly into your primary Settlement Account treasury. Defaults to false.

Sample Response

Step 2: Update Wallet Settings

You can modify wallet metadata, toggle auto-sweeping, or adjust the wallet’s active status using the PATCH endpoint.
💡 User Association If a wallet was created without a userId, you can link the wallet to a user identity during an update request by supplying the userId field.

Field Breakdown

  • name (string, optional): Updated display name for internal tracking.
  • userId (string, optional): Links or updates the owner user entity for this wallet.
  • autoSweep (boolean, optional): Enables or disables automatic treasury sweeping rules for incoming funds.
  • isActive (boolean, optional): Set to false to freeze wallet actions.
⚠️ Important Security Rule If isActive is set to false, the wallet is disabled. Disabled wallets cannot withdraw or swap funds.

Step 3: Fetch Wallet Balances

To inspect real-time token or native cryptocurrency balances, query the balances endpoint. You must provide either the walletId or the on-chain address as a parameter.

Query Parameters

  • walletId (string, conditional): The unique ID of the wallet (Required if address is omitted).
  • address (string, conditional): The on-chain wallet address (Required if walletId is omitted).
  • blockchain (string, optional): Filter results to a specific network.
  • token (string, optional): Filter by a specific asset symbol or contract address (e.g., USDT).

Sample Response

Next Steps