Priors lab

ERC-8466 · draft under review

Agent Credit History

Loan outcomes as ERC-8004 feedback (credit.statement, credit.defaulted) that any reader rebuilds from the lender's own logs.

StatusLive at Priors, read-only here

Guided in the app: Post a credit entry and read the mainnet history.

Pull request
ethereum/ERCs #2110 (the text under review)
Text pinned at
ERCS/erc-8466.md at ff35ea7
ff35ea76a8ac830afcb26c2633bd744243e32a54
Discussion
Its thread on Ethereum Magicians
Reference
priors-agents/priors at 00c9381
00c9381090b88e69b43ab01ccc835ca38c5da2b6
Markdown
/erc/8466.md

What it is

This proposal is a profile of the ERC-8004 Reputation Registry for loan outcomes: loans opened, repaid on time, repaid late, defaulted. It adds no core contract. A lender posts ordinary giveFeedback entries with two tags, credit.statement and credit.defaulted, whose files travel inside the entry as data: URIs.

A statement commits, with a Merkle root, to every loan of an agent that closed in a block window at the lender's contracts. Each loan is a leaf naming the lender's own log that closed it. A reader holding nothing but an RPC endpoint can rebuild every leaf from those logs, check the root and the totals, and sample the money that moved.

A lender's statements for one agent are chained by hash over back-to-back windows. Skipping a window or revoking a statement is visible to every reader. Dropping a loan at a contract the lender declares is visible to every reader that rebuilds the statements, and so is a default after the last statement, which a lender that stops posting would otherwise leave out.

An optional part, a profile of ERC-8092, lets a lender publish which contracts its writer speaks for, as associations signed by both the lending contract (or its ERC-173 owner) and the writer. A reader then takes that list from the chain instead of from the writer's files.

Specification headings

  1. Terms
  2. Entries
  3. Sources
  4. Encoding
  5. Leaves
  6. Statement file
  7. Default file
  8. Writers
  9. Readers
  10. On-chain manifests, a profile of ERC-8092

The abstract and headings above are the text at ff35ea7, CC0. Read the full text at that commit.

Live at Priors, mainnet read-only

Mainnet, read-only

Priors runs this draft on mainnet: its credit writer posts loan outcomes to the ERC-8004 Reputation Registry, and any reader rebuilds them from the pool's own logs. These panels read Robinhood Chain mainnet (4663) and change nothing. Nothing here sends a mainnet transaction.

Priors' ERC-8004 credit statements for an agent, each checked against the pools' logs

Mainnet, read-only

Read from Robinhood Chain mainnet, changing nothing.

Try it

On Robinhood Chain testnet (46630), with the reference contracts at their pinned commits and test tokens of no value. Each action shows the call it prepares before your wallet signs it, and each send is simulated first.

Set up

Four steps, once: your wallet on Robinhood Chain testnet, a little test ETH for its fees, test dollars of no value, and a testnet identity. The forms below fill from them.

  1. 1

    Wallet

    Not connected. Any browser wallet works: the lab switches it to Robinhood Chain testnet (46630) and sends nothing on another chain.

  2. 2

    Test ETH

    For the testnet's network fees. The lab's drip sends a little to a connected wallet once a day.

  3. 3

    Test dollars

    The Lab Test Dollar (no value) that lines lend and launches pair with.

  4. 4

    Testnet identity

    An ERC-8004 identity on the testnet registry, for the forms that take an agent id.

The testnet contracts

ContractAddress on testnet (46630)
The testnet ERC-8004 reputation registry0x8004B663056A597Dffe9eCcC1965A193B7388713

Actions

Post a credit entry (as a lender's writer)

Who signsa lender's writer key

Reads

A writer's credit entries for an agent on testnet

Read on the testnet once its fields are filled.

With an agent

Your agent gets the same lab through the MCP server at https://lab.priors.trade/mcp or the HTTP API described by /openapi.json. It reads, and gets back unsigned testnet transactions to sign with its own testnet key. The lab holds no key of its own for you and never asks for one.

MCP tools for ERC-8466

lab_erc(8466)
What the draft does on the lab, its contracts and an agent's next calls.
lab_setup(address)
Test ETH, test dollars and the testnet identities of an address, with the calls to register one and mint test dollars.
lab_read(8466, "testnet_statements", { agent_id, writer })
A writer's credit entries for an agent on testnet.
lab_prepare(8466, "post_credit_entry", { agent_id, tag1, value, value_decimals, feedback_uri, feedback_hash })
Post a credit entry (as a lender's writer). Who signs: a lender's writer key
lab_check_contract(8466, chain, address)
The conformance read of any contract, on testnet or mainnet: supportsInterface and the views.
lab_feedback_draft(8466, note, txHash?)
The report text and the thread and issue links. It posts nothing.

HTTP

  • GET https://lab.priors.trade/api/lab/erc/8466
  • GET https://lab.priors.trade/api/lab/read/8466/testnet_statements?agent_id=<agent_id>&writer=<writer>
  • GET https://lab.priors.trade/api/lab/prepare/8466/post_credit_entry?agent_id=<agent_id>&tag1=<tag1>&value=<value>&value_decimals=<value_decimals>&feedback_uri=<feedback_uri>&feedback_hash=<feedback_hash>
  • GET https://lab.priors.trade/api/lab/check/8466/<chain>/<address>
  • GET https://lab.priors.trade/api/lab/setup/<address>

Connect it, for example in Claude Code: claude mcp add --transport http priors-lab https://lab.priors.trade/mcp

A prompt to copy

Use the Priors lab on Robinhood Chain testnet (chain id 46630), where every token is a test token of no value. Its MCP server is https://lab.priors.trade/mcp and this draft's page is https://lab.priors.trade/erc/8466.md. Try ERC-8466, Agent Credit History (a draft under review). Start with lab_setup for my testnet address to see my test ETH, test dollars and identities, then post a credit entry (as a lender's writer) with lab_prepare(8466, <action>, params). Each prepare returns an unsigned transaction { chainId: 46630, to, data, value }: sign and send it yourself with a testnet key, and refuse any other chain. Never ask me for a key. After each transaction, read the result back with lab_read and tell me what changed. If the draft or its reference code looks wrong, draft a report with lab_feedback_draft.

Check a contract

Paste any contract on either chain: ERC-8466 is a profile of the ERC-8004 reputation registry, with no interface of its own: the lab calls the registry's views. It only reads, so another implementer can test conformance with nothing signed.

Feedback

What you found goes where the draft is worked on: the discussion of the text in its thread on Ethereum Magicians, a bug in the reference code in its repository's issues. You post it under your own account. The lab posts nothing for anyone.