Filter Reference
Complete reference for all Chainhook filter types
Filter Reference
Filters define which blockchain events will trigger your chainhook—use the matrix below to pick the right entry for filters.events[].
| Filter | When to use |
|---|---|
ft_event | FT: catch every SIP-010 transfer, mint, or burn across assets. |
ft_transfer | FT: follow a single asset such as USDC; optionally add sender/receiver for wallet-level triggers. |
ft_mint | FT: track supply expansions or bridge inflows for one asset (set asset_identifier). |
ft_burn | FT: track redemptions or supply contractions (set asset_identifier). |
nft_event | NFT: monitor every transfer, mint, or burn for all collections. |
nft_transfer | NFT: follow a SIP-009 collection; add sender, receiver, or value for owner/token targeting. |
nft_mint | NFT: watch every new mint for a collection (set asset_identifier). |
nft_burn | NFT: catch burns or redemptions (set asset_identifier). |
stx_event | STX: capture all native transfers, mints, or burns. |
stx_transfer | STX: trace every transfer; add sender or receiver to spotlight specific principals. |
contract_deploy | Contracts: react to new contracts entering the network. |
contract_call | Contracts: observe every invocation; narrow with contract_identifier and function_name. |
contract_log | Contracts: catch print/log output from a contract (set contract_identifier). |
coinbase | System: watch miner rewards hitting the chain. |
tenure_change | System: track Proof-of-Transfer tenure updates; add cause ("block_found" or "extended") for specificity. |
Fungible Token Events (FT)
Any FT Event
Match any fungible token event (transfer, burn, or mint):
{"type": "ft_event"}
FT Transfer
Match FT transfers for a specific asset:
{"type": "ft_transfer","asset_identifier": "SP...ABC.ft::usdc"}
Filter by sender:
{"type": "ft_transfer","asset_identifier": "SP...ABC.ft::usdc","sender": "SP...FROM"}
Filter by receiver:
{"type": "ft_transfer","asset_identifier": "SP...ABC.ft::usdc","receiver": "SP...TO"}
FT Mint
Match FT mint events:
{"type": "ft_mint","asset_identifier": "SP...ABC.ft::usdc"}
FT Burn
Match FT burn events:
{"type": "ft_burn","asset_identifier": "SP...ABC.ft::usdc"}
Non-Fungible Token Events (NFT)
Any NFT Event
Match any NFT event (transfer, burn, or mint):
{"type": "nft_event"}
NFT Transfer
Match NFT transfers for a specific collection:
{"type": "nft_transfer","asset_identifier": "SP...COLL.nft::collectible"}
Filter by sender:
{"type": "nft_transfer","asset_identifier": "SP...COLL.nft::collectible","sender": "SP...FROM"}
Filter by receiver:
{"type": "nft_transfer","asset_identifier": "SP...COLL.nft::collectible","receiver": "SP...TO"}
Filter by specific token ID:
{"type": "nft_transfer","asset_identifier": "SP...COLL.nft::collectible","value": "u123"}
NFT Mint
Match NFT mint events:
{"type": "nft_mint","asset_identifier": "SP...COLL.nft::collectible"}
NFT Burn
Match NFT burn events:
{"type": "nft_burn","asset_identifier": "SP...COLL.nft::collectible"}
STX Events
Any STX Event
Match any STX event (transfer, burn, or mint):
{"type": "stx_event"}
STX Transfer
Match any STX transfer:
{"type": "stx_transfer"}
Filter by sender:
{"type": "stx_transfer","sender": "SP...SENDER"}
Filter by receiver:
{"type": "stx_transfer","receiver": "SP...RECEIVER"}
Contract Events
Contract Deploy
Match any contract deployment:
{"type": "contract_deploy"}
Filter by deployer:
{"type": "contract_deploy","sender": "SP...DEPLOYER"}
Contract Call
Match any contract call:
{"type": "contract_call"}
Match calls to a specific contract:
{"type": "contract_call","contract_identifier": "SP...XYZ.counter"}
Match calls to a specific function:
{"type": "contract_call","contract_identifier": "SP...XYZ.counter","function_name": "increment"}
Filter by caller:
{"type": "contract_call","contract_identifier": "SP...XYZ.counter","function_name": "increment","sender": "SP...CALLER"}
Contract Log
Match contract print events:
{"type": "contract_log","contract_identifier": "SP...XYZ.counter"}
Filter by transaction sender:
{"type": "contract_log","contract_identifier": "SP...XYZ.counter","sender": "SP...SENDER"}
System Events
Coinbase
Match coinbase events (block rewards):
{"type": "coinbase"}
Tenure Change
Match any tenure change:
{"type": "tenure_change"}
Match tenure changes by cause (block found):
{"type": "tenure_change","cause": "block_found"}
Match tenure changes by cause (extended):
{"type": "tenure_change","cause": "extended"}
Combining Filters
You can combine multiple filters in the filters.events array. A chainhook will trigger if any of the filters match:
{"filters": {"events": [{"type": "ft_transfer","asset_identifier": "SP...ABC.token::diko"},{"type": "contract_call","contract_identifier": "SP...XYZ.counter","function_name": "increment"}]}}
This chainhook will trigger on either DIKO transfers or calls to the increment function.