URL: /paas/fincard-virtual/wallet --- title: 'Crypto Wallet' description: 'Cryptocurrency wallet addresses, supported coins, and deposit/withdrawal transactions' --- # Crypto Wallet APIs (v2) Manage cryptocurrency wallet addresses for funding your merchant account. Supports USDT on TRC20 and BEP20 chains. **Base URL:** `POST /api/v2.1/fincard/virtual/wallet/v2/...` --- ## Coin List Query all supported coins and blockchain networks. ```bash POST /api/v2.1/fincard/virtual/wallet/v2/coins ``` **Request:** `{}` (empty body) **Response `data[]`:** | Field | Type | Description | |-------|------|-------------| | `coinKey` | String | Unique coin identifier (e.g. `USDT_TRC20`) | | `chain` | String | Blockchain network (e.g. `TRC20`, `BEP20`) | | `coinFullName` | String | Full name (e.g. `Tether`) | | `coinName` | String | Short name (e.g. `USDT`) | | `showCoinDecimal` | Integer | Display decimal places | | `coinDecimal` | Integer | Transaction decimal places | | `blockChainShowName` | String | Display name (e.g. `Tron (TRC20)`) | | `browser` | String | Blockchain explorer URL template for addresses | | `txRefUrl` | String | Blockchain explorer URL template for transactions | | `contractAddress` | String | Smart contract address | | `enableDeposit` | Boolean | Deposits enabled | | `enableWithdraw` | Boolean | Withdrawals enabled | | `confirmations` | Integer | Required block confirmations | | `enabled` | Boolean | Coin is active | ```json { "success": true, "code": 200, "msg": "SUCCESS", "data": [ { "coinKey": "USDT_TRC20", "chain": "TRC20", "coinFullName": "Tether", "coinName": "USDT", "showCoinDecimal": 6, "coinDecimal": 6, "blockChainShowName": "Tron (TRC20)", "browser": "https://tronscan.org/#/address/{address}", "txRefUrl": "https://tronscan.org/#/transaction/{txHash}", "contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", "enableDeposit": true, "enableWithdraw": true, "confirmations": 38, "enabled": true } ] } ``` --- ## Create Wallet Address Generate a new deposit address for a specific coin and chain. ```bash POST /api/v2.1/fincard/virtual/wallet/v2/create ``` **Request:** | Field | Type | Required | Description | |-------|------|----------|-------------| | `coinKey` | String | Yes | Coin key from Coin List (must have `enabled=true`) | **Response `data`:** | Field | Type | Description | |-------|------|-------------| | `coinKey` | String | Coin key | | `chain` | String | Blockchain network | | `coinName` | String | Coin name | | `address` | String | Generated deposit address | ```json { "success": true, "code": 200, "msg": "SUCCESS", "data": { "coinKey": "USDT_BEP20", "chain": "BEP20", "coinName": "USDT", "address": "0xAAac5f0d8133424d86D5Ef3f170E0420e561125f" } } ``` You can also generate wallet addresses from the dashboard. Each `coinKey` has one address per merchant. --- ## Wallet Address List Query all generated wallet deposit addresses. ```bash POST /api/v2.1/fincard/virtual/wallet/v2/addressList ``` **Request:** `{}` (empty body) **Response `data[]`:** Same shape as Create Wallet Address response. --- ## Wallet Transaction History Query crypto deposit and withdrawal transaction history. ```bash POST /api/v2.1/fincard/virtual/wallet/v2/transaction ``` **Request:** | Field | Type | Required | Description | |-------|------|----------|-------------| | `pageNum` | Long | Yes | Page number (default 1) | | `pageSize` | Long | Yes | Page size (default 10, max 100) | | `coinKey` | String | No | Filter by coin key | | `coinName` | String | No | Filter by coin name | | `txHash` | String | No | Filter by on-chain tx hash | | `sourceAddress` | String | No | Filter by source address | | `destinationAddress` | String | No | Filter by destination address | | `orderNo` | String | No | Filter by platform tx ID | | `type` | String | No | `DEPOSIT` or `WITHDRAW` | | `status` | String | No | `wait_process` / `processing` / `success` / `fail` | | `startTime` | Long | No | Start time (ms). Max 90-day range | | `endTime` | Long | No | End time (ms) | **Response `data`:** `{ total, records[] }` | Field | Type | Description | |-------|------|-------------| | `orderNo` | String | Platform transaction ID | | `coinKey` | String | Coin key | | `coinName` | String | Coin name | | `block` | Integer | Block height | | `sourceAddress` | String | Source address | | `destinationAddress` | String | Destination address | | `txHash` | String | On-chain transaction hash | | `txAmount` | BigDecimal | On-chain amount | | `transactionTime` | Long | Chain transaction time (ms) | | `confirmTime` | Long | Chain confirmation time (ms) | | `feeRate` | BigDecimal | Platform fee rate (`1` = 1%) | | `fee` | BigDecimal | Platform fee amount | | `fixedFee` | BigDecimal | Platform fixed fee | | `receivedAmount` | BigDecimal | Net received amount | | `receivedCurrency` | String | Received currency (e.g. `USD`) | | `type` | String | `DEPOSIT` or `WITHDRAW` | | `status` | String | `wait_process` / `processing` / `success` / `fail` | | `message` | String | Remark | | `createTime` | Long | Order create time (ms) | | `updateTime` | Long | Order update time (ms) | ```json { "success": true, "code": 200, "msg": "SUCCESS", "data": { "total": 5, "records": [ { "orderNo": "CND2031235349498847232", "coinKey": "USDT_TRC20", "block": 80817428, "sourceAddress": "TK4ykR48cQQoyFcZ5N4xZCbsBaHcg6n3gJ", "destinationAddress": "TReJ9YfvmpPTXuq3kzQneXDco1fQprqZ9v", "txHash": "1c19a9635e8c11c6b7be0e402017e81e64e9f7f1ad1a10e1ea1304955745b434", "coinName": "USDT", "txAmount": "9", "feeRate": "1.5", "fee": "0.135", "fixedFee": "0", "receivedAmount": "8.86", "receivedCurrency": "USD", "type": "DEPOSIT", "status": "success", "createTime": 1773119220000, "updateTime": 1773119220000 } ] } } ``` If `status=fail`, it is **not necessarily final**. The platform may manually resolve failed deposits to `success`.