Skip to main content
This page is for validators, group operators, and tool builders who want to attach verifiable off-chain information to a Celo account. The Celo protocol’s metadata and claims feature makes it possible to connect on-chain with off-chain identities.
TerminologyThe term “validator” is used in the code and corresponding explanation due to historical reasons, but refers to the community RPC providers.

Use cases

  • Tools want to present public metadata supplied by a validator or validator group as part of a list of candidate groups, or a list of current elected validators.
  • Community RPC providers register their public RPC URL as a claim; see Registering the Node URL.
  • Governance Explorer UIs may want to present public metadata about the creators of governance proposals.
Furthermore, these tools may want to include user chosen information such as names or profile pictures that would be expensive to store on-chain. For this purpose, the Celo protocol supports metadata that allows accounts to make both verifiable as well as non-verifiable claims. The design is described in CIP3. On the Accounts smart contract, any account can register a URL under which their metadata file is available. The metadata file contains an unordered list of claims, signed by the account.

Types of claim

The following types of claim are supported:
  • Name Claim - An account can claim a human-readable name. This claim is not verifiable.
  • Keybase User Claim - Accounts can make claims on Keybase usernames. This claim is verifiable by signing a message with the account and hosting it on the publicly accessible path of the Keybase file system.
  • Domain Claim - Accounts can make claims on domain names. This claim is verifiable by signing a message with the account and embedding it in a TXT record.
  • RPC URL Claim - Community RPC providers claim the public HTTPS URL their node serves. See Registering a community RPC provider.

Handling metadata

You can interact with metadata files through the CLI. Most commands require an RPC node to make view calls, and to modify metadata files, you’ll need the relevant account to be unlocked to sign the files. You can create an empty metadata file with:
You can display the claims in your file and their status with:
Once you are satisfied with your claims, you can upload your file to your own web site or a site that will host the file (for example, https://gist.github.com) and then register it with the Accounts smart contract by running:
Then, anyone can lookup your claims and verify them by running: