Protected assets
- Relayer and paymaster signing authority
- Encrypted automation delegate keys
- Wallet authorizations and payment signatures
- Seller identities and Bazaar metadata integrity
- xWrapper upstream credentials
- Automation policies, run limits, and financial state
Core invariants
- The facilitator never becomes the source of buyer funds.
- A modified asset, amount, recipient, invocation, or expiration fails verification.
- Resource delivery does not occur after failed verification.
- Mainnet and testnet are explicit, isolated choices.
- The scheduler cannot bypass contract or wallet authorization.
- Secrets and signed authorization material are never logged.
- Catalog and proxy inputs are hostile until validated.
- Gateway DNS resolution is checked for private/reserved addresses and pinned for the outbound connection.
- Operator credentials, vault plaintext, and injected authorization headers never enter audit rows.
- Wallet authentication challenges are single-use, expire after five minutes, and are bound to an exact transaction hash.
- Console sessions and personal API keys are stored only as SHA-256 hashes; API-key plaintext is revealed once.
- User resources are scoped by the authenticated user ID. Deployment operator keys remain a separate administrative path.
A third-party review and live conformance evidence are release gates for a
production mainnet tag. They are not replaced by unit tests or static
analysis.