POSTdata_changes

NEAR Mainnethttps://near-mainnet.nodit.io/

Returns, per block, the contract storage (key-value) changes of the given accounts. Keys and values are base64-encoded, and each item includes the cause of the change.

Call the changes method with changes_type: "data_changes". key_prefix_base64 is required; only changes to keys starting with this prefix are returned. An empty string ("") returns changes to all keys. If the same key changes several times in one block, there is one item per change. If the block cannot be found, the UNKNOWN_BLOCK error is returned. EXPERIMENTAL_changes is the former name of this method.

Request Body
jsonrpcstringrequired
idstringrequired

Request ID. Any string; it is returned unchanged in the response.

methodstringrequired
changes_typestring (enum)required

Change query type. Fixed to data_changes.

finalitystring (enum)

Specifies the block finality. Cannot be used together with block_id.

  • optimistic: the latest block the node has received (may be reorganized)
  • near-final: a Doomslug-final block (not reverted in most cases)
  • final: a fully finalized block
block_idinteger

Specifies the block to query by block height (integer) or block hash (base58 string). Cannot be used together with finality.

account_idsstring[]required

Account IDs to get changes for

key_prefix_base64stringrequired

Prefix of the storage keys to query (base64). An empty string ("") targets all keys.

Responses
jsonrpcstring

JSON-RPC version

idstring

Request ID

block_hashstring

Hash of the queried block (base58)

changesobject[]

List of storage changes

causeobject

Cause of the change

typestring (enum)

Cause type

  • transaction_processing: transaction processing (includes tx_hash)
  • receipt_processing: receipt processing (includes receipt_hash)
  • action_receipt_processing_started: action receipt processing started (includes receipt_hash)
  • action_receipt_gas_reward: gas reward paid for receipt execution (includes receipt_hash)
  • postponed_receipt: receipt postponed while waiting for data (includes receipt_hash)
  • updated_delayed_receipts: delayed receipt queue updated
  • validator_accounts_update: validator accounts updated at an epoch change
  • migration: protocol migration
  • initial_state: genesis initial state
  • not_writable_to_disk: change that is not written to disk
  • bandwidth_scheduler_state_update: bandwidth scheduler state updated
tx_hashstring

Hash of the causing transaction. Present only when type is transaction_processing. (base58)

receipt_hashstring

Hash of the causing receipt. Present only for receipt-related causes. (base58)

typestring (enum)

Change type

  • data_update: storage value added or changed
  • data_deletion: storage key deleted
changeobject

The changed storage entry. For data_deletion, value_base64 is absent.

account_idstring

Contract account ID

key_base64string

Storage key (base64)

value_base64string

Value after the change (base64)

namestring (enum)

Error class. REQUEST_VALIDATION_ERROR (invalid request), HANDLER_ERROR (processing error), INTERNAL_ERROR (node internal error)

causeobject

The specific cause of the error.

namestring

Name of the error cause (e.g. UNKNOWN_BLOCK, UNKNOWN_ACCOUNT, PARSE_ERROR)

infoobject

Additional information about the error (block hash, height, account ID, etc.)

codeinteger

Legacy JSON-RPC error code (e.g. -32000 server error, -32700 parse error, -32601 method not found)

messagestring

Legacy error message

datastring

Legacy error details

X-API-KEY
RequestCU30
cURL
curl -X POST "https://near-mainnet.nodit.io/" \
  -H "X-API-KEY: {YOUR_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "dontcare",
    "method": "changes",
    "params": {
      "changes_type": "data_changes",
      "finality": "final",
      "block_id": 220785385,
      "account_ids": [
        "wrap.near"
      ]
    }
  }'
Response
Example · 200
{
  "jsonrpc": "2.0",
  "id": "dontcare",
  "result": {
    "block_hash": "8EjuQRnAJiWkRmqxfexQFJWXXonuSMbz5AZziJLCWnWS",
    "changes": [
      {
        "cause": {
          "receipt_hash": "Htzihke1wZHo1sK92JGfsWuufG9RKG11MgHMeRCdSsJu",
          "type": "receipt_processing"
        },
        "change": {
          "account_id": "wrap.near",
          "key_base64": "U1RBVEU=",
          "value_base64": "AQAAAGGBZB8aVnlQDe4sktDCAQAAfQAAAAAAAAA="
        },
        "type": "data_update"
      },
      {
        "cause": {
          "receipt_hash": "5eEZtLpUUjRYszYieSmfMCSZ57jmF3NswAFNcw66mEHn",
          "type": "receipt_processing"
        },
        "change": {
          "account_id": "wrap.near",
          "key_base64": "U1RBVEU=",
          "value_base64": "AQAAAGGBZB8aVnlQDe4sktDCAQAAfQAAAAAAAAA="
        },
        "type": "data_update"
      }
    ]
  }
}