Skip to main content

Overview

Oracles are independent validators that confirm cross-chain transactions in Bron Intents. Every order requires oracle consensus at two checkpoints: after the user sends funds, and after the solver sends funds. Oracles monitor blockchain events, verify transactions on-chain, and submit their votes to the OracleAggregator smart contract. A quorum-based mechanism ensures that no single oracle can approve or reject a transaction alone.

Role in the Protocol

Oracles participate at two critical points during order execution:

1. User Transaction Confirmation

After the user sends funds to the solver on the base network:
  • Oracles fetch the transaction from the base blockchain
  • Check amount, sender, receiver, and transferred token
  • Submit vote via oracleConfirmUserTx(orderId, isConfirmed) on the OracleAggregator contract

2. Solver Transaction Confirmation

After the solver sends funds to the user on the quote network:
  • Oracles fetch the transaction from the quote blockchain
  • Check amount, sender, receiver, and transferred token
  • Submit vote via oracleConfirmSolverTx(orderId, isConfirmed) on the OracleAggregator contract
Each vote must be submitted within the network’s confirmation time window. Late votes are rejected.

Consensus Mechanism

Decisions are made by quorum — more than half of the oracles subscribed to the relevant network must vote.
OutcomeResult
Yes votes > No votes (quorum reached)Order proceeds to the next step
No votes > Yes votes (quorum reached)User TX: order cancelled. Solver TX: solver liquidated
Tie (quorum reached)Consensus resets, new voting round starts
Oracles that vote against the majority are placed into a cooldown period and temporarily unsubscribed from all networks.

Oracle Lifecycle

Registration Flow

1

Register

Call OracleAggregator.registerOracle() — your status becomes PENDING.
2

Approval

The Bron DAO reviews and approves your registration.
3

Subscribe to Networks

Call subscribeToNetwork(networkId) for each blockchain network you want to validate. An oracle can subscribe to up to 30 networks.
4

Start Validating

Once active and subscribed, your oracle participates in consensus for orders on those networks.

Fee Distribution

Oracles earn fees for participating in consensus:
  1. Each order has an oracle fee calculated as a percentage of the order amount
  2. Fees are transferred to the OracleAggregator after order completion
  3. Fees are distributed weighted by total positive votes — an oracle that voted true at both checkpoints (user TX and solver TX) earns more than one that voted true at only one
  4. Oracles claim accumulated fees via claimOracleCollectedFees(feeToken)

Penalty System

Oracles that vote against the majority consensus are penalized:
  1. Status changes to COOLDOWN
  2. Oracle is unsubscribed from all networks
  3. After the cooldown period expires, checkAndResetOracleCooldown must be called to reactivate the oracle
  4. Once reactivated, the oracle must re-subscribe to networks manually
This mechanism incentivizes honest and accurate validation.