Skip to main content

Overview

Crypto wallet accounts represent blockchain addresses where users receive USDC or USDT during on-ramp transactions.

Quick Example

{
  "type": "WALLET",
  "userId": "user-id",
  "externalId": "wallet-1",
  "data": {
    "firstName": "Juan",
    "lastName": "García",
    "email": "[email protected]",
    "phone": "+573001234567",
    "currency": "USDC",
    "network": "POLYGON",
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "countryCode": "CO",
    "document": {
      "type": "NUIP",
      "number": "1234567890",
      "issuedCountryCode": "CO"
    }
  }
}

Supported Configurations

CurrencyNetworksAddress Format
USDCPolygon, Solana, Ethereum, Arbitrum, BSC, TronNetwork-specific
USDTPolygon, Solana, Ethereum, Arbitrum, BSC, TronNetwork-specific

Network Guide

Polygon

Fee: Less than $0.01
Speed: 2-5 min
Format: 0x…

Solana

Fee: Less than $0.001
Speed: 30-60 sec
Format: Base58

Ethereum

Fee: $5-50
Speed: 10-15 min
Format: 0x…

Address Validation

Use client-side validation:
import { ethers } from 'ethers';

const validateWalletAddress = (address, network) => {
  if (['POLYGON', 'ERC20', 'ARBITRUM', 'BSC'].includes(network)) {
    return ethers.utils.isAddress(address);
  }
  
  if (network === 'SOLANA') {
    return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
  }
  
  if (network === 'TRON') {
    return /^T[a-zA-Z0-9]{33}$/.test(address);
  }
  
  return false;
};

Next Steps