Security
Invia's security model is mechanical, not reputational. The program is immutable after deploy. The team has no key that can move funds, change fees, or pause the program. This page enumerates exactly what the team can and cannot do once the launch transaction lands.
What the team cannot do
What the team can do
The split is the point. Anything that affects user funds is in the program, and the program is locked. Anything around the program, UX, indexing, notifications, is normal software the team iterates on.
The four guarantees the program enforces
- Vault safety. Tokens in the asset vault and payment in the payment
vault can only move via
take_offer,cancel_offer, orexpire_offer. - Atomic settlement. A
take_offereither completes both legs and the fee skim in one transaction, or reverts with no state change. - Maker-only cancel.
cancel_offerrequires the maker's signature. No other party can close an open offer. - Permissionless expire only after deadline.
expire_offerchecks the current slot timestamp againstexpires_at. Calling it before the deadline reverts.
Audit
A security review is being completed before the mainnet deploy. The audit report and the verification proof for the deployed bytecode will both be linked from this page on launch day.
Disclosure
Vulnerability disclosures: please email the address listed in SECURITY.md
in the public source repo. Reports about the program take priority over
reports about the frontend.
This page is the team's claim about what the program does. The program source is the ground truth. If you intend to size into Invia, read the ~300 lines of Rust before relying on what we wrote here.