Layer 1 · On-chain
The vault program is the control
Caps, payee allowlists and approval holds are enforced inside the vault program on
Solana. The vault itself is owned by a program-derived address, an address with no
private key for anyone to hold. If a transaction violates policy the program rejects
it, whatever the caller believed. This is the binding control, and it does not depend
on Fiscus being online, correct, or honest.
Verify it yourself: program 32Kb9szm…d4NqUJ on devnet.
One honest caveat while we iterate: the devnet build is upgradeable by our deploy key,
which is standard for development. Before mainnet the upgrade authority is revoked or
moved to a public governance key, and you can check that status on-chain at any time.
Layer 2 · Off-chain
The policy engine is a pre-check
Fiscus runs the same rules off-chain and answers authorize or decline inside the
agent's loop. That is why a decline is never broadcast: no transaction is ever built,
so there is nothing to send and no signature to show. It is a speed and cost layer,
not the guarantee.