Bastion Logo

Vouch · Casper Agentic Buildathon 2026

Bastionv2.2.2

Compliance without surveillance — proven in zero-knowledge, and revocable.

An agentic compliance gateway where users prove they're KYC-compliant with a Groth16-shaped zero-knowledge membership proof — simulated prover, real protocol interface — no identity revealed, and a monitoring agent autonomously revokes them the moment they're not. The chain sees only a Merkle root — zero PII.

The one core flow

  1. 1

    User submits documents off-chain — PII never touches the chain

  2. 2

    Verifier agent reviews and decides (approve / decline)

  3. 3

    Gasless EIP-712-style credential (SHA-256 mock) issued + commitment inserted into on-chain Merkle set

  4. 4

    Holder generates a Groth16-shaped ZK proof (simulated) of “valid & non-revoked” — secret never leaves the device

  5. 5

    Gated pool admits the holder (proof verified against the on-chain Merkle root)

  6. 6

    Monitor agent detects a risk signal (sanctions hit / anomaly)

  7. 7

    Autonomous REVOCATION — nullifier published, root updated, proof stops verifying, pool ejects

Gated RWA Pool — Compliance Console

members: 2/3

On-chain Merkle root

0x3c7542527fdf55adbe9861f66e4de52ab82119d568cc2048feaa81209bf56a7d

revoked nullifiers: 0

Monitor agent

watching mallory · OFAC SDN streaming feed

autonomously revokes on a sanctions hit

aliceVALID

passport · JP

ZK proof✓ verifies
in poolyes
malloryVALID

passport · US

ZK proof✓ verifies
in poolyes
carolDECLINED

national_id · FR

ZK proof✕ fails
in poolno

Every state change is real: proofs are generated and verified against the live Merkle root, revocation publishes a nullifier and removes the commitment, and the remaining holders re-prove against the new root. Only the deploy broadcast is stubbed for the demo.

🔒

On-chain PII scan: 0 fields found

Contract state contains only a Merkle root + nullifier hashes. No names, no documents, no wallet→identity links.

x402 Pay-to-Check

A mock dApp submits a holder's ZK proof to /check 402 → EIP-712-style CEP-18 payment (mock in demo; real facilitator when BASTION_DEMO=false) → 200 { compliant: true }

Boolean only — never identity. Settlement deploy hash shown. Reinforces "verify the proof, learn nothing else."

Casper Native Integration Architecture

Cryptography

casper-js-sdk (PEM) — Credential Attestation

Enables gasless credential issuance with the holder's PII kept strictly off-chain. The attestation is a SHA-256 stand-in for EIP-712 typed-data in the demo, signed and broadcast with the backend casper-js-sdk PEM key — no browser wallet required.

On-Chain Registry

Odra Rust Smart Contract

Stores the Merkle root and logs revoked nullifiers on-chain. Built using Odra, allowing upgradable proxy execution and strictly isolated state transitions to prevent any front-running attacks.

Agent Integration

casper-js-sdk (Autonomous Signing)

Allows the autonomous monitoring agent to build, sign, and broadcast 'insert_commitment' and 'revoke' transactions using standard PEM keys without relying on human browser wallet authorization.

Monetization

x402 Micropayments Facilitator

Implements pay-per-check proof verification via CEP-18 token flows, ensuring that high-throughput verification queries are monetized and settled on Casper with cryptographic proof of payment.

Node + Monitor

CSPR.cloud — RPC + x402 Facilitator

Serves as the Casper RPC node the autonomous agent broadcasts through, and backs the x402 facilitator endpoint. The compliance monitor follows a streaming pattern, driven by a deterministic simulated risk feed in the demo.