- Tools
- Chainhooks
- Reference
- Filters
Filters
Complete reference for all Chainhooks filter types
Filters define which blockchain events will trigger your chainhook.
Here is a complete reference for all Chainhooks filter types:
| Filter | When to use |
|---|---|
ft_event | Catch every SIP-010 transfer, mint, or burn across assets. |
ft_transfer | Follow a single asset such as USDC; optionally add sender/receiver for wallet-level triggers. |
ft_mint | Track supply expansions or bridge inflows for one asset (set asset_identifier). |
ft_burn | Track redemptions or supply contractions for one asset (set asset_identifier). |
nft_event | Monitor every transfer, mint, or burn for all collections. |
nft_transfer | Follow a SIP-009 collection; add sender, receiver, or value for owner/token targeting. |
nft_mint | Watch every new mint for a collection (set asset_identifier). |
nft_burn | Catch burns or redemptions (set asset_identifier). |
stx_event | Capture all native transfers, mints, or burns. |
stx_transfer | Track every STX transfer; add sender or receiver to spotlight specific principals. |
contract_deploy | React to new contracts entering the network. |
contract_call | Observe every invocation; narrow with contract_identifier and function_name. |
contract_log | Catch print/log output from a contract (set contract_identifier). |
coinbase | Watch miner rewards hitting the chain. |
tenure_change | 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 any print events:
{"type": "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"}]}}