V1 API Reference

ZERA Indexer API

Access indexed blockchain data from the ZERA network. Transactions, blocks, tokens, wallets, governance, DEX, staking, and more.

ALPHA DOCUMENTATIONThese endpoint schemas are currently in Alpha and may contain inaccuracies or incomplete payload parameters. If you encounter any structural divergence while integrating, please report it to us so we can resolve it swiftly.
https://api.zerascan.io/v1
GET ONLYJSON RESPONSES

Reports

Server-side wallet activity report payloads for PDF and dashboard rendering, including balances, transactions, tax inputs, interactions, related-wallet summaries, and active stake positions.

Wallet Activity Report

GET/v1/reports?request=walletActivity

Builds a multi-wallet activity report with current liquid value, active stake value, transaction history, stake transaction flows, and optional related-wallet graph data.

Parameters

ParameterTypeRequiredDescription
requeststringREQUIREDMust be `walletActivity`
addressesstringREQUIREDComma, space, or newline separated wallet addresses. Up to 20 wallets per report. Use `address` for a single-wallet alias.
datePresetstringoptionalRange preset: all, yearToDate/ytd, last30, last90, or custom.
startDatestringoptionalCustom range start date as YYYY-MM-DD. Ignored when startMs/startUnix is provided.
endDatestringoptionalCustom range end date as YYYY-MM-DD. Defaults to today when omitted.
startMs / endMsintegeroptionalMillisecond timestamp range overrides. startUnix/endUnix are also accepted as seconds.
sectionsstringoptionalComma-separated section shortcut: balances, transactions, tax, interactions, bubbleMap. When set, it overrides the include* flags.
includeBalancesbooleanoptionalInclude current token balances. Active stake positions are loaded when balances or interactions are enabled.
includeTransactionsbooleanoptionalInclude reported transactions, including stake transactions categorized as `stake` when present.
includeTaxbooleanoptionalInclude estimated tax/PnL input summaries.
includeInteractionsbooleanoptionalInclude interaction summaries. Also enables active stake position loading.
includeBubbleMapbooleanoptionalInclude related-wallet graph summary data for report visualizations.
hideSpambooleanoptionalHide likely spam tokens from balance and report outputs.
contractWhiteliststringoptionalComma-separated contract IDs to include. Use %2B for plus signs in URLs. Include $ZRA+0000 when filtering and expecting stake positions.
maxTransactionsPerWalletintegeroptionalMaximum fetched transactions per wallet. Capped at 5000.
relatedWalletLimitintegeroptionalMaximum related-wallet nodes returned when bubbleMap is enabled.
relatedWalletHopDepthintegeroptionalRelated-wallet traversal depth when bubbleMap is enabled.

🪙 Usage & Credits

This endpoint consumes 1 preflight + 50-2500 metered credits per request against your active API tier.

Notes

  • Report summaries distinguish `currentValueUsd` (liquid wallet token value), `currentStakeValueUsd` (active/releasing stake principal value), and `currentPortfolioValueUsd` (liquid plus stake value).
  • Active stake positions are returned for ZERA wallets when balances or interactions are enabled and no contract whitelist is supplied, or when the whitelist includes `$ZRA+0000`.
  • Stake transactions appear in `reportedTransactions` with `category: stake` and flow kinds such as `locked` and `unlocked`; report and wallet stake summaries aggregate those flows.
  • The endpoint performs a 1-credit auth preflight, then debits deferred metered credits from measured work. Use `credits.actualWorkUnits` and `chargeStats` to inspect the final cost model.

Response

json
{
  "generatedAtMs": "integer",
  "rangeStartMs": "integer | null",
  "rangeEndMs": "integer | null",
  "summary": {
    "walletCount": "integer",
    "currentValueUsd": "float",
    "currentStakeValueUsd": "float",
    "currentPortfolioValueUsd": "float",
    "activeStakePositions": "integer",
    "activeStakedAmount": "float",
    "stakeTransactions": "integer",
    "stakeLockedAmount": "float",
    "stakeUnlockedAmount": "float",
    "stakeLockedValueUsd": "float",
    "stakeUnlockedValueUsd": "float",
    "reportedTransactions": "integer",
    "fetchedTransactions": "integer",
    "relatedRelations": "integer",
    "truncatedWallets": "integer"
  },
  "wallets": [
    {
      "inputAddress": "string",
      "scopedAddress": "string",
      "chain": "string",
      "currentValueUsd": "float",
      "tokens": [
        {
          "symbol": "string",
          "amount": "float",
          "valueUsd": "float",
          "rate": "float",
          "spamLikely": "boolean"
        }
      ],
      "stakePositions": [
        {
          "bumpId": "integer",
          "wallet": "string",
          "amount": "float",
          "valueUsd": "float",
          "reward": "float *",
          "term": "string",
          "stakeType": "string",
          "startTime": "integer",
          "endTime": "integer *",
          "status": "string",
          "currentRate": "float"
        }
      ],
      "stakeSummary": {
        "activeStakePositions": "integer",
        "activeStakedAmount": "float",
        "activeStakedValueUsd": "float",
        "stakeTransactions": "integer",
        "stakeLockedAmount": "float",
        "stakeUnlockedAmount": "float",
        "stakeLockedValueUsd": "float",
        "stakeUnlockedValueUsd": "float"
      },
      "reportedTransactions": [
        {
          "hash": "string",
          "timestampMs": "integer | null",
          "category": "stake | transfer | swap | bridge | ...",
          "displayType": "string",
          "flows": [
            {
              "kind": "locked | unlocked | sent | received | ...",
              "symbol": "string",
              "amount": "float",
              "usdEstimate": "float"
            }
          ]
        }
      ]
    }
  ],
  "chargeStats": {
    "stakeWalletsLoaded": "integer",
    "stakePositionsReturned": "integer",
    "transactionsReported": "integer"
  },
  "credits": {
    "actualWorkUnits": "integer",
    "preauthorizedWorkUnits": "integer *",
    "model": "string"
  }
}

Errors

StatusCondition
400Missing or invalid address/addresses parameter
401Missing or invalid authorization
403Insufficient credits for the report work