Skip to content

ChainlinkOracle

The following proxy implementations were read on August 27, 2026 and match the ChainlinkOracle v2.16.0 source:

NetworkChecked blockProxyImplementation
BNB Chain1183673420x1B2103441A0A108daD8848D8F5d790e4D402921F0x219cFfEFB1afA9F34695C7fACD9B98d1b3291C8b
Ethereum258459490x94c3A2d6B7B2c051aDa041282aec5B0752F8A1F20x36EFe8716fa2ff9f59D528d154D89054581866A5
Base505185090x6F2eA73597955DB37d7C06e1319F0dC7C7455dEb0xdA079597acD9eda0c7638534fDB43F06393Fe507
zkSync Era717384200x4FC29E1d3fFFbDfbf822F09d20A5BE97e59F66E50xb20d1B03C62D2c8Dc150298b8D151AF022068347

Arbitrum One and Optimism mainnet use the SequencerChainlinkOracle family instead. Feed addresses, stale periods, direct price overrides, ownership, and ACM permissions remain per-proxy dynamic configuration.

The proxy API inherits owner, pendingOwner, transferOwnership, acceptOwnership, renounceOwnership, accessControlManager, and owner-only setAccessControlManager.

This oracle fetches prices of assets from the Chainlink oracle.

struct TokenConfig {
address asset;
address feed;
uint256 maxStalePeriod;
}

Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.

address NATIVE_TOKEN_ADDR

Manually set an override price, useful under extenuating conditions such as price feed failure

mapping(address => uint256) prices

Token config by assets

mapping(address => struct ChainlinkOracle.TokenConfig) tokenConfigs

Constructor for the implementation contract.

constructor() public

Initializes the owner of the contract

function initialize(address accessControlManager_) external
NameTypeDescription
accessControlManager_addressAddress of the access control manager contract

Manually set the price of a given asset

function setDirectPrice(address asset, uint256 price) external
NameTypeDescription
assetaddressAsset address
priceuint256Asset price in 18 decimals
  • Emits PricePosted event on succesfully setup of asset price
  • Only Governance

Add multiple token configs at the same time

function setTokenConfigs(struct ChainlinkOracle.TokenConfig[] tokenConfigs_) external
NameTypeDescription
tokenConfigs_struct ChainlinkOracle.TokenConfig[]config array
  • Only Governance
  • Zero length error thrown, if length of the array in parameter is 0

Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive

function setTokenConfig(struct ChainlinkOracle.TokenConfig tokenConfig) public
NameTypeDescription
tokenConfigstruct ChainlinkOracle.TokenConfigToken config struct
  • Emits TokenConfigAdded event on succesfully setting of the token config
  • Only Governance
  • NotNullAddress error is thrown if asset address is null
  • NotNullAddress error is thrown if token feed address is null
  • Range error is thrown if maxStale period of token is not greater than zero

Gets the price of a asset from the chainlink oracle

function getPrice(address asset) public view virtual returns (uint256)
NameTypeDescription
assetaddressAddress of the asset
NameTypeDescription
[0]uint256Price in USD from Chainlink or a manually set price for the asset