Limits, stated before they are found
- Signature recovery is
ecrecoveronly. A treasury signing from a Safe needs EIP-1271, which is named rather than built. - The window is a trailing 60-minute measure, approximated with two buckets rather than a true rolling one. The residual is bounded and stated on the clause page: against a burst at the very end of the previous bucket the estimate understates by at most
previous × elapsed ÷ window. - Clause 2.5 bounds price as a rate the owner signs, not as a market price. It has no oracle and cannot know what the pair was worth this minute — a floor set generously is a floor that permits a bad fill, and setting it is the owner's judgement. It is expressed in basis points and carried in a
uint16, which suits pairs whose normalised rate lies roughly between 0.0001 and 6.5; a pair whose units differ by orders of magnitude needs a different encoding. - A mandate registered with
tokenIn == tokenOutis accepted and would strand the pulled amount. The fix belongs in the registry, and the contract has no upgrade path by design. - An instrument's detail needs proof of control — a signature, not a password — and what a firm publishes is its own choice. But the officer path reads the spine rather than the chain, so an officer named on chain who has never filed a decision here cannot yet be recognised by that route.
- The session token is held in the browser rather than in a cookie the script cannot read, which keeps development on two ports working and makes the token worth what any script on the page is worth.
- Single chain, Hedera EVM testnet, synthetic data.
Each of these carries a test that fails the day it stops being true.