These samples are here to help you get started. Feel free to customize them to your specific needs.
This page is meant to get you quickly started with a few of the common queries that you will need to get user historical data. Let's get started!
Getting a list of the positions for a user for a given protocol
First thing that you want to do is to query whether or not there are positions for a wallet address for a given protocol. You can do so like this:
Sample Request
query {
totalPositions(
userIdentifier: "0x2f3890Fa27ec94EdAFb682D127C6d1CAA08EcbAe"
blueprintId: "uniswap_v3_arbitrum"
) {
requestId
count
activePositions
positions
indexingStatus {
headBlock
headTimestamp
lastSyncedBlock
lastSyncedTimestamp
}
}
}
Sample Response
{
"data": {
"totalPositions": {
"requestId": "413dd366-187b-59fa-98c5-3aade4f22aae",
"count": 1,
"activePositions": [
"181090"
],
"positions": [
"181090"
],
"indexingStatus": {
"headBlock": 242180824,
"headTimestamp": 1723488169,
"lastSyncedBlock": 242180824,
"lastSyncedTimestamp": 1723488169
}
}
}
}
Once you have the positions, you can now query for the specific positions for a user or if you want to see the indexing status by transaction hash you can view the step below.
Getting the index status of each transaction
If an address has many positions, or a long history of data, the initial indexing progress could take some time (minutes or even hours). In this case it can be helpful to get a hash by hash breakdown of the indexing status and any errors that may have occurred. For that we can use the userTransactionStatuses entity.
Sample Request
query userTransactionStatuses {
userTransactionStatuses(
blueprintId: "uniswap_v3_arbitrum",
userIdentifier: "0x2f3890Fa27ec94EdAFb682D127C6d1CAA08EcbAe")
{
requestId
indexingStatus {
headBlock
headTimestamp
lastSyncedBlock
lastSyncedTimestamp
}
items {
blueprintId
userIdentifier
chainId
blockNumber
timestamp
transactionHash
isProcessed
processedAt
}
}
}
Sample Response
{
"data": {
"userTransactionStatuses": {
"requestId": "413dd366-187b-59fa-98c5-3aade4f22aae",
"indexingStatus": {
"headBlock": 242181558,
"headTimestamp": 1723488356,
"lastSyncedBlock": 242181558,
"lastSyncedTimestamp": 1723488356
},
"items": [
{
"blueprintId": "uniswap_v3_arbitrum",
"userIdentifier": "0x2f3890fa27ec94edafb682d127c6d1caa08ecbae",
"chainId": 42161,
"blockNumber": 36694653,
"timestamp": 1668019223,
"transactionHash": "0x733820e095e30876576f372043f428f3d191cf3ad5d1d8187ccbf062b7a28d09",
"isProcessed": true,
"processedAt": "2024-07-29T16:31:43+00:00"
},
{
"blueprintId": "uniswap_v3_arbitrum",
"userIdentifier": "0x2f3890fa27ec94edafb682d127c6d1caa08ecbae",
"chainId": 42161,
"blockNumber": 38122348,
"timestamp": 1668460411,
"transactionHash": "0x66a16af316191916ae4942fa7f3277397b77f9487c67c2e7fc23db5ed195cb73",
"isProcessed": true,
"processedAt": "2024-07-29T16:31:45+00:00"
}
]
}
}
}
Getting a user's positions for a given protocol updated on demand
Often, we want to get a user's current positions for a protocol with the most recent available data. This will return many metrics with up to date token amounts and values. We can easily query this like so:
Sample Request (sample doesn't show all available fields)
query ondemandIntervalData {
onDemandIntervalData(
blueprintId: "uniswap_v3_arbitrum"
userIdentifier: "0xe3EA96BEE65513b2D0091F1827237ae10e04EaCe"
positionIdentifier: "181102"
) {
requestId
indexingStatus {
headBlock
headTimestamp
lastSyncedBlock
lastSyncedTimestamp
}
items {
date
positionAgeSeconds
blockNumber
timestamp
intervalDataType
positionSharesAtBlock
basePositionShares
pendingIncomeUsd
cumulativeCollectedIncomeUsd
incomeApyInception
netMarketGainUsd
positionUsdValueAtBlock
hodlValueUsd
ifHeldAllAmountEth
basePositionCostUsd
roiVsHodlUsd
tokens {
tokenName
tokenAddress
tokenType
priceUsd
priceSource
pendingIncomeAmount
collectedIncomeAmount
cumulativeCollectedIncomeUsd
totalIncomeAmount
tokenAmountAtBlock
ifHeldAmountToken
tokenValueUsd
}
}
}
}
Sample Response
{
"data": {
"onDemandIntervalData": {
"requestId": "f99a9679-f9c3-480f-aa28-6d3282495fc8",
"indexingStatus": {
"headBlock": 211530418,
"lastSyncedBlock": 211530418
},
"items": [
{
"date": "2024-05-15T13:45:06+00:00",
"positionAgeSeconds": 47760937,
"blockNumber": 211530418,
"timestamp": 1715780514,
"intervalDataType": "on_demand",
"positionSharesAtBlock": "0.000000166207713686",
"basePositionShares": "0.000000166207713686",
"pendingIncomeUsd": "0.512526897380774229",
"cumulativeCollectedIncomeUsd": "0.158161048652069985",
"incomeApyInception": "3.393089763793191",
"netMarketGainUsd": "5.16766154030039807438",
"positionUsdValueAtBlock": "18.219116246382961708",
"hodlValueUsd": "19.401422641295702796",
"ifHeldAllAmountEth": "0.00859184263599549527",
"basePositionCostUsd": "13.05145470608256363362",
"roiVsHodlUsd": "-1.182306394912741088",
"tokens": [
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "non_receipt",
"priceUsd": "2980.09",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "0.00304952398296124",
"ifHeldAmountToken": "0.004311999177640844",
"tokenValueUsd": "9.087855926382961712"
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "non_receipt",
"priceUsd": "1.008",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "9.05879",
"ifHeldAmountToken": "6.49928275",
"tokenValueUsd": "9.13126032"
},
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "income",
"priceUsd": "2980.09",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.000090471770107874",
"collectedIncomeAmount": "0.000046448702937689",
"cumulativeCollectedIncomeUsd": "0.086828872139890622",
"totalIncomeAmount": "0.000136920473045563",
"tokenAmountAtBlock": null,
"ifHeldAmountToken": null,
"tokenValueUsd": "0.269614017380774229"
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "income",
"priceUsd": "1.008",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.240985",
"collectedIncomeAmount": "0.071257",
"cumulativeCollectedIncomeUsd": "0.071332176512179362",
"totalIncomeAmount": "0.312242",
"tokenAmountAtBlock": null,
"ifHeldAmountToken": null,
"tokenValueUsd": "0.24291288"
}
]
}
]
}
}
}
You can also query for exited positions. Please consult the Data section to find out more about how to do this.
Getting a user's transaction history
Get the classified transaction history of a given user position in a selected protocol. Multiple operations can be performed within each transaction (snapshot). For example, a user can collect income and withdraw funds from the protocol.
Sample Request (sample doesn't show all available fields)
query {
positions(
userIdentifier: "0x2f3890Fa27ec94EdAFb682D127C6d1CAA08EcbAe"
blueprintId: "uniswap_v3_arbitrum"
positionIdentifier:"181090")
{
requestId
indexingStatus {
headBlock
headTimestamp
lastSyncedBlock
lastSyncedTimestamp
}
items{
positionIdentifier
chainId
snapshotData {
blockNumber
timestamp
txHash
basePositionShares
operations {
operationType
operationValueUsd
}
}
}
}
}
Sample Response
{
"data": {
"positions": {
"requestId": "413dd366-187b-59fa-98c5-3aade4f22aae",
"indexingStatus": {
"headBlock": 242181558,
"headTimestamp": 1723488356,
"lastSyncedBlock": 242181558,
"lastSyncedTimestamp": 1723488356
},
"items": [
{
"positionIdentifier": "181090",
"chainId": 42161,
"snapshotData": [
{
"blockNumber": 36694653,
"timestamp": 1668019223,
"txHash": "0x733820e095e30876576f372043f428f3d191cf3ad5d1d8187ccbf062b7a28d09",
"basePositionShares": "0.000000294392524274",
"operations": [
{
"operationType": "deposit",
"operationValueUsd": "20.149934494954536664"
}
]
},
{
"blockNumber": 38122348,
"timestamp": 1668460411,
"txHash": "0x66a16af316191916ae4942fa7f3277397b77f9487c67c2e7fc23db5ed195cb73",
"basePositionShares": "0.000000147196262137",
"operations": [
{
"operationType": "income",
"operationValueUsd": "0.067277986058054257"
},
{
"operationType": "withdraw",
"operationValueUsd": "10.277400253092620561"
}
]
}
]
}
]
}
}
}
The upper part of the response shows basic information about the transaction. Within the operations array, you can see the operations listed with additional data, including token-specific data (not shown in the above sample) on all tokens involved in the position.
Getting a user's day by day summary (not available for "lite" blueprints)
We also can have the ability to get a daily summary of a user's position. This will give us information about the position over time which we can chart (or do analysis on).
Currently this endpoint will not trigger new jobs and shouldn't be used. If you are interested in this data please get it touch.
Sample Request (sample doesn't show all available fields and limits the response to the first 3 entries)
query eodIntervalData {
eodIntervalData(
blueprintId: "uniswap_v3_arbitrum"
userIdentifier: "0xe3EA96BEE65513b2D0091F1827237ae10e04EaCe"
positionIdentifier: "181102"
first: 3
) {
requestId
indexingStatus {
headBlock
headTimestamp
lastSyncedBlock
lastSyncedTimestamp
}
items {
positionIdentifier
userIdentifier
blueprintId
hasException
date
positionAgeSeconds
blockNumber
timestamp
intervalDataType
positionSharesAtBlock
basePositionShares
positionShareChange
positionShareChangeUsd
avgOpenInterestUsd
cumulativeCollectedIncomeUsd
pendingIncomeUsd
incomeApyInception
positionShareAPY
positionShareUsdAPY
netMarketGainUsd
netMarketGainPct
positionUsdValueAtBlock
hodlValueUsd
ifHeldAllAmountBtc
ifHeldAllAmountBtcValueUsd
ifHeldAllAmountEth
ifHeldAllAmountEthValueUsd
basePositionCostUsd
basePositionUnitCostUsd
roiVsHodlUsd
roiVsHodlPct
btcPriceUsd
btcPriceSource
ethPriceUsd
ethPriceSource
isLiabilityPosition
tokens {
tokenName
tokenAddress
tokenType
tag
netTokenAmount
priceUsd
priceSource
pendingIncomeAmount
collectedIncomeAmount
cumulativeCollectedIncomeUsd
totalIncomeAmount
tokenAmountAtBlock
exitedTokenAmount
ifHeldAmountToken
ifHeldAllAmountToken
ifHeldAllAmountTokenValueUsd
tokenValueUsd
isVirtualToken
}
}
}
}
Sample Response
{
"data": {
"requestId": "ac777111-92c3-43cb-8b3b-c49c8dd1ebd3",
"eodIntervalData": {
"indexingStatus": {
"headBlock": 197875734,
"lastSyncedBlock": 154422752
},
"items": [
{
"positionIdentifier": "181102",
"userIdentifier": "0xe3ea96bee65513b2d0091f1827237ae10e04eace",
"blueprintId": "uniswap_v3_arbitrum",
"hasException": false,
"date": "2022-11-09T23:59:59+00:00",
"positionAgeSeconds": 18822,
"blockNumber": 36761069,
"timestamp": 1668038399,
"intervalDataType": "eod",
"positionSharesAtBlock": "0.000000294578776736",
"basePositionShares": "0.000000294578776736",
"positionShareChange": "0",
"positionShareChangeUsd": "0",
"avgOpenInterestUsd": "20.17250774089846",
"cumulativeCollectedIncomeUsd": "0",
"pendingIncomeUsd": "0.010333206570902583",
"incomeApyInception": "85.8254439354433",
"positionShareAPY": "0",
"positionShareUsdAPY": "0",
"netMarketGainUsd": "-0.520469450892692904",
"netMarketGainPct": "-2.580092954122280852",
"positionUsdValueAtBlock": "19.652038290005768915",
"hodlValueUsd": "0",
"ifHeldAllAmountBtc": "0.00118189262268670443",
"ifHeldAllAmountBtcValueUsd": "18.706167622161464804",
"ifHeldAllAmountEth": "0.01721984361912210173",
"ifHeldAllAmountEthValueUsd": "18.677562093658320955",
"basePositionCostUsd": "20.172507740898461819",
"basePositionUnitCostUsd": "68479161.88808456000024171409",
"roiVsHodlUsd": "0",
"roiVsHodlPct": "0",
"btcPriceUsd": "15827.298743635603",
"btcPriceSource": "uniswapv3_eth",
"ethPriceUsd": "1084.6534095650827",
"ethPriceSource": "balancer_eth",
"isLiabilityPosition": false,
"tokens": [
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1103.5264476344257",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.00000465571029479",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.00000465571029479",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.005137699442824634",
"isVirtualToken": false
},
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "0.008679962074105881",
"priceUsd": "1103.5264476344257",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "0.00888572245411732",
"exitedTokenAmount": null,
"ifHeldAmountToken": "0.008679962074105881",
"ifHeldAllAmountToken": "0.0172198436191221",
"ifHeldAllAmountTokenValueUsd": "19.002552857830143614",
"tokenValueUsd": "9.805629734457537349",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1.00824900603104",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.005153",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.005153",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.005195507128077949",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "9.997355",
"priceUsd": "1.00824900603104",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "9.76585",
"exitedTokenAmount": null,
"ifHeldAmountToken": "9.997355",
"ifHeldAllAmountToken": "20.158697611598008",
"ifHeldAllAmountTokenValueUsd": "20.324986829773991611",
"tokenValueUsd": "9.846408555548231984",
"isVirtualToken": false
}
]
},
{
"positionIdentifier": "181102",
"userIdentifier": "0xe3ea96bee65513b2d0091f1827237ae10e04eace",
"blueprintId": "uniswap_v3_arbitrum",
"hasException": false,
"date": "2022-11-10T23:59:59+00:00",
"positionAgeSeconds": 105222,
"blockNumber": 37052420,
"timestamp": 1668124799,
"intervalDataType": "eod",
"positionSharesAtBlock": "0.000000294578776736",
"basePositionShares": "0.000000294578776736",
"positionShareChange": "0",
"positionShareChangeUsd": "0",
"avgOpenInterestUsd": "20.172507740898457",
"cumulativeCollectedIncomeUsd": "0",
"pendingIncomeUsd": "0.036658783660311273",
"incomeApyInception": "54.465088636476835",
"positionShareAPY": "0",
"positionShareUsdAPY": "0",
"netMarketGainUsd": "1.044912075688329034",
"netMarketGainPct": "5.179881892273795072",
"positionUsdValueAtBlock": "21.217419816586790853",
"hodlValueUsd": "0",
"ifHeldAllAmountBtc": "0.00118189262268670443",
"ifHeldAllAmountBtcValueUsd": "20.630398545581156184",
"ifHeldAllAmountEth": "0.01721984361912210173",
"ifHeldAllAmountEthValueUsd": "22.320274166519741428",
"basePositionCostUsd": "20.172507740898461819",
"basePositionUnitCostUsd": "68479161.88808456000024171409",
"roiVsHodlUsd": "0",
"roiVsHodlPct": "0",
"btcPriceUsd": "17455.391589367635",
"btcPriceSource": "coingecko",
"ethPriceUsd": "1296.1949399896855",
"ethPriceSource": "uniswap_eth",
"isLiabilityPosition": false,
"tokens": [
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "0.008679962074105881",
"priceUsd": "1296.8240322988293",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "0.00818392494549078",
"exitedTokenAmount": null,
"ifHeldAmountToken": "0.008679962074105881",
"ifHeldAllAmountToken": "0.0172198436191221",
"ifHeldAllAmountTokenValueUsd": "22.331107037705187837",
"tokenValueUsd": "10.613110547842330101",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "9.997355",
"priceUsd": "1.0000951843996173",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "10.6033",
"exitedTokenAmount": null,
"ifHeldAmountToken": "9.997355",
"ifHeldAllAmountToken": "20.158697611598008",
"ifHeldAllAmountTokenValueUsd": "20.160616405127234656",
"tokenValueUsd": "10.604309268744462117",
"isVirtualToken": false
},
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1296.8240322988293",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.00001456025743457",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.00001456025743457",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.018882091757608075",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1.0000951843996173",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.017775",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.017775",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.017776691902703198",
"isVirtualToken": false
}
]
},
{
"positionIdentifier": "181102",
"userIdentifier": "0xe3ea96bee65513b2d0091f1827237ae10e04eace",
"blueprintId": "uniswap_v3_arbitrum",
"hasException": false,
"date": "2022-11-11T23:59:59+00:00",
"positionAgeSeconds": 191622,
"blockNumber": 37352219,
"timestamp": 1668211199,
"intervalDataType": "eod",
"positionSharesAtBlock": "0.000000294578776736",
"basePositionShares": "0.000000294578776736",
"positionShareChange": "0",
"positionShareChangeUsd": "0",
"avgOpenInterestUsd": "20.17250774089846",
"cumulativeCollectedIncomeUsd": "0",
"pendingIncomeUsd": "0.051292813189687598",
"incomeApyInception": "41.84637728975671",
"positionShareAPY": "0",
"positionShareUsdAPY": "0",
"netMarketGainUsd": "0.883220557721044321",
"netMarketGainPct": "4.378337929351101225",
"positionUsdValueAtBlock": "21.05572829861950614",
"hodlValueUsd": "0",
"ifHeldAllAmountBtc": "0.00118189262268670443",
"ifHeldAllAmountBtcValueUsd": "19.825320593521435527",
"ifHeldAllAmountEth": "0.01721984361912210173",
"ifHeldAllAmountEthValueUsd": "21.94779225957606967",
"basePositionCostUsd": "20.172507740898461819",
"basePositionUnitCostUsd": "68479161.88808456000024171409",
"roiVsHodlUsd": "0",
"roiVsHodlPct": "0",
"btcPriceUsd": "16774.214690040182",
"btcPriceSource": "coingecko",
"ethPriceUsd": "1274.563970790288",
"ethPriceSource": "coingecko",
"isLiabilityPosition": false,
"tokens": [
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "0.008679962074105881",
"priceUsd": "1274.563970790288",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "0.00821850847938877",
"exitedTokenAmount": null,
"ifHeldAmountToken": "0.008679962074105881",
"ifHeldAllAmountToken": "0.0172198436191221",
"ifHeldAllAmountTokenValueUsd": "21.947792259576067465",
"tokenValueUsd": "10.475014801463402494",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "non_receipt",
"tag": "tracked_underlying",
"netTokenAmount": "9.997355",
"priceUsd": "1.0020867662582922",
"priceSource": "coingecko",
"pendingIncomeAmount": null,
"collectedIncomeAmount": null,
"cumulativeCollectedIncomeUsd": null,
"totalIncomeAmount": null,
"tokenAmountAtBlock": "10.55868",
"exitedTokenAmount": null,
"ifHeldAmountToken": "9.997355",
"ifHeldAllAmountToken": "20.158697611598008",
"ifHeldAllAmountTokenValueUsd": "20.200764101585006284",
"tokenValueUsd": "10.580713497156104686",
"isVirtualToken": false
},
{
"tokenName": "weth",
"tokenAddress": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1274.563970790288",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.000020456639400452",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.000020456639400452",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.026073295543265158",
"isVirtualToken": false
},
{
"tokenName": "usdc",
"tokenAddress": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
"tokenType": "income",
"tag": "trade_fees",
"netTokenAmount": null,
"priceUsd": "1.0020867662582922",
"priceSource": "coingecko",
"pendingIncomeAmount": "0.025167",
"collectedIncomeAmount": "0",
"cumulativeCollectedIncomeUsd": "0",
"totalIncomeAmount": "0.025167",
"tokenAmountAtBlock": null,
"exitedTokenAmount": null,
"ifHeldAmountToken": null,
"ifHeldAllAmountToken": null,
"ifHeldAllAmountTokenValueUsd": null,
"tokenValueUsd": "0.02521951764642244",
"isVirtualToken": false
}
]
}
]
}
}
}