Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API
getTransactionsForAddress

Transactions

getTransactionsForAddress

Full history of an address with sort order, filters and a pagination token.

Details

Endpoint
POST getTransactionsForAddress (JSON-RPC)
Credits
varies
Pricing
Depends on the input and the size of the result. The description says how.
Rate class
Heavy. Counts against your heavy requests per second.

Returns an address's transactions as digest rows (default, up to 1,000 per call) or full parsed transactions (up to 100). Sort oldest first or newest first, filter by checkpoint (alias slot), checkpoint time, status, type, source, coin type, direction and role, and continue with paginationToken ("checkpoint:txIndex"). Pass params as [address, config] or as one object. Result: { data, paginationToken, asOf }. Digest rows are { digest, checkpoint, txIndex, timestamp, status } plus type and source when a type or source filter is set. Type and source filters classify transactions while paging: one call reads at most 10 index pages. If it finds fewer than limit matches it returns what it found with a continuation (a digest in the x-tide-next header for the REST path, paginationToken for the others) and capped true in the RPC result. Time filters are exact at checkpoint granularity. History below the loaded index returns not_indexed with the lowest checkpoint. 10 credits per 100 full transactions, 10 per page of digest rows.

Parameters

NameTypeDescription
addressrequiredstring0x address or .sui name.
transactionDetailsstringsignatures (digest rows, default) or full.One of "signatures", "full".
sortOrderstringasc is oldest first, desc newest first (default).One of "asc", "desc".
limitintegerUp to 1000 for digest rows (signatures), 100 for full. Default 100.From 1 to 1000.
paginationTokenstringToken "checkpoint:txIndex" from the previous page.
filtersobjectFilters.
filters.checkpointobjectRange on checkpoint (number, gte gt lte lt eq). Combine bounds freely.
filters.checkpoint.gteintegercheckpoint at or after this
filters.checkpoint.gtintegercheckpoint after this
filters.checkpoint.lteintegercheckpoint at or before this
filters.checkpoint.ltintegercheckpoint before this
filters.slotobjectRange on checkpoint (alias of checkpoint) (number). Combine bounds freely.
filters.slot.gteintegercheckpoint (alias of checkpoint) at or after this
filters.slot.gtintegercheckpoint (alias of checkpoint) after this
filters.slot.lteintegercheckpoint (alias of checkpoint) at or before this
filters.slot.ltintegercheckpoint (alias of checkpoint) before this
filters.blockTimeobjectRange on checkpoint time (unix seconds). Combine bounds freely.
filters.blockTime.gteintegercheckpoint time at or after this
filters.blockTime.gtintegercheckpoint time after this
filters.blockTime.lteintegercheckpoint time at or before this
filters.blockTime.ltintegercheckpoint time before this
filters.blockTime.eqintegercheckpoint time equal to this
filters.statusstringsucceeded, failed or any (default).One of "succeeded", "failed", "any".
filters.typestringOne of TRANSFER, SWAP, ARBITRAGE, FLASH_LOAN, LIQUIDATION, DEPOSIT, WITHDRAW, BORROW, REPAY, STAKE, UNSTAKE, MINT, BURN, NFT_SALE, NFT_LISTING, NFT_TRANSFER, PUBLISH, UPGRADE, ORACLE_UPDATE, CONTRACT_CALL, SYSTEM, UNKNOWN. The type comes from tide's transaction classifier: a DEX trade is SWAP, a loop that ends in the coin it started with is ARBITRAGE, an NFT purchase is NFT_SALE.One of "TRANSFER", "SWAP", "ARBITRAGE", "FLASH_LOAN", "LIQUIDATION", "DEPOSIT", "WITHDRAW", "BORROW", "REPAY", "STAKE", "UNSTAKE", "MINT", "BURN", "NFT_SALE", "NFT_LISTING", "NFT_TRANSFER", "PUBLISH", "UPGRADE", "ORACLE_UPDATE", "CONTRACT_CALL", "SYSTEM", "UNKNOWN".
filters.sourcestringProtocol slug, for example CETUS.
filters.coinTypestringOnly transactions that changed this coin's balance for the address. Alias mint.
filters.directionstringin or out, for the address, gas excluded.One of "in", "out".
filters.rolestringsender, sponsor, balance, owner, call or event. Comma separated for several.

Request

Send your key in the x-api-key header, or leave it out to use the keyless tier.

curl
curl -X POST "https://api.tide.ad/" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactionsForAddress",
  "params": {
    "address": "0xffd4f043057226453aeba59732d41c6093516f54823ebc3a16d17f8a77d2f0ad",
    "transactionDetails": "signatures",
    "limit": 5,
    "filters": {
      "status": "succeeded"
    }
  }
}'
TypeScript
const res = await fetch("https://api.tide.ad/", {
  method: "POST",
  headers: {
    "x-api-key": process.env.TIDE_API_KEY!,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getTransactionsForAddress",
    "params": {
      "address": "0xffd4f043057226453aeba59732d41c6093516f54823ebc3a16d17f8a77d2f0ad",
      "transactionDetails": "signatures",
      "limit": 5,
      "filters": {
        "status": "succeeded"
      }
    }
  }),
});
const data = await res.json();

Response

JSON
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "data": [
      {
        "digest": "9PXrQrDS6N17BqAuQ14f3YtmHD1nTfJzcjreSW1MGjaB",
        "checkpoint": 341486202,
        "txIndex": 11,
        "timestamp": 1793777959,
        "status": "success"
      },
      {
        "digest": "9c74VTSo7K9Td54AVCeFg7iTYDNfZbR8RHPACKsbQ6ai",
        "checkpoint": 341486200,
        "txIndex": 18,
        "timestamp": 1793777959,
        "status": "success"
      },
      {
        "digest": "7A7JroB6Lh7NmbKmCxTeZrAGhfG5W3cX1xtUK1CKNWqd",
        "checkpoint": 341486198,
        "txIndex": 17,
        "timestamp": 1793777958,
        "status": "success"
      }
    ],
    "paginationToken": "341486194:9",
    "asOf": {
      "checkpoint": 341486170,
      "timestamp": "2026-11-04T07:39:20.246Z",
      "lagMs": 2929
    }
  }
}

Long lists are cut to a few items here.