{"id":20585760,"url":"https://github.com/shutter-network/observer","last_synced_at":"2026-06-09T07:30:56.087Z","repository":{"id":247234330,"uuid":"809922489","full_name":"shutter-network/observer","owner":"shutter-network","description":"Gnosis shutter metrics service","archived":false,"fork":false,"pushed_at":"2026-03-18T12:40:52.000Z","size":544,"stargazers_count":0,"open_issues_count":14,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-19T12:38:42.083Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/shutter-network.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-03T17:56:30.000Z","updated_at":"2026-01-19T09:27:25.000Z","dependencies_parsed_at":"2024-07-29T10:56:03.311Z","dependency_job_id":"3f73526a-57e3-4eb2-859f-7316fceae32c","html_url":"https://github.com/shutter-network/observer","commit_stats":null,"previous_names":["shutter-network/gnosh-metrics","shutter-network/observer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shutter-network/observer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shutter-network%2Fobserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shutter-network%2Fobserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shutter-network%2Fobserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shutter-network%2Fobserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shutter-network","download_url":"https://codeload.github.com/shutter-network/observer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shutter-network%2Fobserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34096950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-16T07:09:18.595Z","updated_at":"2026-06-09T07:30:56.069Z","avatar_url":"https://github.com/shutter-network.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Observer\n\n## Description\nObserver is a Gnosis chain shutter monitoring service built using Golang. It monitors the\nshutter networks encrypted mempool and links encrypted transactions with original user\ntransactions(after decryption).\n\n## How it works\n1. Users submit their encrypted transactions to shutters [sequencer contract](https://github.com/shutter-network/contracts/blob/main/src/gnosh/Sequencer.sol) (encrypted mempool).\n2. These transactions once submitted to the sequencer contract are indexed by the observer.\n3. Observer is also connected to the p2p network of shutter and is always listening to the new decryption keys which are being gossiped by the keypers. \n4. Once the relevant decryption key for an encrypted transaction is identified, it decrypts and stores it in the DB(postgres).\n5. Once all the data is available the Observer is able to identify if the users original transaction has been included according to the shutter rules and is protected from MEV.\n\n## How to run\nClone this repository and navigate to the root directory of the project:\n```shell\ngit clone git@github.com:shutter-network/observer.git \u0026\u0026 cd observer\n```\nand then execute\n```shell\n./observer start \\\n  --rpc-url ${RPC_URL} \\\n  --beacon-api-url ${BEACON_API_URL} \\\n  --sequencer-contract-address ${SEQUENCER_CONTRACT_ADDRESS} \\\n  --validator-registry-contract-address ${VALIDATOR_REGISTRY_CONTRACT_ADDRESS} \\\n  --p2pkey ${P2P_KEY} \\\n  --inclusion-delay ${INCLUSION_DELAY}\n\n```\nyou can also run it inside docker.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshutter-network%2Fobserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshutter-network%2Fobserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshutter-network%2Fobserver/lists"}