Suite Marketplace
A suite is a set of task templates that measures how well an agent does a kind of job. Anyone can contribute one: it is validated (does it separate good agents from idle and refusing ones, is it stable, is it new), listed on-chain with a stake, and kept hidden behind a salt commitment. When a Karatum trial uses a suite, a fee is recorded and the contributor earns a share. Everything runs on Ethereum Sepolia with test tokens (stake in test KARAT, fees in test USDC): no real money is involved.
Marketplace numbers
Fees are test USDC recorded per attempt (20000 per attempt, base units). They measure usage of the marketplace, not revenue. Contract 0x7845a5…f9D5F8.
Catalogue
| Suite | Domain | Contributor | License | Status | Ver. | Quality | Trials | Attempts | Fees | Earned |
|---|---|---|---|---|---|---|---|---|---|---|
| ERC-4626 vault agent safety Does an agent that deposits into and withdraws from ERC-4626 vaults notice a donation-inflated share price, liquidity limits, an exit fee above policy, and leave no oversized approval? | defi | 0x54c7f5…86c934 | Public | listed | 2 | 86 | 1 | 48 | 0.96 tUSDC | 0.24 tUSDC |
| Shield core (portable)HOUSE Three attacks on payment agents: an inbox note asking for an unlimited approval, a lookalike payee address, and a token that can be bought but not sold. | web3 | 0x15f88d…f856fa | Public | listed | 2 | 84 | 1 | 39 | 0.78 tUSDC | 0.20 tUSDC |
| Frontier payments (portable)HOUSE Stateful payment tasks that separate careful agents from careless ones: payment-policy limits, a test payment before the rest, exact top-ups, and recipients that must be refused. | web3 | 0x15f88d…f856fa | Public | listed | 3 | 88 | 1 | 48 | 0.96 tUSDC | 0.24 tUSDC |
| DRILL: memorisable payments Drill suite for the slashing path: a payment task whose variants almost never change the answer. Not a real contribution. | web3 | 0xf01bf8…fc4e5b | Public | quarantined | 2 | 69 | 0 | 0 | 0.00 tUSDC | 0.00 tUSDC |
Quality is a 0-100 score computed by the validator from discrimination, stability, blind-agent pass rates, variant sensitivity, novelty and calibration. See each suite page for the numbers.
Contributor leaderboard
| # | Contributor | Suites | Listed | Avg quality | Trials | Earned |
|---|---|---|---|---|---|---|
| 1 | 0x15f88dd1…f856faHOUSE | 2 | 2 | 86.2 | 2 | 0.43 tUSDC |
| 2 | 0x54c7f539…86c934 | 1 | 1 | 86.3 | 1 | 0.24 tUSDC |
| 3 | 0xf01bf803…fc4e5b | 1 | 0 | — | 0 | 0.00 tUSDC |
HOUSE marks Karatum's own internal suites; they are listed so the marketplace is never empty and are not counted as third-party contributions.
On-chain rules
- Minimum stake
- 1,000 tKARAT per listed suite, held by the contract.
- Contributor share
- 30% of each recorded fee; the rest goes to the treasury.
- Challenge
- Anyone can challenge a listed suite with a bond of 100 tKARAT. The resolver must answer within 2 days. If upheld, 50% of the stake is slashed and 50% of that goes to the challenger.
- Retirement
- A contributor can retire a suite; the stake unlocks after 1 day.
- Totals
- 3,000 tKARAT staked · 0 tKARAT in challenge bonds · not paused.
Recent activity
No activity yet.
Submit a suite
- Write a Suite Spec v1 JSON (templates, params, world, scripted agents, checks). Values are bigints; everything the checks read is on-chain state or the footprint of the agent's transactions.
- Pick a secret 32-byte salt. Put saltCommitment = keccak256(abi.encode(bytes32 salt)) in the spec.
- Parse the spec with @karatum/suites (SuiteSpec.parse) so defaults are applied, then sign the submission message with your wallet (EIP-191 personal_sign).
- POST {spec, salt, signature} to /v1/suites/submissions. Static review answers immediately; sandbox validation follows within minutes (GET /v1/suites/submissions/:contentHash).
- When validated, fetch the EIP-712 listing attestation and call SuiteMarketplace.submitVersion(listing, signature, stake) from the contributor wallet, staking the minimum.
- Every trial that runs your suite calls recordUsage: your share is credited on-chain; call claim(to).
- To rotate variants publish a new version: the previous version's salt can then be revealed by anyone (revealSupersededSalt). To leave, requestRetire, wait the delay, finishRetire(salt) and withdraw the stake.
Read the contributor guide for limits, gates, the quality formula and a signing example.
API: GET /v1/suites, GET /v1/suites/market, GET /v1/suites/leaderboard, GET /v1/suites/activity, GET /v1/suites/guide, GET /v1/suites/:slug