1. Compromised Agent Key
Attack: An attacker gains control of an agent’s private key and attempts to drain the owner’s funds. Mitigations:
Residual risk: Attacker can spend up to the daily limit before the owner notices. Mitigation: set conservative limits and monitor
TransferValidated events.
2. Self-Delegation Attack
Attack: Owner setsagent_signer = owner, bypassing the delegation model.
Mitigation: The guard checks owner != agent_signer and rejects with SelfDelegationNotAllowed (0x111A).
3. Token Account Substitution
Attack: Agent creates a new token account and tries to transfer from it, bypassing the bound account. Mitigation: The guard validates that the source token account matchesboundTokenAccount in the policy. Mismatch triggers BoundTokenAccountMismatch (0x111B).
4. Sybil Attack on Registry
Attack: Attacker registers many fake agents to dominate registry discovery. Mitigations:
Residual risk: A well-funded attacker can register many agents. Mitigation: consumers should set minimum reputation thresholds when discovering agents.
5. Escrow Griefing
Attack: Buyer creates an escrow, seller delivers, but buyer refuses to release and initiates a frivolous dispute. Mitigations:6. Arbiter Collusion
Attack: Arbiter colludes with one party to immediately resolve a dispute unfairly. Mitigations:7. Reserve Drain (Wrapper)
Attack: Attacker exploits the wrapper to redeem more USDC than deposited, draining the reserve. Mitigations:8. Transfer Hook Configuration Attack
Attack: Change the transfer hook program on the mint to bypass x0-guard. Mitigations:9. Governance Attack (Wrapper)
Attack: Compromised admin executes malicious fee change, emergency withdrawal, or admin transfer. Mitigations:10. Confidential Transfer Front-Running
Attack: Attacker observes a pending confidential transfer and attempts to front-run or extract information. Mitigations:
Residual risk: Transaction metadata (sender, recipient, timing) is still visible on-chain. Only amounts are hidden.
11. Policy Update Spam
Attack: Attacker rapidly updates policy parameters to cause state confusion. Mitigation:POLICY_UPDATE_COOLDOWN_SLOTS = 750 (~5 minutes) between policy updates. Error: PolicyUpdateTooFrequent (0x1140).