{"id":18492906,"url":"https://github.com/graphprotocol/subgraph-oracle","last_synced_at":"2025-10-14T05:42:12.191Z","repository":{"id":161104382,"uuid":"616753983","full_name":"graphprotocol/subgraph-oracle","owner":"graphprotocol","description":"The Subgraph Oracle","archived":false,"fork":false,"pushed_at":"2025-09-15T13:25:57.000Z","size":3733,"stargazers_count":1,"open_issues_count":11,"forks_count":6,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-10-07T05:00:42.941Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/graphprotocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2023-03-21T02:23:43.000Z","updated_at":"2025-09-15T13:10:31.000Z","dependencies_parsed_at":"2024-04-30T15:00:10.346Z","dependency_job_id":"7c21741a-a59b-4504-9915-0dd87a8a093c","html_url":"https://github.com/graphprotocol/subgraph-oracle","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/graphprotocol/subgraph-oracle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphprotocol%2Fsubgraph-oracle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphprotocol%2Fsubgraph-oracle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphprotocol%2Fsubgraph-oracle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphprotocol%2Fsubgraph-oracle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graphprotocol","download_url":"https://codeload.github.com/graphprotocol/subgraph-oracle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphprotocol%2Fsubgraph-oracle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018009,"owners_count":26086236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"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-06T13:11:35.856Z","updated_at":"2025-10-14T05:42:12.155Z","avatar_url":"https://github.com/graphprotocol.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Subgraph Oracle\nThe Subgraph Oracle verifies the availability of the subgraph files and does other validity checks, if a subgraph is found to be invalid it will be denied rewards in the rewards manager contract. Usage:\n\n```\nUSAGE:\n    availability-oracle [FLAGS] [OPTIONS] --ipfs \u003cipfs\u003e --signing-key \u003csigning-key\u003e --subgraph \u003csubgraph\u003e --url \u003curl\u003e\n\nFLAGS:\n        --dry-run    log the results but not send a transaction to the rewards manager\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nOPTIONS:\n        --epoch-block-oracle-subgraph \u003csubgraph\u003e\n            Graphql endpoint to the epoch block oracle subgraph used for fetching supported networks [env: EPOCH_BLOCK_ORACLE_SUBGRAPH=]\n\n        --grace-period \u003cgrace-period\u003e\n            Grace period, in seconds from subgraph creation, for which subgraphs will not be checked [env: ORACLE_GRACE_PERIOD=]  [default: 0]\n        \n        --ipfs \u003cipfs\u003e\n            IPFS endpoint with access to the subgraph files [env: ORACLE_IPFS=]\n\n        --ipfs-concurrency \u003cipfs-concurrency\u003e\n            Maximum concurrent calls to IPFS [env: ORACLE_IPFS_CONCURRENCY=]  [default: 100]\n\n        --ipfs-timeout \u003cipfs-timeout\u003e\n            IPFS timeout after which a file will be considered unavailable [env: ORACLE_IPFS_TIMEOUT_SECS=]  [default: 30]\n\n        --metrics-port \u003cmetrics-port\u003e\n             [env: ORACLE_METRICS_PORT=]  [default: 8090]\n\n        --min-signal \u003cmin-signal\u003e\n            Minimum signal for a subgraph to be checked [env: ORACLE_MIN_SIGNAL=]  [default: 100]\n\n        --oracle-index \u003coracle-index\u003e\n            Assigned index for the oracle, to be used when voting on SubgraphAvailabilityManager [env: ORACLE_INDEX=]\n\n        --period \u003cperiod\u003e\n            How often the oracle should check the subgraphs. With the default value of 0, the oracle will run once and terminate [env: ORACLE_PERIOD_SECS=]  [default: 0]\n        \n        --rewards-manager-contract \u003crewards-manager-contract\u003e\n            The address of the rewards manager contract [env: REWARDS_MANAGER_CONTRACT=]\n\n        --signing-key \u003csigning-key\u003e\n            The secret key of the oracle for signing transactions [env: ORACLE_SIGNING_KEY=]\n\n        --subgraph \u003csubgraph\u003e\n            Graphql endpoint to the network subgraph [env: ORACLE_SUBGRAPH=]\n\n        --subgraph-availability-manager-contract \u003csubgraph-availability-manager-contract\u003e\n            The address of the subgraph availability manager contract [env: SUBGRAPH_AVAILABILITY_MANAGER_CONTRACT=]\n\n        --supported-data-source-kinds \u003csupported-data-source-kinds\u003e...\n            a comma separated list of the supported data source kinds [env: SUPPORTED_DATA_SOURCE_KINDS=]  [default: ethereum,ethereum/contract,file/ipfs,substreams,file/arweave]\n\n        --url \u003curl\u003e\n            RPC url for the network [env: RPC_URL=]\n\n```\n\n## Examples\n\n### Example command to testing with a dry run:\n\n```\ncargo run -p availability-oracle -- \\\n    --ipfs https://api.thegraph.com/ipfs \\\n    --subgraph \u003cnetwork-subgraph-url\u003e \\\n    --min-signal 10000 \\\n    --url \u003curl\u003e \\\n    --dry-run\n```\n\n### Example command to run `SubgraphAvailabilityManager` configuration:\n\n```\ncargo run -p availability-oracle -- \\\n    --ipfs https://api.thegraph.com/ipfs \\\n    --subgraph \u003cnetwork-subgraph-url\u003e \\\n    --min-signal 10000 \\\n    --url \u003curl\u003e \\\n    --subgraph-availability-manager-contract \u003caddress\u003e \\\n    --oracle-index \u003cindex\u003e \\\n    --signing-key \u003csigning-key\u003e\n```\n\n### Example command to run `RewardsManager` configuration:\n\n```\ncargo run -p availability-oracle -- \\\n    --ipfs https://api.thegraph.com/ipfs \\\n    --subgraph \u003cnetwork-subgraph-url\u003e \\\n    --min-signal 10000 \\\n    --url \u003curl\u003e \\\n    --rewards-manager-contract \u003caddress\u003e \\\n    --signing-key \u003csigning-key\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphprotocol%2Fsubgraph-oracle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraphprotocol%2Fsubgraph-oracle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphprotocol%2Fsubgraph-oracle/lists"}