Limits and timings
Every number that shapes how rules fire, in one place.
Arkiv
| Network | Tiramisu testnet, chain 7738577, gas in GLM |
| Block time | About 2 seconds |
| Attribute name | Up to 32 bytes, lowercase |
| String attribute value | Up to 128 bytes |
| Attributes per entity | Up to 32 (a rule uses about 10) |
| Query page | 200 entities |
Workers
| Deadline check | Every 4 seconds (pollMs) |
| Rule reload | At most every 30 seconds (reloadMs), at least every 60 |
| Target re-read | Every 10 minutes, every 30 seconds within 10 minutes of the deadline, and right before firing |
| Claim | Written 8 blocks before the deadline; lives 30 blocks (60 seconds) |
| Act only with | At least 18 blocks of lease left |
| Action budget | 30 seconds; 10 seconds per attempt |
| Heartbeat | Lives 5 minutes, renewed every minute |
| Query timeout | 30 seconds (QueryTimeoutError) |
Lifetimes
| Entity | Lifetime |
|---|---|
| Rule | Deadline + 7 days, at least 1 day |
| Claim | 60 seconds |
| Receipt | 30 days |
| Heartbeat | 5 minutes |
Measured on Tiramisu (17 and 18 October 2026)
| Test | Result |
|---|---|
| 100 rules due together, two workers | 100 fired, 0 duplicates, 100% within 3 blocks, median 1 |
| Expire rule, one worker | 0 to 1 blocks late |
| Worker query load | About 10 arkiv_query a minute with about 430 rules on the chain |