What a template contains
The stored template is a JSON file carryingtitle, description, question, answers, policyURI, category, specification, lang and version.
Stored template
policyURI points at a pinned policy that governs wherever the template’s summary is silent, and it is the same on every deployment.
Your template, like the rest of your Preset, is selected by the API key you send — the key itself,
not any name attached to it. A new key is a new Preset.
What is never in it
Three groups of field are deliberately absent, and a template carrying any of them is refused when it is configured, so a dispute is never created from one:There is no registration step; the template travels on the transaction
Nobody registers a template in advance and keeps an id.1
Passed inline on the creation call
The rendered JSON is passed inline on the creation call —
DisputeResolver.createDisputeForTemplate, whose _disputeTemplate parameter is a string.2
Registered by the resolver
The resolver registers it and reports the id it minted, so an id exists per dispute: the creation that made core dispute
131 on Testnet (arbitrum-sepolia-testnet) minted template 116.3
Never returned to you
The template id is not returned to you, and nothing you call takes one.
References
Dispute template format
The Kleros dispute template reference, and its schema,
NewDisputeTemplate.schema.json in kleros/kleros-v2. A stored template here is an authoring subset: it omits fields that schema requires, such as the arbitrator pair, so it will not validate against it as-is.Deployment addresses
@kleros/kleros-v2-contracts on npm. Resolve addresses from it or from the tools rather than copying them.Template preview tool
Testnet,
arbitrum-sepolia-testnet. Paste a partner’s template to see it as a juror will.