internet-court/kleros-curate
Interact with Kleros Curate registries — the decentralized token-curated list protocol for token lists, address tags, and policy-driven curation. Use this skill when the user mentions Curate, Light Curate, LightGeneralizedTCR, LGTCR, LightCurate, Stake Curate, PermanentGTCR, PGTCR, Scout, token-curated registry, TCR, curated list, decentralized registry, registry, token list, address tags, CDN tags, Goldsky, or Solidity functions addItem, removeItem, challengeItem, challengeRequest. Covers all three flavors — Light Curate (LGTCR, optimistic challenge window), Stake Curate (PGTCR, permanent ERC20 stake), and Scout (Gnosis registries for contract/token tagging). Also trigger when the user wants to submit an item to a registry, challenge a submission, remove an item, appeal a dispute on a registry item, deploy a new Curate registry, curate a list, browse registry entries, check whether an address is tagged, add a token to a token list, query a curated list, or fund an appeal round. Even if Curate is not mentioned, trigger when the user describes registry operations — adding entries to a list, checking item status, browsing items, querying a decentralized list — combined with Kleros context signals (Kleros, arbitrator, dispute, juror, PNK). Do NOT trigger for non-Kleros registries or generic IPFS uploads without Curate context — IPFS uploads belong to kleros-ipfs-upload. Exception: if the user explicitly names the kleros-curate skill or asks to test this skill, trigger regardless of context.
npx skills add https://github.com/internet-court/internet-court-skill --skill kleros-curate
Kleros Curate is a decentralized verification system for exclusive, policy-driven registries. Registries are
governed by a policy document stored on IPFS — every submission is judged against that policy, and jurors
consult it if a dispute arises.
The deposit/challenge/arbitration cycle:
registry policy.
submissions during this window.
full — compliant submissions carry no permanent inclusion cost.
Kleros dispute. Impartial Kleros jurors read the policy and render a verdict.
discourages frivolous challenges in both directions.
Why use Curate:
Stake Curate especially, successful challengers can recover their challenge deposit and win the item's stake.
standard, define their own policy, deposits, challenge windows, arbitrator/court, and governance. The result
is a fast, low-overhead registry that can power a public Curate view or a custom frontend.
Why onchain-first matters:
Deposit amounts, arbitration costs, MetaEvidence URIs, and challenge windows are all live onchain state —
they change when registry governors update parameters. Any cached or estimated value is a liability: an agent
that submits the wrong deposit amount will have its transaction revert. Always read live values before acting.
Three contract flavors:
LightGeneralizedTCR: optimistic challenge window, ETH deposits, the mostwidely deployed flavor. Used by the majority of Curate registries across Ethereum and Gnosis.
PermanentGTCR: permanent ERC20 stake (not returned on item removal),Goldsky subgraph as primary data source, different status model (Submitted / Reincluded / Disputed / Absent
+ withdrawal flow). Identified by PGTCR-specific hallmark read calls (see references/stake-curate.md).
token lists, address tags, CDN mappings). Scout IS an overlay on LGTCR — it is not a separate contract
type. Working with Scout always requires both references/scout-registries.md (Scout-specific context)
and references/light-curate.md (LGTCR contract operations).
These rules apply across all Curate flavors. They are always in context; reference files may not repeat them.
item.json.columns must be copied verbatim from MetaEvidence; only values is dynamic.type: "link", not url; validate every metadata.columns[].type before upload.metadata.logoURI.explicitly accepts the review and compatibility risk.
eth_getCode before declaring any address is or isn't a contract.Step 1 — Keyword scan (zero cost)
→ Scout (overlay on Light Curate — LGTCR contracts on Gnosis)
→ Read references/scout-registries.md AND references/light-curate.md (both required; Scout adds context on top of LGTCR operations)
→ Stake Curate (PGTCR)
→ Read references/stake-curate.md
→ Light Curate (LGTCR) (also the default)
→ Read references/light-curate.md
Step 2 — Ambiguous ("Curate" with no flavor hint)
references/scout-registries.md AND references/light-curate.md)references/stake-curate.md for hallmark calls)Step 3 — Contract-type verification (if address provided)
See the flavor reference file for hallmark calls — SKILL.md does not embed function signatures here (contract-type detection belongs in each flavor's reference file).
Submit item to a registry → references/light-curate.md (LGTCR) or references/stake-curate.md (PGTCR)
Challenge / remove an item → flavor reference file
Submit evidence → flavor reference file
Fund an appeal → flavor reference file
Deploy a new registry (factory) → flavor reference file (factory section)
Fetch MetaEvidence (policy + schema) → references/shared-metaevidence.md
Compute deposits → references/shared-deposits.md
Build item.json → references/shared-item-json.md
Verify / make a deployed list visible on the Curate frontend -> references/verify-your-list.md
Upload to IPFS → references/shared-ipfs-upload.md
ABI / function signatures → references/shared-abi-fragments.md
grep: grep -n "function\|event" references/shared-abi-fragments.md
Scout registry addresses + seed templates → references/scout-registries.md
grep: grep -n "0x\|ATQ\|Address Tags\|Tokens\|CDN" references/scout-registries.md
Submit an item (any flavor):
references/shared-metaevidence.md — fetch schema (columns) and policy URIreferences/shared-item-json.md — build the item.json payloadreferences/shared-ipfs-upload.md — upload item.json to IPFS, get CIDreferences/shared-deposits.md — compute exact msg.valuelight-curate.md or stake-curate.md) — send the addItem transactionChallenge or remove an item:
references/shared-metaevidence.md — fetch the applicable policy (clearing policy for removal; registration policy for challenge)references/shared-ipfs-upload.md — upload evidence JSON to IPFSreferences/shared-deposits.md — compute the challenge depositDeploy a new registry:
references/shared-metaevidence.md - prepare valid MetaEvidence JSON (policy URI + column schema + logoURI)references/shared-ipfs-upload.md — upload MetaEvidence JSON to IPFSreferences/verify-your-list.md - submit the new registry to the network's list-of-lists if frontend visibility is requiredFrontend visibility after deployment:
registry for users.
when the list is intentionally stealth/private.
GeneralizedTCR, not Light Curate. Usereferences/verify-your-list.md.
These 9 files are loaded on demand — only when needed for the current task. The action index above points
to the right file for each operation. Loading an unnecessary reference file wastes context.
references/light-curate.md
Light Curate (LightGeneralizedTCR) operations end-to-end: minimum inputs to ask the user, registry
discovery via eth_getCode and hallmark reads, MetaEvidence retrieval, item.json construction, submit
item, challenge / remove item, submit evidence, fund an appeal, deploy a new registry via factory.
Read this file for any LGTCR contract interaction — and always alongside references/scout-registries.md
when working on Scout.
references/stake-curate.md
Stake Curate (PermanentGTCR) operations end-to-end: PGTCR hallmark detection (distinguishes PGTCR from
LGTCR), ERC20 approval + stake deposit flow, Goldsky subgraph as primary MetaEvidence source with onchain
fallback, PGTCR status model (Submitted / Reincluded / Disputed / Absent), item withdrawal flow, deploy
factory. Read this file for any PGTCR contract interaction.
references/scout-registries.md
Scout-specific overlay for the 4 known Gnosis registries (Tokens / Address Tags / Contract Domain Names /
CDN). Contains: the 4 registry contract addresses used for address-based routing, seed-first submission
pattern (fill from existing seed template, then submit), item.json templates per registry, image guidance,
incentives information. Always read alongside references/light-curate.md — Scout IS LGTCR at the
contract layer; this file adds Scout-only context on top.
references/verify-your-list.md
Narrow workflow for making a deployed registry visible and verified in the Curate frontend. Contains the
known list-of-lists addresses, explains why verification matters, and documents the simple Classic Curate /
GeneralizedTCR.addItem(bytes) path. Read this file for frontend visibility submissions; do not use Light
Curate addItem(string) mechanics for the known list-of-lists.
references/shared-metaevidence.md
Shared MetaEvidence retrieval applicable to all Curate flavors: eth_getLogs method with the correct
topic0, latest applicable MetaEvidence selection, LGTCR registration-vs-clearing classification, Goldsky
subgraph path for PGTCR, MetaEvidence JSON structure, policy URI extraction, and MetaEvidence authoring
guardrails.
Read this file before fetching MetaEvidence for any registry, regardless of flavor.
references/shared-deposits.md
Shared deposit computation covering all Curate flavors: submission deposit formula for LGTCR, challenge
deposit formula for LGTCR, PGTCR stake vs arbitration deposit distinction (ERC20 stake is separate from
the native-token arbitration cost), arbitrationCost() read pattern, msg.value assembly rule.
Read this file before computing any deposit or constructing any transaction value.
references/shared-item-json.md
Strict item.json construction rules: the columns + values schema format, verbatim-copy rule for columns
(copy from MetaEvidence without modification - values is the only dynamic part), GTCR field type allowlist,
forbidden aliases, placeholder rejection, pre-upload validation, and NewItem event sampling to verify
field order before submitting. Read this file before building any item payload for any Curate registry.
references/shared-abi-fragments.md
Shared ABI fragments for all Curate contracts: LightGeneralizedTCR read and write function signatures,
PermanentGTCR read and write function signatures, IArbitrator interface ABI, key event signatures
(MetaEvidence, ItemStatusChange, RequestSubmitted, etc.). Use grep -n "function\|event" to
navigate this file. Read when you need function selectors, calldata encoding, or event topic hashes.
references/shared-ipfs-upload.md
Shared IPFS upload guidance for Curate workflows: durability rationale (external pins can disappear after
onchain anchoring), required recommended path via the kleros-ipfs-upload skill and Kleros x402 endpoint,
/ipfs/<CID> format rule (avoid double-slash when building URLs), and explicit risk warning for any
user-approved external pinning source.
Read before any IPFS upload step inside a Curate workflow.
Something broken or confusing in this skill? Report it: fetch feedback/SKILL.md — helps maintainers fix what agents silently trip over.
Take internet-court/kleros-curate from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.