Function-call access key
The payment agent holds exactly one key: it can call vault.pay and nothing else. It cannot transfer NEAR, add keys or call other contracts.
Built at NEAR HACKATHON 2026 · AI Security & Defense · Privacy & Private AI
BaitNet sends AI decoys to talk to scammers. The payment addresses they reveal go on a NEAR registry after a human approves them, and AI wallets, a Vault contract and NEAR Intents market makers check that registry before money moves.
Live on NEAR testnet. No sign-in needed for the registry, response record and TEE check.
The problem
A scam address usually becomes known only after a real victim has already paid into it.
Bridges, DEXs, wallet apps, intent solvers and AI agents that hold funds have no common place to ask “is this a known scam address?” before they pay.
Privacy laws stop companies from sharing their users’ data. A scam address, by contrast, is already public.
How it works
A scammer AI plays one of 48 fictional scripts; a decoy AI plays a believable victim with its own persona card. A human can take over either side or whisper a hint.
NEAR, EVM, Tron and BTC addresses are pulled out live — even when split across messages or spelled out in words.
Exchange, bridge and token addresses are blocked. Doubtful ones (sent after “are you a bot?”, network mismatch, contracts, very active addresses) get warnings a reviewer must clear one by one.
Every alert needs a human. Only then is it written to the AlertRegistry contract on NEAR: address, chain, level and an evidence hash.
A guard returns allow / warn / block. The agent wallet refuses to sign, the Intents market maker refuses to quote, and the Vault contract fails the payment on chain.
What NEAR does here
The payment agent holds exactly one key: it can call vault.pay and nothing else. It cannot transfer NEAR, add keys or call other contracts.
vault.pay calls registry.check and transfers only in the callback. If the address is flagged — or the registry call fails — the payment fails. A fully compromised agent still can’t pay.
A simulated 1Click market maker checks recipient and refundTo before quoting. Fund-flow tracing follows a flagged account’s money through Intents to other chains (sample data offline).
By default both AIs run on TEE-hosted models. The live attestation check — nonce binding, Intel TDX quote, event-log replay, GPU evidence — passes 18/18 on the hosted server.
See it
Screenshots of the Chinese UI; the console also has an English UI.
Safety & privacy
Address, chain, level, status and evidence hashes. No phone numbers, handles or names — not even hashed.
The full conversation is encrypted with AES-256-GCM and kept locally; only the sha256 of a redacted record goes on chain.
Better to miss an address than flag an innocent one: known institutional addresses are never reported, and every L1 alert needs a human.
The decoy uses only fake identities and is blocked from sharing personal data, seed phrases, paying, signing or clicking links.
Upload a chat log for analysis by a TEE model; nothing is written on our server unless you choose to save it (covered by tests).
Wallets and exchanges check addresses against their own copy of the registry. Their users’ data never leaves them.
Results
48 scripts, 12 turns each, NEAR AI Cloud DeepSeek V4.1 Flash playing both sides, scammers in “Real” mode (they get suspicious, test the victim, or vanish).
Try it
The on-chain registry, the response record and a live TEE attestation check are open to everyone. The arena spends LLM credits, so it needs an invite link: judges find one in our submission, everyone else in our X post.
Open the live demo →A local NEAR sandbox, the prebuilt contracts and recorded conversations. About 35 seconds; ends with “all passed”.
pnpm install && pnpm demo --ci Open the README → Team
Most of BaitNet’s code was written with Claude Code; our team made the product decisions, reviewed the output and tested it by hand. All code was written during the hackathon.
netlun.io →