IGNITRAOpen the app

Triggers

A trigger decides when a flow runs. Chain triggers read Robinhood Chain directly, confirmed by default. Every trigger provides data for conditions and templates as {{trigger.<path>}}.

Token transfer

TOKEN_TRANSFER · chain · supports fast mode

An ERC-20 transfer of a token, optionally into or out of a specific wallet.

Fires per Transfer log of the token (ERC-721 transfers with the same topic are ignored). With a wallet, direction says in, out or any. percent_of_supply uses the supply at the time of the event.

Params

ParamTypeRequiredDefault
tokenstringyes
walletstring
direction"any" | "in" | "out""any"

Example

{
  "type": "TOKEN_TRANSFER",
  "params": {
    "token": "0x5fc5360d0400a0fd4f2af552add042d716f1d168"
  }
}

From the big-buy-telegram template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.tx_hashhashTransaction hash
trigger.tx_indexuintTransaction position in the block
trigger.log_indexuintLog position in the block
trigger.contractaddressContract that emitted the event
trigger.event_statusstring`confirmed`, or `pending` for fast-mode runs
trigger.fromaddressSender (0x000… for mints)
trigger.toaddressRecipient (0x000… for burns)
trigger.amountuintAmount transferred, base units (exact)
trigger.amount_decimaldecimal?Amount transferred, token units (exact)
trigger.amount_formattedstring?Amount transferred for display, e.g. 1,234.5
trigger.token.addressaddressToken contract
trigger.token.symbolstring?Token symbol
trigger.token.namestring?Token name
trigger.token.decimalsnumber?Token decimals
trigger.token.total_supplyuint?Total supply, base units (recent)
trigger.token.total_supply_decimaldecimal?Total supply, token units (recent)
trigger.percent_of_supplynumber?Amount as % of total supply (0.82 = 0.82%)
trigger.is_mintbooleanSent from the zero address
trigger.is_burnbooleanSent to the zero address
trigger.walletaddress?The watched wallet, if any
trigger.directionstring?`in` / `out` relative to the watched wallet
trigger.counterpartyaddress?The other side of the watched wallet (null without a wallet)
trigger.counterparty_trust_scorenumber?TRUST LAYER score of the counterparty, 0–1000 (higher = more trustworthy)
trigger.counterparty_trust_bandstring?TRUST LAYER band of the counterparty, e.g. strong or high_risk
trigger.counterparty_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable
trigger.from_trust_scorenumber?TRUST LAYER score of the sender, 0–1000 (higher = more trustworthy)
trigger.from_trust_bandstring?TRUST LAYER band of the sender, e.g. strong or high_risk
trigger.from_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable
trigger.to_trust_scorenumber?TRUST LAYER score of the recipient, 0–1000 (higher = more trustworthy)
trigger.to_trust_bandstring?TRUST LAYER band of the recipient, e.g. strong or high_risk
trigger.to_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable

Contract event

CONTRACT_EVENT · chain · supports fast mode

A specific event emitted by a contract, decoded with its ABI.

Pass a full event signature, or just the name: IGNITRA resolves it from the contract's verified ABI (or the built-in ERC-20 / Ownable / AccessControl / Pausable ABIs) when you save, and stores the full signature, so matching never depends on an explorer. Arguments appear as args.<name>.

Params

ParamTypeRequiredDefault
addressstringyes
eventstringyes

Example

{
  "type": "CONTRACT_EVENT",
  "params": {
    "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
    "event": "event Upgraded(address indexed implementation)"
  }
}

From the proxy-upgraded-webhook template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.tx_hashhashTransaction hash
trigger.tx_indexuintTransaction position in the block
trigger.log_indexuintLog position in the block
trigger.contractaddressContract that emitted the event
trigger.event_statusstring`confirmed`, or `pending` for fast-mode runs
trigger.event.namestringEvent name
trigger.event.signaturestringCanonical signature, e.g. Transfer(address,address,uint256)

New holder

NEW_HOLDER · chain

An address starts holding a token (balance goes from zero to non-zero).

An address whose balance goes from zero to non-zero. Decided per transaction, so routers and pools that receive and pass tokens on in the same transaction are not counted. Confirmed mode only.

Params

ParamTypeRequiredDefault
tokenstringyes

Example

{
  "type": "NEW_HOLDER",
  "params": {
    "token": "0x5fc5360d0400a0fd4f2af552add042d716f1d168"
  }
}

From the new-holder-sheets template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.tx_hashhashTransaction hash
trigger.tx_indexuintTransaction position in the block
trigger.log_indexuintLog position in the block
trigger.contractaddressContract that emitted the event
trigger.event_statusstring`confirmed`, or `pending` for fast-mode runs
trigger.holderaddressThe new holder
trigger.fromaddressWho sent the tokens (0x000… for mints)
trigger.amountuintAmount received in the transaction, base units (exact)
trigger.amount_decimaldecimal?Amount received in the transaction, token units (exact)
trigger.amount_formattedstring?Amount received in the transaction for display, e.g. 1,234.5
trigger.balance_afteruintHolder balance after the transaction, base units (exact)
trigger.balance_after_decimaldecimal?Holder balance after the transaction, token units (exact)
trigger.balance_after_formattedstring?Holder balance after the transaction for display, e.g. 1,234.5
trigger.percent_of_supplynumber?Amount as % of total supply
trigger.token.addressaddressToken contract
trigger.token.symbolstring?Token symbol
trigger.token.namestring?Token name
trigger.token.decimalsnumber?Token decimals
trigger.token.total_supplyuint?Total supply, base units (recent)
trigger.token.total_supply_decimaldecimal?Total supply, token units (recent)
trigger.counterpartyaddressThe new holder (for TRUST LAYER scores)
trigger.counterparty_trust_scorenumber?TRUST LAYER score of the counterparty, 0–1000 (higher = more trustworthy)
trigger.counterparty_trust_bandstring?TRUST LAYER band of the counterparty, e.g. strong or high_risk
trigger.counterparty_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable

Balance threshold

BALANCE_THRESHOLD · chain

A wallet's ETH or token balance crosses a threshold.

Samples the balance at the confirmed head on an interval and fires once per crossing, not on every sample while the balance stays on one side. The first sample after activation only records the side.

Params

ParamTypeRequiredDefault
walletstringyes
asset"native" | string
thresholdstring | numberyes
direction"below" | "above" | "cross""below"

Example

{
  "type": "BALANCE_THRESHOLD",
  "params": {
    "wallet": "0x8366a39cc670b4001a1121b8f6a443a643e40951",
    "asset": "native",
    "threshold": "2",
    "direction": "below"
  }
}

From the treasury-low-email template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.walletaddressWatched wallet
trigger.assetstring`native` or the token address
trigger.token.addressaddress?Token contract (null for native ETH)
trigger.token.symbolstring?ETH or the token symbol
trigger.token.decimalsnumber?Decimals used for the threshold
trigger.thresholddecimalThreshold in token units
trigger.directionstringCrossing that happened: `below` or `above`
trigger.balance_beforeuintBalance at the previous sample, base units
trigger.balance_before_decimaldecimal?Previous balance, token units
trigger.balance_afteruintBalance now, base units
trigger.balance_after_decimaldecimal?Balance now, token units
trigger.balance_after_formattedstring?Balance now, for display
trigger.previous_blockuintBlock of the previous sample

Contract deployed

CONTRACT_DEPLOYED · chain

A watched deployer (wallet or CREATE factory) deploys a new contract.

Follows the deployer's nonce and checks each CREATE address for code: works for wallets and CREATE factories. For CREATE2 factories, use Contract event on the factory's creation event.

Params

ParamTypeRequiredDefault
deployerstringyes

Example

{
  "type": "CONTRACT_DEPLOYED",
  "params": {
    "deployer": "0x8366a39cc670b4001a1121b8f6a443a643e40951"
  }
}

From the new-contract-telegram template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.deployeraddressWatched deployer
trigger.contractaddressThe new contract
trigger.nonceuintDeployer nonce used for the creation
trigger.creation_blockuint?Block the contract was created in
trigger.creation_txhash?Creating transaction (EOA deployers)
trigger.creation_tx_urlstring?Explorer link to the creating transaction

Contract state change

STATE_CHANGE · chain

A contract read (e.g. totalSupply(), owner(), paused()) returns a different value.

Calls a view function at the confirmed head on an interval and fires when the result changes, with previous, current and (for integers) delta. A reverting call is recorded as undetermined, never as a change.

Params

ParamTypeRequiredDefault
addressstringyes
functionstringyes
argsstring | number | boolean[][]

Example

{
  "type": "STATE_CHANGE",
  "params": {
    "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
    "function": "function paused() view returns (bool)"
  }
}

From the paused-telegram template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.contractaddressContract that was read
trigger.function.namestringFunction name
trigger.function.signaturestringCanonical signature, e.g. balanceOf(address)
trigger.argsarrayCall arguments (normalized)
trigger.currentobjectReturn value now
trigger.previousobjectReturn value at the previous sample
trigger.previous_blockuintBlock where the previous value was first observed

Schedule

SCHEDULE · schedule · builder plan

Runs on a cron schedule in your timezone (default WIB), e.g. every weekday at 09:00.

Standard 5-field cron in any timezone (WIB by default), plus @hourly / @daily / @weekly / @monthly and L / W / #. Each time fires at most once. After downtime only the latest time fires (within an hour) and earlier ones are recorded as missed.

Params

ParamTypeRequiredDefault
cronstringyes
timezonestring"Asia/Jakarta"

Example

{
  "type": "SCHEDULE",
  "params": {
    "cron": "0 8 * * *",
    "timezone": "Asia/Jakarta"
  }
}

From the daily-supply-sheets template.

Data

VariableTypeDescription
trigger.scheduled_attimestampScheduled time of this occurrence, ISO-8601 UTC
trigger.scheduled_at_localstringScheduled time in the schedule's timezone, e.g. 2026-11-07 09:00:00 WIB
trigger.fired_attimestampWhen the scheduler fired it, ISO-8601 UTC
trigger.delay_msnumberfired_at minus scheduled_at, in milliseconds
trigger.next_attimestamp?Next scheduled time, ISO-8601 UTC
trigger.cronstringThe cron expression
trigger.timezonestringThe schedule's timezone
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday

Inbound webhook

INBOUND_WEBHOOK · inbound

Your own URL: any service that can send an HTTP POST can start this flow.

Your flow gets its own signed URL. Anything that can send an HTTP POST starts the flow; see Webhooks for the details.

Params

No parameters.

Example

{
  "type": "INBOUND_WEBHOOK",
  "params": {}
}

From the inbound-telegram-relay template.

Data

VariableTypeDescription
trigger.request_idstringId of the accepted request (req_…)
trigger.received_attimestampWhen the API accepted it, ISO-8601 UTC
trigger.idempotency_keystring?The sender's Idempotency-Key header
trigger.content_typestring?Request content type
trigger.bytesnumberBody size in bytes
trigger.bodyobjectParsed body: JSON, form fields, or { text } (any path below it, e.g. body.amount)
trigger.queryobjectQuery-string parameters
trigger.headersobjectNon-sensitive request headers (content-type, user-agent, x-*)
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday

New token launch

NEW_LAUNCH · chain · supports fast mode

A token launched on a Robinhood Chain launchpad (Pons), optionally by one deployer.

Params

ParamTypeRequiredDefault
launchpad"pons""pons"
deployerstring

Example

{
  "type": "NEW_LAUNCH",
  "params": {
    "launchpad": "pons"
  }
}

From the pons-launch-telegram template.

Data

VariableTypeDescription
trigger.chain_idnumberChain id (4663 = Robinhood Chain)
trigger.block_numberuintBlock of the event
trigger.block_hashhashHash of that block
trigger.block_timestamptimestamp?Block time, ISO-8601 UTC
trigger.explorer_urlstringExplorer link for the event
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.tx_hashhashTransaction hash
trigger.tx_indexuintTransaction position in the block
trigger.log_indexuintLog position in the block
trigger.contractaddressContract that emitted the event
trigger.event_statusstring`confirmed`, or `pending` for fast-mode runs
trigger.launchpadstringThe launchpad, e.g. pons
trigger.token.addressaddressToken contract
trigger.token.symbolstring?Token symbol
trigger.token.namestring?Token name
trigger.token.decimalsnumber?Token decimals
trigger.token.total_supplyuint?Total supply, base units (recent)
trigger.token.total_supply_decimaldecimal?Total supply, token units (recent)
trigger.deployeraddressThe wallet that launched the token
trigger.curveaddressThe token's bonding curve
trigger.pair_tokenaddressWhat the curve trades against (0x000… = native ETH)
trigger.pair_symbolstring?ETH, or the pair token symbol
trigger.launch_config_iduintThe launchpad's launch configuration id
trigger.graduation_thresholduintRaise at which the token graduates to a pool, base units (exact)
trigger.graduation_threshold_decimaldecimal?Raise at which the token graduates to a pool, token units (exact)
trigger.graduation_threshold_formattedstring?Raise at which the token graduates to a pool for display, e.g. 1,234.5
trigger.socials.twitterstring?twitter link set by the launcher (unverified)
trigger.socials.telegramstring?telegram link set by the launcher (unverified)
trigger.socials.discordstring?discord link set by the launcher (unverified)
trigger.socials.websitestring?website link set by the launcher (unverified)
trigger.socials.farcasterstring?farcaster link set by the launcher (unverified)
trigger.counterpartyaddressThe deployer (for TRUST LAYER scores)
trigger.counterparty_trust_scorenumber?TRUST LAYER score of the counterparty, 0–1000 (higher = more trustworthy)
trigger.counterparty_trust_bandstring?TRUST LAYER band of the counterparty, e.g. strong or high_risk
trigger.counterparty_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable

VIGIL alert

VIGIL_ALERT · inbound

An alert from VIGIL contract monitoring: ownership, upgrades, roles, pauses, supply, large transfers.

Params

ParamTypeRequiredDefault
connection_idstringyes
stage"confirmed" | "pending""confirmed"
min_severity"low" | "medium" | "high" | "critical""low"
rulesstring[]
contractsstring[]
include_retractedbooleanfalse

Example

{
  "type": "VIGIL_ALERT",
  "params": {
    "connection_id": "conn_…",
    "rules": [
      "PROXY_UPGRADE_V1"
    ]
  }
}

From the vigil-upgrade-webhook template.

Data

VariableTypeDescription
trigger.eventstringalert.created · alert.confirmed · alert.retracted
trigger.alert_idstringVIGIL alert id
trigger.finding_idstringVIGIL finding id (the public chain fact)
trigger.rule_idstringThe VIGIL rule, e.g. PROXY_UPGRADE_V1
trigger.severitystringlow · medium · high · critical
trigger.statusstringpending · confirmed · retracted
trigger.titlestringAlert title
trigger.summarystringWhat changed, stated as a fact
trigger.contractaddressThe contract the alert is about
trigger.labelstring?Your VIGIL watch label
trigger.tx_hashhashTransaction that made the change
trigger.block_numberuintBlock of the change
trigger.actoraddressWho sent the transaction
trigger.counterpartyaddressThe actor (for TRUST LAYER scores)
trigger.beforestring?Value before the change (rule-specific)
trigger.afterstring?Value after the change (rule-specific)
trigger.evidenceobjectVIGIL's full evidence object
trigger.explorer_urlstring?Explorer link for the transaction
trigger.delivery_idstringVIGIL delivery id
trigger.time.isostringEvent time, ISO-8601 UTC
trigger.time.date_wibstringEvent date in WIB, YYYY-MM-DD
trigger.time.hour_wibnumberHour of day in WIB, 0-23
trigger.time.minute_wibnumberMinute of the hour in WIB, 0-59
trigger.time.minutes_wibnumberMinutes since midnight WIB, 0-1439 (08:00 = 480)
trigger.time.weekday_wibnumberISO weekday in WIB, 1 = Monday … 7 = Sunday
trigger.counterparty_trust_scorenumber?TRUST LAYER score of the counterparty, 0–1000 (higher = more trustworthy)
trigger.counterparty_trust_bandstring?TRUST LAYER band of the counterparty, e.g. strong or high_risk
trigger.counterparty_trust_statusstringscored · provisional · insufficient_data · pending (still indexing) · not_a_subject · unavailable · skipped · not_applicable