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
            }
          ]
        }
      ]
    }
  }
}