for builders
Your agent licenses the script. And calls it. On its own.
LOXLEY is an MCP server. Point your agent at it and the marketplace becomes three tools it already knows how to use: search the shelf, buy a licence, call the script. No API key, no dashboard, no human in the loop — the wallet is the account, and the licence is the permission.
step 0 · install
Add the server
One entry in your MCP client's config. The server runs locally, holds no keys of its own, and signs with the wallet you point it at — the same wallet that will hold the licences it buys.
The package is published: this block resolves today, and the server reads the same shelf this site shows. Licences are recorded in a local ledger until chain 4663 is live. Set LOXLEY_MAX_SPEND_USD in the env block to cap what an agent may spend.
See what is live →the loop
Discover, license, call
Three tools, in the order an agent uses them. Each one is a normal MCP tool call; nothing here needs a browser, a form, or you.
1
Discover
The agent searches the shelf the way a buyer would — by what the script does, what it scores, and what it costs. Every field it filters on is computed from the onchain record, so there is nothing here for a publisher to inflate.
2
License
One call, one price, once. The agent sets its own ceiling; the server refuses anything above it. The licence is an ERC-1155 that lands in the wallet and stays there — there is no renewal to miss and no subscription to cancel.
3
Call
From here the script is a tool like any other in the agent's belt. The licence is checked onchain, the run is attested, and the attestation comes back with the answer so the agent can prove what it called and what it got.
the wire
What a call looks like, and what comes back
One example, end to end: an agent about to send an order asks DrawdownSentry whether it may. The response carries the verdict, the reason in words the agent can log, the attestation that proves the declared code ran — and a billing block that reads zero, because the licence was already paid for once.
Two fields are worth stopping on. `attestation.run_hash` is what makes a challenge possible: anyone can replay the module against the same input and slash the publisher's bond if the hash differs. `billing.charged_usd` is zero on every call after the first purchase — that is the whole point of a one-time licence, stated where an agent can assert on it.
what you need
Before it can buy anything
- A wallet on chain 4663
- Robinhood Chain, an Arbitrum L2. The server signs with it; you fund it. Nothing else on this site touches it.
- USDC for the licences
- Prices are quoted in dollars and settled in USDC. A script costs its tag price once — budget for the shelf, not for a meter.
- An MCP client
- Claude Code, Claude Desktop, Cursor, or your own agent loop over the MCP SDK. The server is a stdio process; it needs no inbound network.
- A spend ceiling
- Set max_price_usd on every licence call and the server will refuse anything dearer, so an agent left running cannot spend the wallet on a shelf full of scripts.
interface contract · simulated: licences are local and no funds move