Skip to Content
WebhooksNEAR Activity

NEAR Activity

Address Activity webhooks (ADDRESS_ACTIVITY) also run on NEAR. A NEAR webhook watches account IDs such as alice.near and delivers the native NEAR, token, NFT, and protocol actions those accounts take part in. Delivery, retries, and signing work the same as on EVM chains; this page covers what is different.

Contract Events (CONTRACT_EVENT) webhooks are EVM-only. On NEAR, watch a contract’s account ID with Address Activity instead.

Account IDs

Watched addresses and token contracts are NEAR account IDs:

  • 2–64 characters of lowercase a-z, 0-9, and the separators -, _, ..
  • No leading, trailing, or consecutive separators.
  • Implicit accounts (64 lowercase hex characters) and ETH-implicit accounts (0x + 40 hex characters) are accepted.

Uppercase IDs are rejected rather than lowercased, so the value you watch is exactly the value delivered in fromAddress and toAddress.

The categories

NEAR categories are delivered with the same value you filter on.

CategoryWhat it isfromAddress → toAddress
externalA native NEAR Transfer action, or a deposit to or withdrawal from a gas key.Sender → receiver.
function_callA contract method call. value is the NEAR deposit attached to the call.Caller → contract.
nep141A fungible-token transfer, mint, or burn.Token sender → token receiver.
nep171An NFT transfer, mint, or burn.Previous owner → new owner.
nep245A multi-token transfer, mint, or burn, such as tokens held in intents.near.Token sender → token receiver.
stakeA Stake action. value is the account’s new total stake, not the change.Staking account → none.
create_accountA new account is created.Creator → new account.
delete_accountAn account is deleted.Deleted account → beneficiary.
deploy_contractContract code is deployed or a global contract is used.Deployer → account.
add_key / delete_keyAn access key is added or removed; publicKey names it.Caller → account.
delegateA meta-transaction (NEP-366) relayed on behalf of a user. Its inner actions arrive as their own entries.Relayer → user.
unknownA protocol action Spectrum does not classify yet, so new action kinds still reach you.Caller → receiver.

On a mint fromAddress is empty, and on a burn toAddress is empty.

NEAR attached to a contract call is delivered as function_call, not external. Filtering on external alone misses most NEAR value that moves through contracts.

Operations

operation names the variant within a category:

Categoryoperation
externaltransfer
nep141, nep171, nep245transfer, mint, or burn
stakeunstake_all when rawValue is "0", otherwise set_stake
delegatedelegate or delegate_v2
unknownThe protocol action name

Other categories have no operation.

Filter options

OptionEffect
addressesRequired. Account IDs to watch; an entry matches when a watched account is its fromAddress or toAddress.
categoriesOptional. Any of the categories above. All categories are delivered by default.
tokensOptional. NEP-141, NEP-171, or NEP-245 contract account IDs. When set, only token activity from these contracts is delivered, and native NEAR and action entries are dropped. It narrows activity that already involves a watched account; it does not watch the token contract itself.
excludeZeroValueDrops function_call entries with no attached deposit.
excludeSelfCallsDrops function calls an account makes to itself.
excludeActionsDrops protocol actions by name: transfer, function_call, stake, create_account, delete_account, deploy_contract, add_key, delete_key, delegate, delegate_v2, deploy_global_contract, deploy_global_contract_by_account_id, use_global_contract, use_global_contract_by_account_id, deterministic_state_init, universal_state_init, transfer_to_gas_key, withdraw_from_gas_key. Token activity is never excluded by this option.
includeGasRefundsDelivers the gas refunds NEAR sends from the system account, flagged gasRefund: true. Dropped by default.
includeFailedDelivers actions from failed receipts, flagged failed: true. Their value was not applied, and a failed receipt never produces token activity. Dropped by default.

includeReverted and the optional fields (logIndex, log, subIndex, typeTraceAddress) are EVM-only and rejected on NEAR.

Entry fields

NEAR entries share category, fromAddress, toAddress, hash, value, rawValue, and asset with EVM entries, and add:

FieldDescription
hashThe originating transaction hash, or the receiptId when the source does not supply one.
receiptIdThe receipt whose execution produced the entry.
operationSee Operations.
actionIndexPosition of the action in the receipt, for action-derived entries.
logIndex, dataIndexPosition of the token event in the receipt’s logs and in the event’s data array. A nep141 transfer recovered from an ft_transfer call that logged no event carries actionIndex instead.
tokenIndexPosition in the event’s token_ids array, for nep171 and nep245.
tokenIdThe NFT or multi-token ID, for nep171 and nep245.
methodThe called method, for function_call.
publicKeyThe key involved, for stake, add_key, delete_key, and gas-key deposits and withdrawals.
gasRefundtrue on an opted-in gas refund.
failedtrue on an opted-in failed action.

Values and assets

  • Native NEAR uses asset: { "symbol": "NEAR", "decimals": 24 }, so rawValue is in yoctoNEAR.
  • nep141 and nep245 carry the token contract in asset.address, plus name, symbol, and decimals from the token’s metadata. value is null until decimals are known.
  • nep171 always has value: "1".
  • A function_call with no deposit has value: null, an empty rawValue, and an empty asset.

Example payload

{ "id": "whevt_a1b2c3d4e5f6", "type": "ADDRESS_ACTIVITY", "webhookId": "wh_4dbc2155930fa7054493aed0", "createdAt": "2026-10-09T12:34:56.789Z", "event": { "chain": "near", "blockHash": "4D5p1esztCrJR1wVJsbVAKkEuN6wmLmc2DEzBiHMbh8K", "blockNumber": 217990083, "blockTimestamp": 1790815788, "removed": false, "activity": [ { "category": "external", "fromAddress": "alice.near", "toAddress": "bob.near", "hash": "9x...", "value": "0.1", "rawValue": "100000000000000000000000", "asset": { "symbol": "NEAR", "decimals": 24 }, "operation": "transfer", "receiptId": "Grk...", "actionIndex": 0 }, { "category": "nep141", "fromAddress": "alice.near", "toAddress": "bob.near", "hash": "7y...", "logIndex": 0, "value": "1.5", "rawValue": "1500000", "asset": { "name": "USDC", "symbol": "USDC", "decimals": 6, "address": "17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1" }, "operation": "transfer", "receiptId": "Ab...", "dataIndex": 0 } ] } }

Finality and reorgs

Spectrum only delivers NEAR blocks once they are final, so NEAR deliveries are never rolled back and event.removed is always false. NEAR can skip block heights, so gaps in blockNumber between deliveries are normal.