Documentation Index
Fetch the complete documentation index at: https://docs.nexfi.robert.dpdns.org/llms.txt
Use this file to discover all available pages before exploring further.
Wallet Config and Assets
This page mirrors the detailed design style for the Wallet asset-side APIs, including endpoint purpose, request fields, response fields, and examples.
GET /api/v1/config/environment
Purpose
Returns runtime environment metadata, supported chains, and feature flags. The mobile client should call this during bootstrap.
Request Parameters
None.
Response Fields
| Field | Type | Description | Example |
|---|
code | Integer | Business status code. 0 means success. | 0 |
msg | String | Human-readable message. | ok |
data.environment | String | Runtime environment. | prod |
data.testnetOnly | Boolean | Whether only testnets are exposed. | true |
data.supportedChainIds | Integer[] | Chain IDs available to the client. | [8453, 11155111] |
data.buildVersion | String | Backend config/build version. | 1.0.0 |
data.featureFlags | Object | Feature flag map. | { "balancesEnabled": true } |
data.announcement | Object | Global announcement payload. | { "enabled": false } |
data.maintenance | Object | Maintenance mode payload. | { "enabled": false } |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"environment": "prod",
"testnetOnly": true,
"supportedChainIds": [8453, 11155111],
"buildVersion": "1.0.0",
"featureFlags": {
"balancesEnabled": true,
"historyEnabled": true,
"contractsEnabled": true,
"adminWriteEnabled": false
},
"announcement": {
"enabled": false,
"level": "info",
"title": "",
"message": ""
},
"maintenance": {
"enabled": false,
"reason": ""
}
}
}
GET /api/v1/networks
Purpose
Returns enabled mainnets and testnets for network switching, asset filters, and receive network selection.
Response Fields
| Field | Type | Description | Example |
|---|
data.mainnets | Array | Enabled mainnet list. | [] |
data.testnets | Array | Enabled testnet list. | [] |
data.*[].chainId | Integer | Chain ID. | 8453 |
data.*[].name | String | Chain name. | Base |
data.*[].nativeSymbol | String | Native gas token symbol. | ETH |
data.*[].rpcUrl | String | Default RPC endpoint. | https://... |
data.*[].explorerUrl | String | Explorer base URL. | https://basescan.org |
data.*[].faucetUrl | String | Faucet URL for test assets. | https://... |
data.*[].isTestnet | Boolean | Whether the network is a testnet. | false |
data.*[].enabled | Boolean | Whether the network is enabled. | true |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"mainnets": [
{
"chainId": 8453,
"name": "Base",
"nativeSymbol": "ETH",
"rpcUrl": "https://mainnet.base.org",
"explorerUrl": "https://basescan.org",
"faucetUrl": "",
"isTestnet": false,
"enabled": true
}
],
"testnets": [
{
"chainId": 11155111,
"name": "Sepolia",
"nativeSymbol": "ETH",
"rpcUrl": "https://rpc.sepolia.org",
"explorerUrl": "https://sepolia.etherscan.io",
"faucetUrl": "https://faucet.quicknode.com/ethereum/sepolia",
"isTestnet": true,
"enabled": true
}
]
}
}
GET /api/v1/tokens
Purpose
Queries the token directory for asset search, send-token selection, and receive-token display.
Query Parameters
| Parameter | Type | Required | Description | Example |
|---|
chainId | String | No | Single-chain filter. | 8453 |
chainIds | String | No | Multi-chain filter, comma separated. | 1,8453,42161 |
q | String | No | Keyword search. | USDC |
keyword | String | No | Keyword alias of q. | eth |
address | String | No | Exact contract address lookup, usually combined with chainId. | 0x833589f... |
verifiedOnly | Boolean String | No | Return only verified assets. | true |
Example Request
GET /api/v1/tokens?chainId=8453&keyword=USDC&verifiedOnly=true
Response Fields
| Field | Type | Description | Example |
|---|
data.items | Array | Token result list. | [] |
data.items[].chainId | Integer | Chain ID. | 8453 |
data.items[].address | String | Contract address. | 0x833589f... |
data.items[].symbol | String | Token symbol. | USDC |
data.items[].name | String | Token name. | USD Coin |
data.items[].decimals | Integer | Token decimals. | 6 |
data.items[].logoUrl | String | Token logo URL. | https://... |
data.items[].isVerified | Boolean | Whether the token is verified. | true |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"items": [
{
"chainId": 8453,
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"logoUrl": "https://assets.example.com/usdc.png",
"isVerified": true
}
]
}
}
GET /api/v1/balances/{address}
Purpose
Returns native and token balances for a wallet address across selected chains. This is the main wallet asset API.
Path / Query Parameters
| Parameter | Type | Required | Description | Example |
|---|
address | String | Yes | Wallet address. | 0xabc... |
chainIds | String | No | Selected chain IDs, comma separated. | 8453,1 |
includeTokens | Boolean String | No | Whether to include token balances. | true |
includeNative | Boolean String | No | Whether to include native balances. | true |
Example Request
GET /api/v1/balances/0xabc...?chainIds=8453&includeTokens=true&includeNative=true
Response Fields
| Field | Type | Description | Example |
|---|
data.address | String | Wallet address. | 0xabc... |
data.updatedAt | String | Aggregation timestamp. | 2026-05-11T10:00:00.000Z |
data.chains | Array | Chain summaries actually queried. | [] |
data.chains[].chainId | Integer | Chain ID. | 8453 |
data.chains[].name | String | Chain name. | Base |
data.chains[].isTestnet | Boolean | Whether testnet. | false |
data.balances | Array | Balance rows. | [] |
data.balances[].chainId | Integer | Chain ID for the balance. | 8453 |
data.balances[].tokenAddress | String | native or contract address. | native |
data.balances[].symbol | String | Asset symbol. | ETH |
data.balances[].name | String | Asset name. | ETH |
data.balances[].decimals | Integer | Asset decimals. | 18 |
data.balances[].balance | String | Raw balance in smallest unit. | 1000000000000000000 |
data.balances[].formattedBalance | String | User-facing formatted balance. | 1 |
data.balances[].isNative | Boolean | Whether this is the native token. | true |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"address": "0xabc...",
"updatedAt": "2026-05-11T10:00:00.000Z",
"chains": [
{
"chainId": 8453,
"name": "Base",
"isTestnet": false
}
],
"balances": [
{
"chainId": 8453,
"tokenAddress": "native",
"symbol": "ETH",
"name": "ETH",
"decimals": 18,
"balance": "1000000000000000000",
"formattedBalance": "1",
"isNative": true
}
]
}
}
GET /api/v1/prices
Purpose
Returns market prices for wallet valuation, asset detail display, and 24h price change.
Query Parameters
| Parameter | Type | Required | Description | Example |
|---|
symbols | String | No | Comma-separated symbol list. | ETH,USDC |
assets | String | No | Asset identity list, extensible to chain+address keys. | 8453:0x8335... |
currency | Enum | No | Quote currency. Supports USD and CNY. | USD |
Example Request
GET /api/v1/prices?symbols=ETH,USDC¤cy=USD
Response Fields
| Field | Type | Description | Example |
|---|
data.currency | String | Quote currency. | USD |
data.updatedAt | String | Price timestamp. | 2026-05-11T10:00:00.000Z |
data.items | Array | Price rows. | [] |
data.items[].symbol | String | Asset symbol. | ETH |
data.items[].usdPrice | Number | Null | Current price. | 3500.12 |
data.items[].usdChange24h | Number | Null | 24h price change percent. | -1.24 |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"currency": "USD",
"updatedAt": "2026-05-11T10:00:00.000Z",
"items": [
{
"symbol": "ETH",
"usdPrice": 3500.12,
"usdChange24h": -1.24
},
{
"symbol": "USDC",
"usdPrice": 1,
"usdChange24h": 0
}
]
}
}
GET /api/v1/receive/options/{address}
Purpose
Returns assets and networks that can be shown in the receive flow and QR-code share screen.
Path / Query Parameters
| Parameter | Type | Required | Description | Example |
|---|
address | String | Yes | Wallet address. | 0xabc... |
chainIds | String | No | Chain filter. | 8453,1 |
includeZero | Boolean String | No | Whether to include zero-balance assets. | false |
Response Fields
| Field | Type | Description | Example |
|---|
data.address | String | Wallet address. | 0xabc... |
data.updatedAt | String | Aggregation timestamp. | 2026-05-11T10:00:00.000Z |
data.assets | Array | Receivable assets. | [] |
data.assets[].symbol | String | Asset symbol. | USDC |
data.assets[].name | String | Asset name. | USD Coin |
data.assets[].tokenAddress | String | Token contract address. | 0x8335... |
data.assets[].networks | Array | Supported receive networks. | [] |
data.assets[].networks[].chainId | Integer | Network chain ID. | 8453 |
data.assets[].networks[].name | String | Network name. | Base |
data.assets[].networks[].nativeSymbol | String | Native gas symbol. | ETH |
data.assets[].networks[].explorerUrl | String | Explorer base URL. | https://basescan.org |
data.assets[].networks[].faucetUrl | String | Faucet URL when relevant. | “ |
Example Response
{
"code": 0,
"msg": "ok",
"data": {
"address": "0xabc...",
"updatedAt": "2026-05-11T10:00:00.000Z",
"assets": [
{
"symbol": "USDC",
"name": "USD Coin",
"tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"networks": [
{
"chainId": 8453,
"name": "Base",
"nativeSymbol": "ETH",
"explorerUrl": "https://basescan.org",
"faucetUrl": ""
}
]
}
]
}
}