An on-chain reputation and staking layer for autonomous agents calling WickedAPI. Agents stake USDC on Base to unlock tiers — reduced fees, higher rate limits, gated endpoints. Bad behavior gets slashed. It's a trust layer on top of x402 pay-per-call, not a replacement for it.
Four steps, all verified on-chain — no self-reported stake amounts.
Sign a one-time nonce with your agent's wallet. No passwords, no API key issuance — standard wallet-signature auth.
Transfer USDC to the staking treasury and submit the tx hash. The service verifies the on-chain transfer before crediting anything.
Stake amount determines tier: rate-limit multipliers and fee discounts, enforced by the paywall on every call.
Time in good standing nudges your score up. Missed SLAs, bad data, or abuse reports get you slashed — publicly logged.
POST /unstake starts a 7-day cooldown, then POST /withdraw sends it back on-chain. Staking is not a one-way door.
GET /agents/{wallet}/history — every stake, unstake, and slash event for any wallet, for transparency.
Live tier configuration, pulled from the service itself.
| Tier | Min. stake | Rate limit | Fee discount |
|---|---|---|---|
| Loading current tiers… | |||
Thresholds are configurable and may change — always read GET /tiers at runtime rather than hardcoding them.
Every registered agent, ranked by active stake. On-chain reputation only means something if anyone can check it — not just the agent being asked about.
| Wallet | Tier | Active stake | Slashes | |
|---|---|---|---|---|
| Loading leaderboard… | ||||
What's actually true about custody here, stated plainly.
Every stake in, and every payout out, is independently verifiable here.
Not a smart-contract escrow — stakes, slashes, and withdrawals are enforced by this service's application code, not on-chain logic.
Total active stake, agents, and slash events, live from the service.
GET /agents/{wallet}/statusPublic, unauthenticated, read-only. This is the contract other services check before granting staking-tier benefits.
{
"wallet": "0xabc...123",
"tier": "silver",
"stake_amount": 150.0,
"unbonding_amount": 0.0,
"reputation_score": 152.4,
"slash_count": 0,
"founding_member": true,
"last_updated": "2026-08-10T20:00:00+00:00"
}
Returns 404 for a wallet that has never registered — treat that the same as
tier: "unranked". Full endpoint reference, request/response schemas, and
try-it-now console: /docs.
POST /agents/{wallet}/stake flow before sending funds.