✳ X3 SHIELD / CONTROL ROOM
OFFLINE PREVIEW · NOT AN ON-CHAIN PROOF

MAKE THE AGENT
MISBEHAVE.

The owner controls the funds. The agent holds a scoped key. Run every attack against the owner's mandate, watch each rule decide, then inspect the separately recorded NEAR Sandbox and cross-chain testnet proofs.

Evidence boundary: The interactive controls are a browser-only policy preview. They do not connect to a chain, sign transactions, or prove security. The session ledger lives in this tab's memory. The linked Sandbox evidence uses real local-chain transactions. The public Base→NEAR trade uses a trusted Tidepool relay and is a separate system.
8 / 8
Vault Rust unit tests
0.1 NEAR
Real Sandbox approved payout
0.9974 USDC
Real finalized NEAR testnet payout
01

Attack the owner's mandate

Agent
agent.testnet
Recipient
allowed.testnet
Per payment
0.2 NEAR
Total budget
0.4 NEAR
Key scope
request_payment
Asset
native test NEAR

Scripted scenarios

Tap one scenario, or run all of them.

Request

Mandate state

An allowed request is recorded in the session ledger: its nonce is consumed and its amount counts against the budget. Submit it twice to see replay protection.

Decision

OFFLINE POLICY PREVIEW · NO CHAIN TRANSACTION Waiting for a request

Pick a scenario or submit the form. Every rule is checked in order; the first one that fails decides.

    Session ledger

    0 / 0.4 NEAR spent0.4 NEAR left
    Consumed nonces
    none yet

    Browser memory for this preview only. The real vault (x3-lang/near/x3-agent-vault, merged in PR #125) keeps this state on chain; its refusal evidence is from a local Sandbox.

    Activity

    1. Nothing submitted yet.
    02

    What the real local Sandbox recorded

    Scoped FunctionCall keyConfirmed on local chain
    Direct native transferRPC InvalidTransaction
    Recipient / cap bypassRefused
    Authorized 0.1 NEAR payoutPaid
    Replay and revocationRefused

    A direct transfer was rejected by the RPC, without an included failure receipt. Other denied calls were actual local Sandbox contract transactions. See PR #125 (merged) and x3-lang/near/agent-vault-sandbox-tests for the real harness and evidence.

    03

    The real two-chain testnet trade

    1. Owner authorizes a signed quote

    A typed X3Lang strategy and one-use Guard mandate were committed to NEAR before funding.

    2. Source transfer finalizes

    1.000000 test USDC transferred on Base Sepolia in block 55,557,170, independently verified.

    3. NEAR receives the payout

    0.997400 test USDC delivered to x3lang.testnet, confirmed by NEAR receipt and historical balance delta.

    04

    What is still unproven?

    The NEAR vault: local Sandbox proof only. No public deployment, independent audit or mainnet funding approval. The owner's unrestricted key remains an administrative trust boundary.

    The Base EOA: a compromised unrestricted EVM key can still bypass an advisory Guard. An audited smart-account or vault is required before claiming EVM non-bypassability.

    This page: the decisions above come from attack-lab-policy.mjs running in your browser. They predict the vault's rules; they are not the vault.

    Preview locally: from a clone of the X3Lang source repository, serve its root with python3 -m http.server 8000 and open http://localhost:8000/docs/hackathon/attack-lab.html. Deep links: #scenario=replay, #run-all.