Skip to main content

Adversary Model

The x0 protocol assumes the following adversary capabilities:

Trust Assumptions

What You Trust

  1. Solana validator consensus — Transactions are finalized correctly by the network
  2. Token-2022 program correctness — SPL Token-2022 correctly enforces transfer hooks and confidential transfers
  3. Cryptographic hardness — Ristretto group discrete log is hard; SHA-256 is collision-resistant; Groth16 proofs are sound
  4. Owner key custody — The human owner securely stores their private key

What You Don’t Need to Trust

  1. The agent — Agent spending is bound by on-chain policy; exceeded limits trigger Blinks for human approval
  2. The counterparty — Escrow protects both buyer and seller; funds cannot be unilaterally released
  3. The protocol team — Wrapper governance uses 48-hour timelocks; all admin actions are observable on-chain
  4. Network privacy — Confidential transfers encrypt amounts using ElGamal; only the owner and optional auditor can decrypt

Security Boundaries

Defense-in-Depth Layers

1

Policy Layer (x0-guard)

Rolling 24-hour spend limits, per-transaction limits, and whitelist enforcement at the transfer hook level. Every token transfer flows through the guard.
2

Delegation Layer

Agents must be delegates, not token account owners. The owner’s token account is bound to the policy, preventing the agent from transferring from unauthorized accounts.
3

Escrow Layer

Multi-party payments go through escrow with timeout-based auto-release and arbiter dispute resolution. Reputation is updated via CPI at settlement.
4

Cryptographic Layer

Confidential transfers use ElGamal encryption with ZK proofs for amount validity. The guard validates proof context accounts before approving confidential transfers.
5

Governance Layer

All protocol-level changes (fee updates, pausing, emergency withdrawals) go through a 48-hour timelock with on-chain visibility.

Clock Manipulation Protection

Solana’s Clock::get() can be influenced by validators. The protocol mitigates this through dual time verification: Both Unix timestamp and slot number are checked for critical time-dependent operations.
Last modified on February 8, 2026