Introduction
Rules on Arkiv. Actions on time. OpenTrigger workers act when an entity expires or a time arrives, and leave a signed receipt.
Arkiv stores data as entities that expire. When an entity expires, Arkiv sends no event: it simply stops showing up in queries. So every app that needs "do something when this expires" writes its own watcher, and its own cron job, and has no way to prove the job ran.
OpenTrigger closes that gap with three pieces, all of them on Arkiv:
| Piece | What it is | Who writes it |
|---|---|---|
| Rule | "When this entity expires (or at this block), do this." An entity of type trg.rule | You, with your own wallet |
| Worker | An open-source program that watches deadlines and runs the action | Anyone; there is a public one |
| Receipt | Signed proof that a rule fired: when, the result, and which worker | The worker that fired it |
Workers never talk to apps and apps never talk to workers. Apps write rules and read receipts; workers read rules and write claims and receipts. If the dashboard goes down, rules still fire. If one worker goes down, any other worker picks its rules up.

What a rule can do
A rule has one trigger and one action from a fixed menu. Rules never contain code.
| When | Then |
|---|---|
| An entity expires, optionally some blocks early | Send a Telegram message |
| A block height (a date and time) arrives | Call a webhook with a signed POST |
| Record a receipt and nothing else | |
| Extend an entity |
Where to start
Quickstart
Create a rule
Run a worker
SDK reference
Testnet only
OpenTrigger 0.1 runs on Arkiv's Tiramisu testnet (chain 7738577). It has not had an outside
audit, and the entity format may change (every entity carries a version, v = 1).