Skip to main content
The Wallet Management API gives you full control over the three wallet types in Strails. Your Smart Wallet is a contract-based EVM wallet that holds cNGN, USDC, and USDT and can be fintech- or Strails-controlled. Your MPC Vault provides multi-party computation custody for USDC and USDT. External Wallets are third-party addresses - cold storage, hot wallets, or custodial accounts - that you register on the platform for withdrawals and storage.

Endpoints Overview


Retrieve the Fintech Wallet

GET /getfintechwallet Returns your fintech’s Smart Wallet configuration and the complete list of registered External Wallets.
object
Response

Add an External Wallet

POST /addexternalwallet Registers an external wallet address on your fintech account. External wallets cannot be used for escrow operations. The address must be valid for the specified blockchain before it is accepted.
This endpoint registers wallets at the fintech level. To nominate an external delivery destination for an individual end-user’s cNGN, use Set User Default Wallet instead.
string
required
The wallet address to register on the platform.
string
required
The blockchain network the wallet belongs to (e.g. base, eth, bsc).
string
required
The wallet custody type. One of hot, cold, custodial, or other.
string
A human-readable name for easy identification (e.g. Cold Storage Wallet).
string
The intended use of this wallet (e.g. Daily operations and withdrawals).
boolean
Whether to set this wallet as your fintech’s default external wallet. Defaults to false. This does not affect end-user deliveries - see User Default Wallet.
object
Additional custody information.
Response
Error responses
Invalid address format
Wallet already registered

Update External Wallet Status

PUT /updateexternalwalletstatus Activates or deactivates a registered external wallet. Inactive wallets cannot receive transfers from the platform.
string
required
The wallet address to update.
string
required
The new status for the wallet. Must be either active or inactive.
Response
Error responses
Wallet not found
Invalid status value

Remove an External Wallet

DELETE /removeexternalwallet Permanently removes an external wallet from your fintech account. This action cannot be undone.
string
required
The wallet address to remove from your fintech account.
Response
Error response
Wallet not found

Retrieve User Wallets

POST /listuserwallets Returns all wallets provisioned for a specific end-user, including their current token balances. Each user has a primary EVM Smart Wallet on Base plus multi-chain wallets on Bantu and Solana.
string
required
The unique identifier (hash or UUID) of the end-user.
object
Response
Error response
User not found

Migrate User Wallets

POST /migrateuserwallets Provisions default wallets for end-users who were created before automated wallet provisioning was enabled. Use this endpoint to bring legacy users up to the current wallet structure.
Ensure all funds have been transferred out of any existing legacy wallets before calling this endpoint. Migration may result in new wallet addresses being issued for affected users.
array
required
A list of user identifiers (hashes or UUIDs) to migrate. You can pass multiple user IDs in a single call.
boolean
When true, the migration proceeds even if a user already has partial wallet data. Defaults to false.
object
Response

Fintech System Wallet Balance

GET /balance/multi Returns your fintech’s own Smart Wallet token balance across one or more EVM networks. Use the networks query parameter to limit the check to specific chains.
string
The token ticker to query (e.g. CNGN, USDC, USDT). Defaults to CNGN.
string
Comma-separated list of EVM network keys to check (e.g. base,eth,bsc). Defaults to all supported EVM networks.
object
Response

Balance for a Specific Address

POST /balance/address Returns the token balance for any arbitrary EVM address across one or more networks. Useful for checking balances of addresses that are not necessarily your Smart Wallet.
string
required
The EVM wallet address to query.
string
The token ticker to query (e.g. CNGN, USDC, USDT). Defaults to CNGN.
array
Array of EVM network keys to check (e.g. ["base", "eth", "bsc"]). Defaults to all supported EVM networks.
object
Response

End-User Balance

GET /balance/user/:userId Returns the token balances across all wallets provisioned for a specific end-user. Balances are resolved from the user’s Smart Wallet and all additional network addresses associated with the user.
string
required
The unique identifier of the end-user whose balance you want to retrieve.
string
The token ticker to query (e.g. CNGN, USDC, USDT). Defaults to CNGN.
object
Response