Rules
A rule narrows a watch so you only hear about what matters. Every field is optional; an empty rule {} fires on any transfer of the watched token.
{
"direction": "in",
"minAmount": "1000000000",
"maxAmount": "5000000000000",
"counterpartyIn": ["0xpartner…"],
"counterpartyNotIn": ["0xexchange…"]
}
| Field | Type | Meaning |
|---|---|---|
direction | in | out | any | Incoming, outgoing, or both (default any). |
minAmount | string | Fire only at or above this amount. |
maxAmount | string | Fire only at or below this amount. |
counterpartyIn | string[] | Only when the other party is in this list. |
counterpartyNotIn | string[] | Never when the other party is in this list. |
Unknown fields are rejected — rules are validated strictly.
Amounts are raw base units
Amounts are integer strings in the token’s smallest unit, never decimals. This avoids floating-point error and matches the chain exactly. Multiply the human amount by 10^(token decimals):
| You want | Token (decimals) | minAmount |
|---|---|---|
| ≥ 10,000 USDT on TRON | USDT-TRC20 (6) | "10000000000" |
| ≥ 10,000 USDT on BSC | BSC-USDT (18) | "10000000000000000000000" |
The same raw-unit amount is echoed back in every alert payload.
Counterparties are matched case-insensitively, the same way addresses are.