Address filters tell Off the Hook which on-chain transfers should trigger a delivery for a given subscription. A subscription with no addresses in its filter list never fires — you must add at least one address before deliveries begin.
Each address entry has two fields:
chainId — a CAIP-2 chain identifier (e.g., tron:mainnet, tron:nile, tron:shasta)
address — a base58check TRON address starting with T
Use PATCH for incremental changes to your address list. Use PUT only when you want to atomically replace the entire list in one operation — for example, when syncing from an authoritative external source.
Add or remove specific addresses
PATCH /v1/subscriptions/:id/filters/addresses accepts add and remove arrays in a single request. The operation is atomic per item — each address is independently validated and either applied or skipped. The response includes per-item results so you can see exactly what changed.
The response includes the updated subscription and a results object with three arrays:
Replace the full address list
PUT /v1/subscriptions/:id/filters/addresses replaces the entire address list atomically. All existing addresses are removed and replaced with the list you provide. Send the new list as a JSON array directly in the request body.
The response is the updated subscription view. Unlike PATCH, PUT does not return a per-item results envelope.
List addresses
GET /v1/subscriptions/:id/filters/addresses returns a paginated list of all addresses on the subscription.
Pass nextPageToken as a query parameter to fetch the next page:
When nextPageToken is absent from the response, you have reached the last page.
Error codes