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 配置与资产
本页对照详细设计文档补充 Wallet 资产侧接口的用途、入参、出参与示例,适合作为 API Reference 的中文阅读入口。
GET /api/v1/config/environment
获取钱包客户端运行环境、支持链与功能开关,客户端启动时优先调用。
请求参数
无。
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
code | Integer | 业务状态码,0 表示成功 | 0 |
msg | String | 返回消息 | ok |
data.environment | String | 运行环境 | prod |
data.testnetOnly | Boolean | 是否仅开放测试网络 | true |
data.supportedChainIds | Integer[] | 当前客户端允许使用的链 ID 列表 | [8453, 11155111] |
data.buildVersion | String | 当前服务端配置版本 | 1.0.0 |
data.featureFlags | Object | 功能开关集合 | { "balancesEnabled": true } |
data.announcement | Object | 全局公告配置 | { "enabled": false } |
data.maintenance | Object | 维护模式配置 | { "enabled": false } |
响应示例
{
"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": ""
}
}
}
业务说明
- 该接口通常用于 App 冷启动配置加载。
supportedChainIds 应与网络列表接口联动使用。
featureFlags 用于前端灰度控制,不应用作最终权限依据。
GET /api/v1/networks
返回已启用主网与测试网列表,供网络切换、资产页筛选和收款网络展示使用。
请求参数
无。
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
data.mainnets | Array | 主网列表 | [] |
data.testnets | Array | 测试网列表 | [] |
data.*[].chainId | Integer | 链 ID | 8453 |
data.*[].name | String | 链名称 | Base |
data.*[].nativeSymbol | String | 原生币符号 | ETH |
data.*[].rpcUrl | String | 默认 RPC 地址 | https://... |
data.*[].explorerUrl | String | 浏览器地址 | https://basescan.org |
data.*[].faucetUrl | String | 测试币水龙头地址 | https://... |
data.*[].isTestnet | Boolean | 是否测试网 | false |
data.*[].enabled | Boolean | 是否启用 | true |
响应示例
{
"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
查询 Token 目录,用于资产搜索、转账币种选择和收款币种展示。
Query 参数
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|
chainId | String | 否 | 单链过滤 | 8453 |
chainIds | String | 否 | 多链过滤,逗号分隔 | 1,8453,42161 |
q | String | 否 | 搜索关键字 | USDC |
keyword | String | 否 | 搜索关键字,语义与 q 等价 | eth |
address | String | 否 | 合约地址精确查询,通常配合 chainId 使用 | 0x833589f... |
verifiedOnly | Boolean String | 否 | 是否只返回已验证资产 | true |
请求示例
GET /api/v1/tokens?chainId=8453&keyword=USDC&verifiedOnly=true
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
data.items | Array | Token 结果集 | [] |
data.items[].chainId | Integer | 链 ID | 8453 |
data.items[].address | String | 合约地址 | 0x833589f... |
data.items[].symbol | String | Token 符号 | USDC |
data.items[].name | String | Token 名称 | USD Coin |
data.items[].decimals | Integer | 精度 | 6 |
data.items[].logoUrl | String | Logo 地址 | https://... |
data.items[].isVerified | Boolean | 是否已验证 | true |
响应示例
{
"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
}
]
}
}
业务说明
q 与 keyword 建议保留兼容,客户端优先统一用一个字段。
verifiedOnly=true 适合默认资产列表,降低假币风险。
address 命中时通常只返回单条记录。
GET /api/v1/balances/{address}
获取地址在指定链范围内的原生币与 Token 余额,是资产首页核心接口。
Path / Query 参数
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|
address | String | 是 | 钱包地址 | 0xabc... |
chainIds | String | 否 | 指定链 ID,逗号分隔 | 8453,1 |
includeTokens | Boolean String | 否 | 是否包含 ERC20 等代币 | true |
includeNative | Boolean String | 否 | 是否包含原生币 | true |
请求示例
GET /api/v1/balances/0xabc...?chainIds=8453&includeTokens=true&includeNative=true
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
data.address | String | 钱包地址 | 0xabc... |
data.updatedAt | String | 聚合更新时间 | 2026-05-11T10:00:00.000Z |
data.chains | Array | 本次实际查询链摘要 | [] |
data.chains[].chainId | Integer | 链 ID | 8453 |
data.chains[].name | String | 链名称 | Base |
data.chains[].isTestnet | Boolean | 是否测试网 | false |
data.balances | Array | 余额列表 | [] |
data.balances[].chainId | Integer | 余额所属链 ID | 8453 |
data.balances[].tokenAddress | String | native 或合约地址 | native |
data.balances[].symbol | String | 资产符号 | ETH |
data.balances[].name | String | 资产名称 | ETH |
data.balances[].decimals | Integer | 精度 | 18 |
data.balances[].balance | String | 最小单位原始余额 | 1000000000000000000 |
data.balances[].formattedBalance | String | 格式化后的可展示余额 | 1 |
data.balances[].isNative | Boolean | 是否原生币 | true |
响应示例
{
"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
}
]
}
}
业务说明
- 该接口返回链上余额,不直接附带法币估值。
- 建议客户端再调用
/api/v1/prices 合并价格展示。
- 部分链查询失败时可采用部分成功策略,不必整体失败。
GET /api/v1/prices
返回资产价格,供资产总值、单币估值和涨跌幅展示使用。
Query 参数
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|
symbols | String | 否 | 资产符号列表,逗号分隔 | ETH,USDC |
assets | String | 否 | 资产标识列表,可扩展为链+地址键 | 8453:0x8335... |
currency | Enum | 否 | 展示币种,支持 USD、CNY | USD |
请求示例
GET /api/v1/prices?symbols=ETH,USDC¤cy=USD
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
data.currency | String | 价格展示币种 | USD |
data.updatedAt | String | 价格更新时间 | 2026-05-11T10:00:00.000Z |
data.items | Array | 价格列表 | [] |
data.items[].symbol | String | 资产符号 | ETH |
data.items[].usdPrice | Number | Null | 当前价格 | 3500.12 |
data.items[].usdChange24h | Number | Null | 24 小时涨跌幅 | -1.24 |
响应示例
{
"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}
返回收款可选资产及其可接收网络,用于“收款”页与二维码分享页。
Path / Query 参数
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|
address | String | 是 | 钱包地址 | 0xabc... |
chainIds | String | 否 | 链过滤 | 8453,1 |
includeZero | Boolean String | 否 | 是否包含零余额资产 | false |
响应字段
| 字段路径 | 类型 | 说明 | 示例 |
|---|
data.address | String | 钱包地址 | 0xabc... |
data.updatedAt | String | 聚合更新时间 | 2026-05-11T10:00:00.000Z |
data.assets | Array | 可收款资产列表 | [] |
data.assets[].symbol | String | 资产符号 | USDC |
data.assets[].name | String | 资产名称 | USD Coin |
data.assets[].tokenAddress | String | Token 地址 | 0x8335... |
data.assets[].networks | Array | 可收款网络列表 | [] |
data.assets[].networks[].chainId | Integer | 网络链 ID | 8453 |
data.assets[].networks[].name | String | 网络名称 | Base |
data.assets[].networks[].nativeSymbol | String | 该网络 Gas 币符号 | ETH |
data.assets[].networks[].explorerUrl | String | 区块浏览器地址 | https://basescan.org |
data.assets[].networks[].faucetUrl | String | 测试网水龙头地址 | “ |
响应示例
{
"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": ""
}
]
}
]
}
}
业务说明
includeZero=false 时更适合默认 UI 展示。
- 收款网络清单基于配置与资产目录聚合,不代表链上一定已有余额。
- 若同一资产跨多链可收款,应在客户端明确展示网络差异。