Transfers API

Endpoint

POST https://transfers.main.fastnear.com/v0/transfers

Parameters

Parameter Type Required Default Description
account_id string Yes NEAR account ID to query
resume_token string No null Pagination token from previous response
from_timestamp_ms integer No null Start of time range (ms) inclusive
to_timestamp_ms integer No null End of time range (ms)
limit integer No 1000 Number of transfers to return (1 to 1000)
desc boolean No false Sort descending (newest first) when true
min_amount string No null Minimum absolute amount in token units (e.g. yoctoNEAR)
min_human_amount number No null Minimum absolute amount after applying token decimals
min_usd_amount number No null Minimum absolute USD value
asset_id string No null Filter by asset ID (e.g. "near" or a token contract ID)
direction string No null Filter by direction: "sender" (outgoing) or "receiver" (incoming)
ignore_system boolean No false Skip transfers where other_account_id is "system"

Examples

Basic Query

Fetch transfers for an account with default settings (ascending order):

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{"account_id": "intents.near"}'

With Limit and Descending Order

Fetch the 10 most recent transfers:

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{"account_id": "intents.near", "limit": 10, "desc": true}'

Pagination with Resume Token

Continue fetching from where the previous request left off:

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{"account_id": "intents.near", "limit": 10, "desc": true, "resume_token": "7594641293647473196415950063"}'

Filter by Time Range

Fetch transfers within a specific time window (timestamps in milliseconds):

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{"account_id": "intents.near", "from_timestamp_ms": 1768265220000, "to_timestamp_ms": 1768265226000}'

Combined: Resume Token with Time Filter

Paginate through transfers within a time range:

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "intents.near",
    "resume_token": "7594641293647473196415950063",
    "from_timestamp_ms": 1768265200000,
    "to_timestamp_ms": 1768265300000,
    "limit": 5,
    "desc": true
  }'

Filter by Asset and Direction

Fetch only incoming NEAR transfers with at least 1 NEAR:

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "intents.near",
    "asset_id": "near",
    "direction": "receiver",
    "min_amount": "1000000000000000000000000",
    "limit": 10,
    "desc": true
  }'

Filter by USD Value, Ignoring System Transfers

Fetch transfers worth at least $100, excluding system transfers:

curl -X POST https://transfers.main.fastnear.com/v0/transfers \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "intents.near",
    "min_usd_amount": 100,
    "ignore_system": true,
    "desc": true
  }'

Reference Schema

Account-centric Transfers table:

CREATE TABLE account_transfers
(
    block_height           UInt64       -- Block height
    block_timestamp        DateTime64   -- Block timestamp in nanoseconds (UTC)
    transaction_id         String?      -- Transaction hash
    receipt_id             String       -- Receipt hash
    action_index           UInt16?      -- Index of the action within the receipt
    log_index              UInt16?      -- Index of the log within the receipt
    transfer_index         UInt32       -- Unique index of the transfer within the block
    signer_id              String       -- Transaction signer account ID
    predecessor_id         String       -- Receipt predecessor account ID
    receipt_account_id     String       -- Account ID where the receipt is executed
    account_id             String       -- Account ID involved in the transfer
    other_account_id       String?      -- Other side of the transfer (empty for mints/burns)
    asset_id               String       -- Asset ID ("near" or token contract account ID)
    asset_type             String       -- "Near" or "Ft"
    amount                 Int128       -- Amount in token units (positive=in, negative=out)
    method_name            String?      -- Method that triggered the transfer
    transfer_type          String       -- NEAR native token or Fungible Token (FT)
    human_amount           Float64?     -- Amount after applying token decimals
    usd_amount             Float64?     -- USD value at the time of the block
    start_of_block_balance UInt128?     -- Sender balance at start of block
    end_of_block_balance   UInt128?     -- Sender balance at end of block
)
PRIMARY KEY (account_id, block_timestamp)
ORDER BY (account_id, block_timestamp, transfer_index)