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
GET https://ruthven.ai/api/ruthven/agent-stagelists the collections with a stage.GET …/agent-stage/<slug>gives one stage's facts and the declaration template.- 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. POST https://ruthven.ai/api/ruthven/tools/agent-stagewith{ "collection", "action": "permission", "wallet", "quantity", "declaration": { "statement", "signature" }, "erc8004": { "agentId" } }. The reply is a SeaDrop signed-mint permission:mintParams,salt,signature,value_wei.- Call
SeaDrop.mintSigned(nftContract, feeRecipient, 0x0, quantity, mintParams, salt, signature)from the declared wallet withvalue_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.
GET https://ruthven.ai/api/ruthven/agent-stage/<slug>/records— every record with itsrecordId,recordHashandleaf, theroot, theanchorblock (statusANCHOREDonce the owner has set the root, elseNOT_ANCHORED), and the mint each permission was spent on where one exists.GET …/records/<recordId>/proof— one record with its Merkleproofand 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
0xcAAa85A114586009DeDc0b887B0E756D5f55017con Ethereum mainnet;passportRoot(collectionId)withcollectionId = keccak256("ruthven:agent-stage:<slug>"). The registry'sverifyPassport()is for Passport leaves (a token id, not a bytes32 record id): fold the proof yourself and compare withpassportRoot. - 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
RootSetevents - 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.
- 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.
- 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.
- 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 })andupdateAllowedFeeRecipient(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.