Skip to main content
Kleros uses two kinds of policy documents:
  1. Court policies - define the general rules for a specific Kleros court. Registered in the PolicyRegistry contract and displayed to jurors in every dispute in that court.
  2. Dispute policies - define the specific rules for a particular arbitrable app. Referenced via policyURI in the dispute template. Jurors are expected to read both.
Both are JSON files stored on IPFS.

Court Policy JSON


Dispute Policy (per-app)

Dispute policies are linked via the policyURI field in dispute templates. They define how jurors should rule for your specific application. A well-written dispute policy should include:

Example Dispute Policy Structure


specification Field in Dispute Templates

Dispute templates may include a specification field referencing the KIP (Kleros Improvement Proposal) or standard the template follows:
This is informational - it helps auditors and integrators understand which standard governs the template’s structure. Reality V2 uses this to link to the Reality.eth arbitration spec.

PolicyRegistry Contract

Only the KlerosCore governor can register court policies. The _policyURI is an IPFS URI pointing to the court policy JSON. To read the current policy for a court:

Tips for Writing Good Policies

  • Write for a general audience - jurors are not legal experts or domain specialists
  • Use concrete examples for each ruling option
  • Specify exactly what evidence is sufficient to shift the ruling
  • Avoid ambiguous language like “reasonable” without defining what it means in your context
  • Test the policy with mock disputes before deployment
  • Store on IPFS with multiple pinning providers (Pinata, Infura, Cloudflare) for permanence