Oracles provide smart contracts with off-chain data such as asset prices. Chaos Labs operates price feeds on Stable.
Overview table
| Provider | Category | Supported Pairs | Docs / Get Started | Notes |
|---|
| Chaos Labs | Oracle Price Feeds | BTC/USD, ETH/USD, SOL/USD, FRXUSD/USD, SFRXUSD/USD, ezETH/ETH | https://docs.chaoslabs.xyz/oracles/docs | Live on mainnet and testnet |
Chaos Labs
Chaos Labs provides oracle price feeds on Stable. Feed contracts expose the IEdgePushOracle interface documented in the Chaos Labs EVM integration guide.
Capabilities
- Push-based price feeds with configurable deviation thresholds and heartbeat intervals
IEdgePushOracle interface with latestRoundData(), decimals(), and description()
- On-chain price data for DeFi protocols, lending, and liquidation engines
Mainnet price feed addresses
Source: Chaos Labs push feeds dashboard
Testnet price feed addresses
Reading a price feed
Feed contracts implement IEdgePushOracle. The following example is adapted from the Chaos Labs documentation.
pragma solidity ^0.8.25;
interface IEdgePushOracle {
function latestRoundData()
external
view
returns (
uint80 roundId,
int256 answer,
uint256 startedAt,
uint256 updatedAt,
uint80 answeredInRound
);
function decimals() external view returns (uint8);
function description() external view returns (string memory);
}
contract OracleConsumer {
IEdgePushOracle public oracle;
constructor(address oracleAddress) {
oracle = IEdgePushOracle(oracleAddress);
}
function getLatestPriceData()
external
view
returns (
uint80 roundId,
int256 answer,
uint256 updatedAt
)
{
(roundId, answer, , updatedAt, ) = oracle.latestRoundData();
return (roundId, answer, updatedAt);
}
}
This code is from the Chaos Labs documentation and is provided for illustrative purposes. Test thoroughly before production use.
Deploying to Stable testnet
This assumes you have Foundry installed and a funded wallet. See the Deploy Smart Contract tutorial for full setup instructions.
-
Save the contract above to
src/OracleConsumer.sol in a Foundry project.
-
Deploy with the ETH/USD testnet feed address:
source .env ;
forge create src/OracleConsumer.sol:OracleConsumer --broadcast --rpc-url $STABLE_TESTNET_RPC_URL --private-key $PRIVATE_KEY --constructor-args 0x176A9536feaC0340de9f9811f5272E39E80b424f
- Read the latest price from your deployed contract:
cast call <DEPLOYED_ADDRESS> "getLatestPriceData()(uint80,int256,uint256)" --rpc-url $STABLE_TESTNET_RPC_URL
Have an oracle integrating Stable?
Reach the team at bizdev@stable.xyz to be listed on this page.