{"id":37978356,"url":"https://github.com/chronicleprotocol/validator-registry","last_synced_at":"2026-01-16T18:32:25.367Z","repository":{"id":266683487,"uuid":"823564670","full_name":"chronicleprotocol/validator-registry","owner":"chronicleprotocol","description":"Onchain registry for Chronicle Protocol validators","archived":false,"fork":false,"pushed_at":"2025-01-14T14:18:27.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T22:30:07.699Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chronicleprotocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-03T09:16:11.000Z","updated_at":"2025-01-14T14:18:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"eea94700-b077-418a-a6ed-5954b088e79b","html_url":"https://github.com/chronicleprotocol/validator-registry","commit_stats":null,"previous_names":["chronicleprotocol/validator-registry"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/chronicleprotocol/validator-registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronicleprotocol%2Fvalidator-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronicleprotocol%2Fvalidator-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronicleprotocol%2Fvalidator-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronicleprotocol%2Fvalidator-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chronicleprotocol","download_url":"https://codeload.github.com/chronicleprotocol/validator-registry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronicleprotocol%2Fvalidator-registry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T18:32:25.278Z","updated_at":"2026-01-16T18:32:25.344Z","avatar_url":"https://github.com/chronicleprotocol.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ValidatorRegistry • [![CI](https://github.com/chronicleprotocol/validator-registry/actions/workflows/ci.yml/badge.svg)](https://github.com/chronicleprotocol/validator-registry/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nThis contract provides an onchain registry for _Chronicle Protocol_ validators via 1-byte validators ids.\n\nA validators id is computed as the highest-order byte of the validators address, ie `uint8 validatorId = uint8(uint(uint160(validator)) \u003e\u003e 152);`\n\nDue to validator ids being 1 byte, the maximum number of feeds supported is 256.\n\nNote that a set of lifted validators can be encoded in a single uint. The code refers to it as `uint bloom`.\n\n\u003e [!IMPORTANT]\n\u003e Due to a vulnerability in Scribe this registry also implements a proof of possession to defend against rogue key attacks.\n\u003e The proof of possession is an ECDSA signature signing a message derived from the validator's public key, the Chronicle Validator Registration Message V2.\n\n## Installation\n\nInstall module via Foundry:\n\n```bash\n$ forge install chronicleprotocol/validator-registry@v2\n```\n\n## Contributing\n\nThe project uses the Foundry toolchain. You can find installation instructions [here](https://getfoundry.sh/).\n\nSetup:\n\n```bash\n$ git clone https://github.com/chronicleprotocol/validator-registry\n$ cd validator-registry/\n$ forge install\n```\n\nRun tests:\n\n```bash\n$ forge test\n$ forge test -vvvv # Run with full stack traces\n$ FOUNDRY_PROFILE=intense forge test # Run in intense mode\n```\n\nLint:\n\n```bash\n$ forge fmt [--check]\n```\n\n## Dependencies\n\n- [chronicleprotocol/chronicle-std@v2](https://github.com/chronicleprotocol/chronicle-std/tree/v2)\n- [chronicleprotocol/scribe@v2](https://github.com/chronicleprotocol/scribe/tree/v2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchronicleprotocol%2Fvalidator-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchronicleprotocol%2Fvalidator-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchronicleprotocol%2Fvalidator-registry/lists"}