RAVEN. / transaction boundary

Receipt first, transaction second

Agents can now produce unsigned Solana transactions over HTTP and hand them to signers, relayers, and landing services. Raven sits before all of that. It is a pre-action receipt gate — not a transaction builder, signer, simulator, relayer, router, or landing optimizer. Machine-readable: /transaction-boundary-policy.json.

Five things that are not verification

An unsigned transaction is an action artifact. Simulation success tells you a transaction may execute — not that the token is acceptable. Landing success, RPC/relayer success, and priority fees or low latency prove delivery speed, nothing else. A signer must not sign merely because an agent produced a base64 transaction.

correct: candidate token → Raven receipt → policy → builder/signer/submitter
PROHIBITED: candidate token → builder → simulation → signer → maybe check Raven later

Transaction scope must match receipt scope

If Raven checked mint A and the generated transaction touches mint B, another pool, or another metadata account, the receipt does not cover the action — block or re-verify. Match chain, mint, tokenProgram, and metadata/pool where applicable. Builder drift (the route changes after verification) is a coverage gap or a re-verification trigger, never an implicit pass.

Speed raises the staleness bar

The faster agents move, the more staleness matters. Re-verify immediately before signing or submission; delayed execution re-verifies at execution time; relayer retries past the staleness window re-verify; cached receipts are display-only. Scheduled agents follow the same rule — a cron firing at time X is not proof of freshness, and catch-up runs after downtime must not bulk-proceed on old receipts. Drills 35–42 rehearse this boundary: failure drills.