Holdings Detail#
Call this endpoint when a user wants to view detailed holdings in a specific DeFi protocol. Requires wallet address list and target protocol information (analysisPlatformId obtained from the previous protocol list endpoint). The response includes detailed asset information for each investment product, V3 position information, claimable rewards, etc. Based on the returned investmentId and position information, you can further call the transaction execution API to redeem or claim rewards.
URL: POST /api/v6/defi/user/asset/platform/detail
Request Parameters#
| Field | Type | Required | Explanation |
|---|---|---|---|
| walletAddressList | Array | Yes | Wallet list |
| > chainIndex | String | Yes | Chain ID |
| > walletAddress | String | Yes | Wallet address |
| > pubKey | String | No | Public key (only used for BTC investment products) |
| platformList | Array | Yes | DeFi protocols to query |
| > chainIndex | String | No | Chain ID |
| > analysisPlatformId | String | No | Protocol ID |
Request Example#
Example 1: Query by protocol ID#
Json
{
"walletAddressList": [
{
"chainIndex": "1",
"walletAddress": "0x7f429edeff8afc7bb3a2cf7db832fc86f6fa99da"
}
],
"platformList": [
{
"chainIndex": "1",
"analysisPlatformId": "44"
}
]
}
Response Parameters#
| Field | Type | Explanation |
|---|---|---|
| walletIdPlatformDetailList | Array | Holdings by wallet |
| > networkHoldVoList | Array | Holdings by network |
| > > network | String | Network name |
| > > chainIndex | String | Chain ID |
| > > isSupportInvest | Boolean | Whether investment is supported |
| > > totalAssert | String | Total assets (USD) |
| > > investTokenBalanceVoList | Array | Holdings by investment product |
| > > > investmentName | String | Investment product name |
| > > > validatorName | String | Validator name |
| > > > currentPrice | String | Current price (e.g., 1 DAI - 1.0393 USDC) |
| > > > investmentId | String | Investment product ID |
| > > > specialPositionAssetKey | String | Special position asset key |
| > > > sourceInvestmentId | String | Source investment product ID |
| > > > feeRate | String | Fee rate (used by Uni V3, e.g., 0.0003) |
| > > > aggregateProductId | String | Aggregate product ID |
| > > > isInvestTypeSupport | Boolean | Whether the investment type is supported |
| > > > investType | Integer | Investment type (1:save, 2:pool, 3:farm, 4:vaults, 5:stake, 6:borrow, 7:staking, 8:locked, 9:deposit, 10:vesting) |
| > > > investName | String | Investment type description |
| > > > investLogo | Object | Investment product logo information |
| > > > positionList | Array | Position detail list |
| > > > > range | String | Price range (e.g., 0.892 - 0.992 USDC per DAI) |
| > > > > reverseRange | String | Reverse price range |
| > > > > rangeInfo | Object | Price range details |
| > > > > tokenId | String | NFT tokenId (e.g., 93828) |
| > > > > positionName | String | Position name |
| > > > > nftLogo | String | NFT Logo |
| > > > > positionStatus | String | Position status (ACTIVE, INACTIVE) |
| > > > > assetsTokenList | Array | Asset token list |
| > > > > showIncreaseLiquidity | boolean | Whether to show increase liquidity |
| > > > > rewardDefiTokenInfo | Array | Compound rewards (same structure as availableRewards element) |
| > > > > unclaimFeesDefiTokenInfo | Array | Uni V3 fees (same structure as availableRewards element) |
| > > > > totalValue | String | Total value (USD) |
| > > > > isNarrow | Boolean | Whether the range is too narrow |
| > > > > needInvest | Boolean | Whether investment is needed (true: needs investment, false: already invested) |
| > > > > settlementTime | String | Settlement time (second-level timestamp) |
| > > > > assetPositionType | String | Position type (0: Uni V3 position, 1: position with expiration) |
| > > > > positionExtInfoList | Array | Position extended information list |
| > > > assetsTokenList | Array | Asset token list |
| > > > borrowTokenList | Array | Borrow token list (LSDFI) |
| > > > rewardDefiTokenInfo | Array | Compound rewards (same structure as availableRewards element) |
| > > > fundsInfo | Array | Funds information (same structure as availableRewards element) |
| > > > extraData | Object | Detail page extended data |
| > > > totalValue | String | Total value (USD) |
| > > > overflowTotalValue | String | Overflow total value (USD) |
| > > > collateralRatioInfo | Object | Collateral ratio information (LSDFI) |
| > > > rewardAddress | String | BTC reward receiving address |
| > > > maturityTime | String | Pendle maturity time |
| > > > fixedApy | String | Pendle fixed APY |
| > > > browserUrl | String | OKLink explorer URL |
| > > > poolId | String | Pool ID |
| > > > poolAddress | String | Pool address |
| > > > tagList | Array | Tag list |
| > > > investNameTagList | Array | Investment name tag list |
| > > > extraFieldList | Array | Extra display field list |
| > > > subTitle | String | Subtitle (e.g., ID: 205c8e01aa#12) |
| > > > investmentCategory | Integer | Investment category (0: Earn, 1: Brc20, 2: LSDFI) |
| > > > investmentClassify | String | Investment classification |
| > > > nonPoolPositionList | Array | Non-UniV3 investment product position list |
| > > > investmentKey | String | Investment key |
| > > > marketId | String | Lending market ID |
| > > > perpetual | Object | Perpetual contract information |
| > > > detailPath | String | Web detail page redirect path |
| > > > yieldYesterday | BigDecimal | Yesterday's yield (USD) |
| > > > totalEarnings | BigDecimal | Total earnings (USD) |
| > > investMarketTokenBalanceVoList | Array | Holdings by lending market |
| > > > assetMap | Object | Asset data mapping (includes supply and borrow, value structure same as investTokenBalanceVoList element) |
| > > > marketId | String | Market identifier |
| > > > healthRate | Object | Market health rate (non-null when there are borrows) |
| > > > marketRewards | Array | Market rewards (same structure as availableRewards element) |
| > > > totalValue | String | Total value (USD) |
| > > availableRewards | Array | Claimable rewards |
| > > > baseDefiTokenInfos | Array | Reward token element list |
| > > > buttonType | Integer | Button type (0: hidden, 1: requires authorization, 2: disabled, 3: enabled) |
| > > > callDataExtJson | String | CallData extended JSON |
| > > > claimMode | Integer | Claim mode (null=normal, 0=stake OKT, 1=redirect to secondary page) |
| > > > extraData | Array | Reward detail extended data |
| > > > > coinAmount | String | Claimable amount (string precision value) |
| > > > > principalIndex | String | Principal batch/index identifier; can be passed in the claim API when rewardType is UNLOCKED_PRINCIPAL |
| > > > > claimable | Boolean | Whether claimable (true/false) |
| > > > > status | String | Claim status (e.g., CLAIMABLE means claimable) |
| > > > rewardType | String | Reward type string (REWARD_INVESTMENT, REWARD_PLATFORM, V3_FEE, REWARD_OKX_BONUS, REWARD_MERKLE_BONUS, UNLOCKED_PRINCIPAL) |
| > > > unclaimedTokenList | Array | Merkl bonus unclaimed token list (by chain) |
| > > > network | String | Network name |
| > > > chainIndex | String | Chain ID |
| > > > urlInfo | Object | URL redirect information |
| > > > currencyAmount | String | Currency amount |
| > > fundsInfo | Array | Funds information (same structure as availableRewards element) |
| > > airDropRewardInfo | Array | Airdrop rewards (same structure as availableRewards element) |
| > > extraData | Object | Extended data |
| > walletId | String | Wallet ID |
| platformName | String | Platform name |
| analysisPlatformId | String | Analysis group platform ID |
| platformLogo | String | Platform Logo |
| platformUrl | String | Platform URL |
Response Example#
Json
{
"code": "0",
"msg": "",
"data": [
{
"walletIdPlatformDetailList": [
{
"networkHoldVoList": [
{
"network": "Ethereum",
"chainIndex": "1",
"isSupportInvest": true,
"totalAssert": "0.8152800000000020382",
"investTokenBalanceVoList": [
{
"investmentName": "ETH",
"investmentId": 22850,
"specialPositionAssetKey": "1-0x308861a430be4cce5502d0a12724771fc6daf216-0x35fa164735182de50811e8e2e824cfb9b6118ac25",
"aggregateProductId": 73676,
"isInvestTypeSupport": true,
"investType": 5,
"investName": "Stake",
"investLogo": {
"middleLogoList": [
{
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"tokenName": "ETH"
}
],
"bottomRightLogoList": [
{
"tokenLogo": "https://static.coinall.ltd/cdn/invest/platform/EtherFi.png",
"tokenName": "ether.fi"
}
],
"topRightLogoList": [
{
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"tokenName": "ETH"
}
],
"topLeftLogoList": []
},
"assetsTokenList": [
{
"tokenSymbol": "ETH",
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"coinAmount": "0.000000000000000001",
"currencyAmount": "0.0000000000000020382",
"tokenPrecision": 18,
"tokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"network": "ETH"
}
],
"rewardDefiTokenInfo": [],
"fundsInfo": [
{
"baseDefiTokenInfos": [
{
"tokenSymbol": "ETH",
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"coinAmount": "0.0002",
"currencyAmount": "0.40764",
"tokenPrecision": 18,
"tokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"network": "ETH",
"buttonType": 3,
"callDataExtJson": "{\"isExtraReward\":true}"
}
],
"callDataExtJson": "{\"isExtraReward\":true}",
"extraData": {
"claimDetails": [
{
"coinAmount": "0.000100000000000000",
"principalIndex": "72021",
"claimable": true,
"status": "CLAIMABLE"
},
{
"coinAmount": "0.000100000000000000",
"principalIndex": "72452",
"claimable": true,
"status": "CLAIMABLE"
}
]
},
"rewardType": "UNLOCKED_PRINCIPAL"
}
],
"extraData": {},
"totalValue": "0.4076400000000020382",
"investmentCategory": 0,
"investmentKey": "1-0x308861a430be4cce5502d0a12724771fc6daf216-0x35fa164735182de50811e8e2e824cfb9b6118ac2",
"marketId": "",
"detailPath": "ether-fi-ethereum-eth-22850"
},
{
"investmentName": "ETH",
"specialPositionAssetKey": "1-0x7d5706f6ef3f89b3951e23e557cdfbc3239d4e2c-72021-08",
"isInvestTypeSupport": false,
"investType": 8,
"investName": "Locked Staking",
"investLogo": {
"middleLogoList": [
{
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"tokenName": "ETH"
}
]
},
"assetsTokenList": [
{
"tokenSymbol": "ETH",
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"coinAmount": "0.0001",
"currencyAmount": "0.20382",
"tokenPrecision": 18,
"tokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"network": "ETH"
}
],
"rewardDefiTokenInfo": [],
"extraData": {},
"totalValue": "0.20382",
"investmentCategory": 0,
"investmentKey": "1-0x7d5706f6ef3f89b3951e23e557cdfbc3239d4e2c-72021-0",
"marketId": ""
},
{
"investmentName": "ETH",
"specialPositionAssetKey": "1-0x7d5706f6ef3f89b3951e23e557cdfbc3239d4e2c-72452-08",
"isInvestTypeSupport": false,
"investType": 8,
"investName": "Locked Staking",
"investLogo": {
"middleLogoList": [
{
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"tokenName": "ETH"
}
]
},
"assetsTokenList": [
{
"tokenSymbol": "ETH",
"tokenLogo": "https://static.coinall.ltd/cdn/wallet/logo/ETH-20220328.png",
"coinAmount": "0.0001",
"currencyAmount": "0.20382",
"tokenPrecision": 18,
"tokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"network": "ETH"
}
],
"rewardDefiTokenInfo": [],
"extraData": {},
"totalValue": "0.20382",
"investmentCategory": 0,
"investmentKey": "1-0x7d5706f6ef3f89b3951e23e557cdfbc3239d4e2c-72452-0",
"marketId": ""
}
],
"investMarketTokenBalanceVoList": [],
"availableRewards": [],
"airDropRewardInfo": [],
"extraData": {}
}
],
"walletId": "1a33c32f-2b8d-426e-9be2-33445f0fcd87"
}
],
"platformName": "ether.fi",
"analysisPlatformId": "260",
"platformLogo": "https://static.coinall.ltd/cdn/invest/platform/EtherFi.png",
"platformUrl": "https://app.ether.fi"
}
]
}
Table of contents