Test what users see.
Prove what happens on-chain.
Point the agent at a dApp. It drives the real MetaMask, sends testnet transactions, and checks receipts, events, and balances in code. Every verdict is attested on-chain.
Building for the Indonesia Web3 Hackathon 2026 · AI Agents and Finance & Commerce tracks · BNB Chain
Watch the agent
test a dApp.
Observe. Act through the wallet. Verify on-chain. Attest.
The owner watches every step live.
Read the dApp before touching the wallet.
With MetaMask locked, the agent maps what the dApp offers, then ranks the flows where money moves and something can go wrong.
- Read-only exploration
- Feature inventory from real UI labels
- Risk-ranked scenario backlog
Balance: 100 S7USD
Why: “Connect passed. Deposit moves value and is the next risk.”
- Observe dApp, wallet locked
- Click “Deposit”, amount 5, confirm in MetaMask
- Wait for the finalized receipt, decode events
- Attest the report hash on-chain
Waiting for a transaction
“Test this dApp.”
That’s the prompt.
Paste a URL and walk away. The agent picks the risky scenarios, runs them through the wallet, reflects on what it found, and decides when it has covered enough. Prefer control? Guided mode lets you pick one of three recommended flows.
See how verdicts work- Observe the dApp with the wallet locked
- Rank risky flows into a backlog
- Plan a scenario, including negative paths
- Act through MetaMask, guarded
- Verify receipts, events, and balances
- Reflect: next scenario or stop
Real wallet
Connect, sign, confirm, and reject in MetaMask.
Negative paths
Rejected txs, low balances, double clicks.
Facts in code
The model operates the UI, never judges the chain.
Proof at the end
A report hash anyone can verify on-chain.
Your dApp says success.
The chain has the final word.
Try a sample dAppExpected vs Actual. Decided in code.
Each scenario sets what the interface claimed beside what the chain recorded. The verdict follows fixed rules.
| The UI says | The chain says | Verdict | Finding |
|---|---|---|---|
| Success | Reverted, no tx, or wrong event or amount | FAIL · HIGH | UI–chain mismatch |
| Any | Wrong contract, wrong chain, or duplicate submission | FAIL · HIGH | Wrong target or double send |
| Still loading after finality | Success | FAIL · MEDIUM | Stale UI |
| Error | Success | FAIL · MEDIUM | UI error on success |
| Matches | Matches | PASS | — |
| — | Receipt not final before timeout | INCONCLUSIVE | Never a PASS |
Waits for the finalized block, up to 120 s
From the receipt logs, emitter checked
Read before and after, never “latest”
Three dApps. Bugs on purpose.
Savings, merchant payments, and loyalty, built for Indonesia and live on BSC Testnet. Each has a normal mode and hidden bug modes the agent must catch without being told.
S7 Tabungan: Deposit and withdraw S7USD.
Approve, deposit, and withdraw from a savings vault.
- 01Normal: every step matches the chain
- 02Bug: “Deposit successful” on a reverted tx
- 03Bug: balance stays stale after deposit
S7 Pay: Pay an invoice in tBNB or S7USD.
QRIS-style merchant checkout with replay-safe invoice ids.
- 01Normal: pays the amount it shows
- 02Bug: one click sends two payments
- 03Bug: shows one amount, sends another
S7 Loyalty
Check in for points. Bugs: success on a cooldown revert, a counter that never updates.
Every contract verified
Source verified on Sourcify. Addresses below, with BscScan links.
Built to be pointed at the web
Isolation, a guarded wallet, and testnet-only funds.
The agent tests.
The chain remembers.
Every session that reaches a verdict ends in one public-safe report. Its SHA-256 hash and verdict are written to S7RunAttestor once. The result page’s Verify button hashes the report in your browser and compares it with the record on-chain.
View S7RunAttestor on BscScan› attest(runId, reportHash, verdict, uri)
RunAttested · one record per session
Verify: hash locally, compare on-chain
- S7RunAttestor
0x99a2…4474Records each report hash and verdict - S7USD
0xae4e…0e0aTest token for the sample dApps - S7Tabungan
0x8a2b…fc77Savings vault: deposit and withdraw - S7Pay
0x5c26…8230Invoice payments in tBNB or S7USD - S7Loyalty
0x3592…d1dcCheck-in points with a cooldown
Safe to point at any dApp.
The public agent opens only after an adversarial security gate passes.
Testnet only
No mainnet signing, ever. Mainnet RPC hosts are blocked.
Guarded wallet
Every wallet request passes a deterministic check first.
One browser per session
A fresh, isolated container that restarts pristine.
Locked-down network
Public web only. Internal addresses are unreachable.
No double sends
Identical duplicate transactions are refused in-step.
Public-safe reports
Only hashes and fixed titles go on-chain.
Owner-only live view
Sharing starts after the session finishes.
Not an audit
Every result says so, plainly.
Where the agent is today.
About the hackathon- ✓ Done
Contracts
5 contracts deployed and verified on BSC Testnet
- ✓ Done
Sample dApps
3 dApps live with bug modes; MetaMask connects
- ✓ Done
Agent toolkit
Tx and signature policy, RPC policy proxy, verifier and verdict matrix, attestation hashing. 458 unit tests.
- ✓ Done
Feasibility
The agent sees and clicks the real MetaMask popup; the vision model calls custom wallet and chain tools
- ◐ In progress
Staging
Deploying the full agent session runner
- → Next
Public demo
Live view of the agent and MetaMask, autonomous multi-scenario mode, and opBNB support
The Web3 agent layer (wallet and chain toolkit, RPC policy proxy, verifier, on-chain attestor, sample dApps, and contracts) was built during the hackathon period. It runs on top of AuraCheck’s existing AI QA engine for web apps, which we extended to drive MetaMask and verify on-chain results.
Is this a smart-contract audit?
No. Every result says “Automated test result, not an audit”. The agent tests how your dApp behaves for a user, through the UI and the wallet, and checks what reached the chain. It does not review contract source code for vulnerabilities.
Which networks does it use?
BSC Testnet (chain 97) only. The agent never signs on mainnet: its demo wallets hold zero mainnet value, and mainnet RPC hosts are blocked at the network edge.
Does the agent use my wallet?
No. Each test slot has its own demo wallet with testnet funds only. The agent operates the real MetaMask extension with that wallet, and every wallet request passes a deterministic guard before anything is clicked.
Who decides PASS or FAIL?
Code. The AI observes the dApp, picks risky scenarios, and operates the interface. Receipts, decoded events, and balance changes are compared with the UI’s claim in code, so the model never decides a chain fact.
What is published on-chain?
A hash of a public-safe result document, its verdict, and its address. The document holds the verdict, the dApp origin, finding types, and transaction hashes. Screenshots and the full Expected vs Actual stay behind the owner’s share link.
Can I test my own dApp today?
The three sample dApps and the contracts are live now, and the full session runner is being deployed to staging. The public demo, with a live view of the agent and MetaMask, opens after its security gate passes. Join the early list and we’ll invite you when your dApp can be tested.
Your dApp says success. Does the chain agree?
Join the early list. We’ll invite you when the public agent can test your dApp.