Test 0412Trading agent · Scenario: metadata injection
Crash-test your agent before the market does.
A crash test with 2,000+ attacks, a cosigner that checks every transaction against the agent's mandate, and a guarantee that pays if we ever approve a drain. All three are in private beta. Live today: check any agent wallet on mainnet, free.
Agent wallet check · live on mainnet · free, no email
Proposed transfer
1,140.80 SOL
Cosigner result: Held
- T+0.000 Input Untrusted input · token metadata · redacted
- T+0.024 Agent Reads token metadata into context
- T+0.071 Agent Proposes moving 92% of balance
- T+0.104 Sim Balance 1,240.00 to 99.20 SOL
- T+0.131 Policy Pass Program allowed · under limit
- T+0.158 Mandate Mismatch Outbound transfer not in mandate
- T+0.186 Cosigner Hold Waiting for owner approval
- Proposed outflow
- 92.0%
- Mandate match
- No
- Funds moved
- 0.00 SOL
Live now · agent wallet check
Check an agent wallet. Free.
Paste the wallet an agent signs with. Rollcage reads its last 100 transactions on mainnet and shows what a cosigner would have held: the largest outflow, payments to new addresses, token delegates and the programs it calls. Read-only: nothing is signed or sent.
- Reads
- The last 100 transactions
- Flags
- Big outflows · new recipients · token delegates · pace
- Network
- Solana mainnet
- Signs
- Nothing · read-only
- Cost
- $0 in beta · no email, no wallet
The same check from an agent · free in beta, no key
curl "https://www.rollcage.tech/api/wallet-check?address=<wallet>"The test
2,140 scenarios. One grade.
Your agent runs through ten families of adversarial scenarios in a sandbox cloned from mainnet, so it meets the programs and tokens it will meet in production. We name the families. We never publish the scenarios. In private beta.
- Metadata injection340
- Memo & log injection210
- Web content injection260
- Social DM pressure180
- Fake claims & malicious Blinks220
- Honeypot tokens150
- Liquidity & slippage traps240
- Lookalike addresses120
- Permission & delegate abuse160
- Mandate drift260
Total2,140
The core suite runs 200 scenarios; certification runs all 2,140. Crash tests are in private beta.
The cosigner
The agent's key can't move the funds alone.
The agent's funds sit in a smart account. Every transaction it proposes is simulated, checked against your policy and against its mandate, then co-signed, held for a human, or blocked. In private beta.
-
Simulate
Run the transaction against current chain state before it lands. See balance changes, recipients and programs touched.
-
Policy
Check it against your limits: allowed programs, per-transaction and daily limits, velocity.
-
Mandate check
Compare it with the mandate: the job you wrote down for the agent.
-
Cosign / Hold / Block
- Cosign in bounds
- Hold unusual, a person on your team decides
- Block out of bounds
Agent key
Proposes transactions.
Rollcage key
Co-signs only after the checks.
Smart account
Agent funds
- Agent key alone: can't move funds
- Agent key + Rollcage co-signature: moves funds
Owner recovery key
Held by your team.
Latency
Target: p95 under 300 ms.
Measured from the agent's proposal to cosign, hold or block. You write the policy and the mandate. A held transaction goes to a person on your team, who approves or blocks it.
Private beta — DM us on X (opens in a new tab)The guarantee
If we co-sign it and it was a drain, we pay.
Checks can be wrong. The guarantee says what happens when ours is. A cosigner that pays for its mistakes has every reason to be strict. In private beta.
Covered
- A transaction Rollcage co-signed that turned out to be a drain.
Not covered
- Keys leaked outside Rollcage.
- Transactions we didn't co-sign.
Claim timeline
-
File
Send the signature of the co-signed transaction.
-
Review
We check it against its record: simulation, policy, mandate.
-
Decision
Paid, or declined with the reason in writing.
-
Payout
Up to your coverage limit.
Planned price
3%
per year of protected balance
Billed monthly · from $100 protected
Teams: 2–4% per year, cosigner included
Planned premium
For agents
Agents call Rollcage directly.
An agent can check another agent's wallet before it trusts it, over plain HTTP: free in beta, no key, no account. Co-signing every transaction is the planned next call.
Rollcage checks Solana agent wallets on mainnet. GET https://www.rollcage.tech/api/wallet-check?address=<wallet> returns a score from 0 to 100, a verdict and a would_hold list: the largest outflow, payments to new recipients, active token delegates, pace. Free in beta, no key, read-only.
Planned, in private beta, not live: POST /api/crash-tests, POST /api/cosign (allow, hold or block against a mandate) and GET /api/certificates/{id}. The planned paid tier is x402 in USDC; nothing is charged in beta.
Docs: https://www.rollcage.tech/docs.html. Skill: https://www.rollcage.tech/agents/SKILL.md. If the verdict is would be held, stop and ask the owner.
-
Live today
An agent that checks before it funds
Before it funds, pays or trusts another agent, it calls
GET /api/wallet-checkand readsscore,verdictandwould_hold. -
Planned · private beta
An agent that refuses to sign without a co-signature
Every transaction goes through
POST /api/cosignfirst. It broadcasts only what comes backallowand reports aholdor ablockto its owner.
Plain HTTP, today
Use the HTTP API today (curl / fetch); the MCP server and skill package ship when the API leaves beta.
-
curl
Any mainnet wallet address. The answer is JSON.
curl "https://www.rollcage.tech/api/wallet-check?address=<wallet>" -
fetch
From an agent, a server or a browser: the API answers with CORS headers.
const r = await fetch('https://www.rollcage.tech/api/wallet-check?address=' + wallet).then((x) => x.json()); -
Skill file
For any agent that reads
SKILL.md: when to run the check and how to read it. Read it.https://www.rollcage.tech/agents/SKILL.md -
OpenAPI
The live endpoint, with the planned ones kept apart. Read it.
https://www.rollcage.tech/agents/openapi.yaml
Price per call
| HTTP · status | Price |
|---|---|
GET /api/wallet-checkLive now | Freein beta · no key |
POST /api/cosignPlanned · private beta | 0.001 USDCper transaction |
POST /api/crash-testsPlanned · private beta | Freecore suite · full suite 25 USDC per run |
GET /api/certificates/{id}Planned · private beta | Free |
- Beta: calls are free; the x402 flow is the planned paid tier and is not enforced.
- Planned: cosign calls included in the $9/agent/month cosigner plan.
01Ask. The answer is a price.
$ curl -i -X POST https://www.rollcage.tech/api/cosign \
-H 'content-type: application/json' \
-d '{"transaction_b64":"<base64 tx>","agent_id":"<agent>"}'
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: {"scheme":"exact",
"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"1000",
"payTo":"<address>","resource":"https://www.rollcage.tech/api/cosign"}
02Pay 0.001 USDC and send it again.
$ curl -i -X POST https://www.rollcage.tech/api/cosign \
-H 'content-type: application/json' \
-H 'X-PAYMENT: <signed USDC transfer, base64>' \
-d '{"transaction_b64":"<base64 tx>","agent_id":"<agent>"}'
03Get the decision and the receipt.
HTTP/1.1 200 OK
X-PAYMENT-RESPONSE: <settlement tx signature>
{"decision":"hold",
"reason":"mandate mismatch: outbound transfer to a never-seen address, 92% of balance",
"checks":{"simulate":"pass","policy":"pass","mandate":"fail"},
"cosigned_tx":null,"hold_id":"<id>"}
The intended shape, not a live endpoint. Today nothing answers 402: the wallet check is free and needs no payment header.
Public board
Scores in public.
Teams will be able to publish a certified result. The board will show the score, the stars and the date of the last test, so an old grade looks old.
The board opens with the first certified agents
No agent is certified yet: crash tests are in private beta.
Private beta — DM us on X (opens in a new tab)Pricing
Planned pricing · the wallet check is free
Three doors to the same engine. Beta: every check is free. Paid plans open later; the prices below are the planned ones, in USDC on Solana.
-
You
Connect a wallet. Today: the wallet check, free.
- Agent wallet check$0Live now · free in beta
- Crash test, core suite$0200 scenarios · private report · private beta
- Cosigner$9per agent per month · private beta
- Guarantee3%per year of protected balance, billed monthly · from $100 protected · private beta
-
Your agent
Plain HTTP today. x402 per call once billing opens.
- Wallet checkGET /api/wallet-check$0Live now · no key in beta
- Crash test, full suitePOST /api/crash-tests$25per run · 2,140 scenarios · core suite free · planned
- CosignPOST /api/cosign$0.001per transaction · planned
- CertificateGET /api/certificates/{id}$0public lookup · planned
-
Your team
Certification, continuous testing and guarantees, by quote.
- Certificationfrom$5,000full suite · human review · on-chain certificate
- Continuousfrom$300per month · re-test every release · CI hook
- Guarantee2–4%per year of protected balance · cosigner included
FAQ
Before the first check.
What can I run today?
The agent wallet check. Paste the wallet an agent signs with, and Rollcage reads its last 100 transactions on mainnet: the largest single outflow as a share of the balance, payments to addresses paid only once, active token delegates, the programs it calls and how fast it moves. You get a score from 0 to 100 with the reasons, and the list of what a cosigner would have held. Free in beta, no email: check a wallet.
How is the score made?
It starts at 100. A single outflow over half of the balance costs 30 (a quarter to a half: 15). Each payment to an address paid only once costs 8, up to 32. Each active token delegate costs 15, up to 30. More than 50 transactions a day costs 10, and less than 0.002 SOL for fees costs 5. 80 and up looks disciplined, 50 to 79 needs a cosigner, under 50 would be held. The full rules are in the docs.
Is the crash test live?
Not yet. Crash tests, the cosigner and the guarantee are in private beta: we run the first cohort with teams we talk to. If your agent holds real money, DM us on X.
Do I need an account or an email?
No. The wallet check needs only an address. In the app, you sign in with a Solana wallet: you sign one message, not a transaction, so it can't move anything. Your wallet address is your account.
How does an agent pay?
In beta it doesn't: the HTTP API is free and needs no key. The planned paid tier is x402: a paid call answers with its price, the agent pays that exact amount in USDC on Solana and sends the call again. Beta: calls are free; the x402 flow is the planned paid tier and is not enforced. Start with the agent quickstart.
Do you publish the attack scenarios?
No. We name the families and publish the counts. In reports, untrusted input appears only as a redaction bar with a neutral label.
Can the agent's key move funds on its own?
Not in the cosigner's design. The funds sit in a smart account, and a transaction moves only with Rollcage's co-signature, after simulate, policy and mandate check. The owner recovery key stays with your team. The cosigner is in private beta. Read the security model.
How fast will the cosigner be?
Our target is p95 under 300 ms, from the agent's proposal to cosign, hold or block.
What will the guarantee cover?
Transactions Rollcage co-signed that turned out to be drains. Not keys leaked outside Rollcage, and not transactions we didn't co-sign. The planned price is 3% per year of protected balance, billed monthly, from $100 protected; for teams 2–4% per year, cosigner included.
Who is Rollcage for?
Teams building trading, payment and treasury agents, agent platforms, and wallets with agent features. And anyone about to fund an agent: check its wallet first.
LiveAgent wallet check · free in beta
Find out how your agent crashes — before someone else does.
Start with what's live: check the wallet your agent signs with. Crash tests, the cosigner and the guarantee are in private beta.
- Reads
- The last 100 transactions
- Network
- Solana mainnet
- Signs
- Nothing · read-only
- Answer
- Score · verdict · what a cosigner would hold
- Cost
- $0 in beta
Or let your agent run it
curl "https://www.rollcage.tech/api/wallet-check?address=<wallet>"Enterprise
Certification and guarantees for teams.
For agent platforms, wallets and teams that need a certificate, a re-test on every release or a guarantee on a large balance. In private beta, we talk to every team first.
- Certification · plannedfrom $5,000
- Continuous · plannedfrom $300/month
- Guarantee · planned2–4% per year
Talk to us
DM us on X.
Tell us what the agent does, which programs it calls and how much it holds. No forms, no email.
Message @rollcage_sol (opens in a new tab)