™

RUTHVEN AGENT STAGE · ERC-8257 TOOL

A mint stage for AI agents, on any SeaDrop collection.

A second stage of a drop, alongside the public one, reserved for wallets operated by AI agents. Fixed price, fixed cap per wallet, a closing date, all enforced by SeaDrop on Ethereum. The agent's operator signs a declaration and names the agent's ERC-8004 identity, which RUTHVEN checks on chain; RUTHVEN grants a single-use mint permission and records the acquisition as operator-declared, identity verified. RUTHVEN values nothing and recommends nothing.

How an agent uses it

  1. GET https://ruthven.ai/api/ruthven/agent-stage lists the collections with a stage. GET …/agent-stage/<slug> gives one stage's facts and the declaration template.
  2. Fill the template with the agent's wallet, the operator's name, the agent's name and the date; sign it with the agent's wallet key (personal_sign, EIP-191). Have an ERC-8004 identity on the Ethereum mainnet Identity Registry (0x8004A169FB4a3325136EB29fA0ceB6D2e539a432) whose agent wallet or owner is that wallet.
  3. POST https://ruthven.ai/api/ruthven/tools/agent-stage with { "collection", "action": "permission", "wallet", "quantity", "declaration": { "statement", "signature" }, "erc8004": { "agentId" } }. The reply is a SeaDrop signed-mint permission: mintParams, salt, signature, value_wei.
  4. Call SeaDrop.mintSigned(nftContract, feeRecipient, 0x0, quantity, mintParams, salt, signature) from the declared wallet with value_wei. Single use.

The tool's manifest is agent-stage.json, registered on the ERC-8257 registry as tool 246 and listed in OpenSea's Agent Tools directory. Where a collection carries RUTHVEN Origin Passports, verify the work first with the origin-passport tool.

The record, and its anchor

Every application is recorded by the stage's signer: the declaration as signed, the wallet, the quantity, the ERC-8004 identity and the result of its on-chain check, the permission's salt and signer, and the time. Those entries live in stores RUTHVEN runs, so each is normalised to one canonical record (ruthven.agent-acquisition/1), hashed, and placed under a Merkle root that the collection's owner commits to the RuthvenAnchor registry on Ethereum under the stage's own key. A record then proves itself against the chain; RUTHVEN is not in the loop.

  1. GET https://ruthven.ai/api/ruthven/agent-stage/<slug>/records — every record with its recordId, recordHash and leaf, the root, the anchor block (status ANCHORED once the owner has set the root, else NOT_ANCHORED), and the mint each permission was spent on where one exists.
  2. GET …/records/<recordId>/proof — one record with its Merkle proof and the steps to check it.
Scheme
ruthven-agent-acquisition-merkle-v1: recordHash = sha256(canonical record) (keys sorted, arrays in order, no whitespace); leaf = keccak256(bytes32 recordId ‖ bytes32 recordHash); pairs hashed smaller-first (OpenZeppelin's sorted pair); an unpaired node promoted unchanged; leaves in order of time recorded, then id
Record id
keccak256("ruthven.agent-acquisition/1|<slug>|<store>|<key>") — fixed when the entry is written, independent of its content
Registry
RuthvenAnchor 0xcAAa85A114586009DeDc0b887B0E756D5f55017c on Ethereum mainnet; passportRoot(collectionId) with collectionId = keccak256("ruthven:agent-stage:<slug>"). The registry's verifyPassport() is for Passport leaves (a token id, not a bytes32 record id): fold the proof yourself and compare with passportRoot.
Cadence
the root is rebuilt over every record and re-set by the owner daily while the stage is open, and set a last time when it closes; earlier roots remain as RootSet events
What a proof proves
that the record is one the signer wrote, exactly as shown. The declaration stays the operator's own; the identity check is what the chain answered at the time. No IP address is in any record.

How a collection adds a stage

The plain-language version, for the collection's owner, is the product page.

Any ERC-721 collection minting through SeaDrop 1.0 on Ethereum. The owner keeps every control: the price floor, the cap, the window and the fee are bounds set on the owner's own contract, and SeaDrop refuses any permission outside them. RUTHVEN can sign nothing the owner has not authorised, and the owner can close the stage at any time.

  1. Agree the stage with RUTHVEN AI LIMITED: price, cap per wallet, window, supply for the stage, and RUTHVEN's share. The marketplace's fee is untouched: SeaDrop pays it first, exactly as for the public stage. RUTHVEN's share comes out of the creator's proceeds through an immutable 0xSplits split (owner / RUTHVEN) set as the collection's creator payout address, so it is paid on chain at every mint and there is nothing to invoice.
  2. Up to three owner calls, from the owner's wallet: create the split (once), point the creator payout at it, and authorise RUTHVEN's signer within the agreed bounds. A dry-run script is provided; nothing is sent until the owner says so, and the owner can close the stage at any time.
  3. RUTHVEN adds the collection to the stage list, with the agreed parameters, and the stage is live. Agents find it through the tool, the list above, and the collection's own brief.
RUTHVEN signer
0xEfA2C881187d531f0DE2FD5628919990bAF53A09 (also RUTHVEN's payee in the split)
SeaDrop
0x00005EA00Ac477B1030CE78506496e8C2dE24bf5 (Ethereum mainnet)
What the owner authorises
updateSignedMintValidationParams(seaDrop, signer, { minMintPrice, maxMaxTotalMintableByWallet, minStartTime, maxEndTime, maxMaxTokenSupplyForStage, minFeeBps, maxFeeBps }) and updateAllowedFeeRecipient(seaDrop, feeRecipient, true)
What is recorded
the declaration as signed, the wallet, the quantity, the ERC-8004 identity and the result of its on-chain check, the permission's salt and signer, the time. No IP addresses. Where the collection has Passports, the acquisition joins the work's record. Every record is hashed and anchored: see the record, and its anchor.
Passports
optional. A stage can run without them; the record of who acquired what, and how they qualified, is kept either way.

First collection: PAPER TRAIL by Miss AL Simpson, 4,000 works, live 7 to 13 October 2026. To add a collection, write to info@ruthven.ai.