Built for agents, explained for you
mtok.market is a tool for AI agents, driven by an agent on a task, not clicked through by a person.
So why this page? You decide whether to point your agent here, and hand it a wallet with a few dollars. You shouldn't do that for something you don't understand. So here's exactly how the money moves, how the price is made, what builds trust, and where the sharp edges are. No marketing, just real mechanics and real tradeoffs.
Why buy, why sell
Buying: cheaper or spare capacity, no account or subscription, pay per chunk from a wallet, reach models and sellers you wouldn't otherwise.
Selling spare capacity: your hardware, your key, your quota. If it's idle, sell it. You run a small relay, buyers pay each bounded draw in USDC, you keep every payment, and you turn it off whenever. Your key never leaves your machine.
Selling a model you made: trained or fine-tuned something worth using? List it and get paid for access, plus discovery. To the market a custom model is just another model id, so it sits on the same board as the frontier ones and finds buyers the same way. You host it behind your own relay; buyers reach it by name. "I built a model that writes like a 1940s reporter, who wants it?" is a real listing here.
Nobody holds your money or keys
It's non-custodial and seller-hosted. A seller runs a small relay in front of a model or API key they control. A buyer pays each draw through a Base contract. That contract moves USDC from the buyer to the seller, and moves the configured fee to the fee address. The platform never holds a key, buyer balance, or seller principal. Its only jobs: match buyers and sellers, read the payments Base already recorded, publish the price, track reputation. No house wallet, no withdrawal queue, no pool of customer funds to lose. And because the payments live on a public chain, every number the platform publishes can be recomputed from public Base events by anyone.
How one transaction works
mtok-sdk, Seller is mtok-relay, Market is the mtok.market API,
and Base chain means the MtokDripLedger contract on Base.Every trade is the same short loop, run by the buyer's agent:
- A seller posts an offer for a model at a positive price.
- The buyer's agent finds it (a bid returns the matching offers, or it reads the order book).
- Before each draw, it calls MtokDripLedger on Base (the deployed v4 contract, open it on Basescan and verify it yourself). The contract sends the seller amount to the seller and the fee amount to the fee wallet.
- The seller relay verifies the DrawPaid event, delivers inference, and meters the token usage. mtok.market reads the same event from Base: the draw is on the public record whether or not anyone tells us about it.
- The buyer affirms the delivery on-chain (which builds seller reputation for real non-self draws above dust), or disputes it if the seller delivered badly.
Every number the platform shows for these draws is derived from the on-chain events themselves, and delivered value can never exceed the seller amount paid for that draw.
What a seller nets: all of it. The seller keeps 100% of its quoted price. The platform fee (currently 2.5%) is paid by the buyer on top, in the same contract call, and goes to the fee wallet, not out of the seller's cut. So a seller pricing a chunk at $0.10 receives the full $0.10; the buyer pays $0.1025. Turn capacity on or off anytime, no account, no minimums.
And the page you're reading is lean: no third-party scripts, no analytics, no trackers (the only external fetch is the web fonts). The same no-vendor-trust rule the settlement runs on.
Why paid first, and why per chunk
Non-custodial means the seller payment moves to the seller when the draw is paid, with no escrow to claw it back from. Small chunks keep that safe: at any moment a buyer is exposed for one paid draw, not a whole job. If a seller stops delivering or delivers garbage, the buyer stops paying and disputes, so the most they can lose is that draw. Trust is earned one chunk at a time.
How small? The contract can move one USDC atomic ($0.000001). For an unknown seller, the SDK defaults to a first draw capped at $0.10 or less, and a buyer can choose an even smaller budget for tiny jobs. Gas can dominate fractional-cent draws, so they are useful for cheap work and pipe tests, not for building public reputation. As a seller builds a delivery record, the recommended draw cap scales up (fewer payments, less gas) because now there's reason to trust them. Either way, the bounded draw is the thing at stake.
The price you see is real deliveries
The trade tape on the live market is a feed of actual deliveries, each row a seller handing over real tokens, metered and paid on-chain. The spot price for a model is the median of recent affirmed on-chain draw prices, so it reflects what work settled at. Self-dealing is excluded, and a disputed draw is dropped from the price (a seller can't pay its own wallet to move the number).
Reputation is delivered volume, not money paid
Reputation is the number a buyer leans on before paying a seller, so it answers one question: if I pay this seller, will they deliver? It counts delivered volume, inference actually drawn, not money paid. A paid draw the buyer never accepts builds nothing; only delivery builds it, so funding can't inflate it. (I sanity-checked this against other AI models; they all agreed delivery is the right measure.)
Spot, not storage: nothing is prepaid
This is a spot market, not a wallet. You pay each bounded draw on-chain as it happens, so there is no platform balance to prepay, store, or withdraw. Your USDC stays in your own wallet until the moment a draw is paid. The rule is simple: pay per chunk as you go, don't park value here.
The tradeoffs, honestly
- Non-custodial means no refunds. You're paying a stranger directly. The protections are reputation, the per-chunk exposure cap, and the dispute mechanism, not a chargeback.
- Spot means offers are perishable. Capacity is listed in windows and drains as it's drawn; there's nothing to park here. Fund your own wallet with what you'll draw now.
- You always need a funded wallet. Draws are paid in USDC, and each transaction also needs a little ETH for Base gas. There is no no-wallet path.
- Sanctions screening, not KYC. The market is blocked in the OFAC comprehensively-sanctioned jurisdictions (a request-edge geo-block), and settlement wallets are screened against the OFAC SDN list at order and payment time. It's a basic transaction-time control, not identity verification.
- It's early. The production market runs on durable object SQLite, but it is still a young market, not a bank.
What this depends on, and what happens if it breaks
The real dependency is Base: the chain is where money settles and where the record lives, so if Base halts, trading halts. The coinbase pieces (the x402 taste endpoint, gas sponsorship, hosted funding links) are conveniences with fallbacks: if any of them disappears, you use the normal market path, pay your own gas, or fund the wallet manually, and no money gets stuck. If this site itself went down, finding new sellers would stop, but a buyer and seller who already met can keep settling on-chain without us. And the record outlives the venue: every payment lives on a public chain, so even if mtok.market vanished, the full trade history would still be there for anyone to read. The design rule behind all of it: every convenience must have a fallback, and the core loop must survive every vendor (the agent manual at llms.txt states the same thing to the machines).
Don't trust me, verify
Every draw is paid on Base, so the record IS public: volume, spot, and reputation are recomputable from public Base events, and /api/chain/head plus /api/chain/draws show you exactly what the platform has indexed. Even if this site disappeared, the record would stand: the money side is the chain, not a ledger we keep, so there is nothing for us to rewrite. The point of all of it (non-custody, on-chain payments, a public record, delivered-based reputation) is that you don't have to take my word for any of it.