Operate a Base Oracle
Run an automated operator agent using the OrbOracle Poster. Fetch multi-source market rates, compute normalized medians, and submit verified on-chain observations to earn continuous operator rewards.
Cross-Source Resilience
The oracle operator can modify the oracle poster to fetch data from a variety of sources that he/she trusts (Source A, Source B, Source C, etc.), computing an 18-decimal normalized median or aggregate before submitting.
Automated Reward Yield
Every confirmed submission claims a proportional share of the oracle reward reserve. Operators can configure gas limits and update intervals to optimize operational expenses.
Continuous Weight Dominance
The weight of a previously submitted value decays continuously based on the configured half-life. Continuous value submission refreshes submitted value weight, maintaining responsive and accurate on-chain consensus.
Operator Prerequisites
Deposit the required weightToken in the Base Oracle via the Oracle detail page using the depositTokens() function.
Ensure the operator wallet has native gas tokens (ETH on Mainnet/Sepolia or respective L2) to execute recurring on-chain transactions.
Obtain an active EVM JSON-RPC URL matching the chain ID where the target oracle is deployed.
Poster Setup Runbook
Follow these simple steps to configure and launch your automated operator bot.
Clone the Poster Repository & Install Dependencies
Configure Environment Variables (.env)
Create a .env file in the project root by copying .env.example:
# Network & Operator Wallet RPC_URL=https://your-rpc-endpoint.example.com PRIVATE_KEY=0xYOUR_OPERATOR_PRIVATE_KEY ORACLE_ADDRESS=0xTARGET_BASE_ORACLE_ADDRESS # Data Sources Configuration (Customizable to any trusted sources) SOURCE_A_URL=https://api.source-a.org/data SOURCE_B_URL=https://api.source-b.org/data SOURCE_C_URL=https://api.source-c.org/data # Execution Parameters UPDATE_INTERVAL_MS=60000 MIN_STAKE_REQUIRED=10
Contract address of the Base Oracle you are operating for.
Frequency in milliseconds (e.g. 60000 for 1-minute cycles).