Stacks scopes

Reference for all available Stacks event scopes in Chainhook predicates.

Stacks scopes define the if_this conditions in your Chainhook predicates. Each scope type monitors specific on-chain events on the Stacks blockchain.

txid

txid matches transactions by their transaction ID.

Signature

{
"scope": "txid",
"equals": string
}

Parameters

NameTypeRequiredDescription
equalsstringYes32-byte hex encoded transaction ID to match

Example

{
"if_this": {
"scope": "txid",
"equals": "0xfaaac1833dc4883e7ec28f61e35b41f896c395f8d288b1a177155de2abd6052f"
}
}

block_height

block_height matches blocks by their height.

Signature

{
"scope": "block_height",
"equals" | "higher_than" | "lower_than" | "between": value
}

Parameters

NameTypeRequiredDescription
equalsintegerNo*Match exact block height
higher_thanintegerNo*Match blocks above height
lower_thanintegerNo*Match blocks below height
between[integer, integer]No*Match blocks in range [start, end]

*One of these parameters is required

Examples

Match exact height

{
"if_this": {
"scope": "block_height",
"equals": 141200
}
}

Match range of blocks

{
"if_this": {
"scope": "block_height",
"between": [100000, 110000]
}
}

ft_transfer

ft_transfer matches fungible token events.

Signature

{
"scope": "ft_transfer",
"asset_identifier": string,
"actions": string[]
}

Parameters

NameTypeRequiredDescription
asset_identifierstringYesFully qualified token identifier
actionsstring[]YesToken actions: mint, transfer, burn

Examples

Monitor token transfers

{
"if_this": {
"scope": "ft_transfer",
"asset_identifier": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.cbtc-token::cbtc",
"actions": ["transfer"]
}
}

Track all token activities

{
"if_this": {
"scope": "ft_transfer",
"asset_identifier": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-10-token::token",
"actions": ["mint", "transfer", "burn"]
}
}

nft_transfer

nft_transfer matches non-fungible token events.

Signature

{
"scope": "nft_transfer",
"asset_identifier": string,
"actions": string[]
}

Parameters

NameTypeRequiredDescription
asset_identifierstringYesFully qualified NFT identifier
actionsstring[]YesNFT actions: mint, transfer, burn

Examples

Monitor NFT mints

{
"if_this": {
"scope": "nft_transfer",
"asset_identifier": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.monkey-sip09::monkeys",
"actions": ["mint"]
}
}

Track all NFT activities

{
"if_this": {
"scope": "nft_transfer",
"asset_identifier": "SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.megapont-ape-club::apes",
"actions": ["mint", "transfer", "burn"]
}
}

stx_transfer

stx_transfer matches STX token events.

Signature

{
"scope": "stx_transfer",
"actions": string[]
}

Parameters

NameTypeRequiredDescription
actionsstring[]YesSTX actions: mint, transfer, burn, lock

Examples

Monitor STX transfers

{
"if_this": {
"scope": "stx_transfer",
"actions": ["transfer"]
}
}

Track all STX activities

{
"if_this": {
"scope": "stx_transfer",
"actions": ["mint", "transfer", "burn", "lock"]
}
}

print_event matches contract print events.

Signature

{
"scope": "print_event",
"contract_identifier": string,
"contains" | "matches_regex": string
}

Parameters

NameTypeRequiredDescription
contract_identifierstringYesFully qualified contract identifier
containsstringNo*Match events containing string
matches_regexstringNo*Match events by regex pattern

*One of these parameters is required

Examples

Match by substring

{
"if_this": {
"scope": "print_event",
"contract_identifier": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.monkey-sip09",
"contains": "monkey"
}
}

Match by regex pattern

{
"if_this": {
"scope": "print_event",
"contract_identifier": "SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-dao",
"matches_regex": "vault-liquidated-.*"
}
}

contract_call

contract_call matches specific contract function calls.

Signature

{
"scope": "contract_call",
"contract_identifier": string,
"method": string
}

Parameters

NameTypeRequiredDescription
contract_identifierstringYesFully qualified contract identifier
methodstringYesContract method name

Example

{
"if_this": {
"scope": "contract_call",
"contract_identifier": "SP000000000000000000002Q6VF78.pox",
"method": "stack-stx"
}
}

contract_deployment

contract_deployment matches contract deployments.

Signature

{
"scope": "contract_deployment",
"deployer" | "implement_trait": string
}

Parameters

NameTypeRequiredDescription
deployerstringNo*STX address of deployer
implement_traitstringNo*Trait the contract must implement

*One of these parameters is required

Examples

Monitor deployments by address

{
"if_this": {
"scope": "contract_deployment",
"deployer": "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM"
}
}

Monitor trait implementations

{
"if_this": {
"scope": "contract_deployment",
"implement_trait": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-09-trait"
}
}

Further reading