First-party oracle network. Data providers run their own Airnode software to sign API responses directly, removing third-party node operators. dAPIs deliver aggregated price feeds via per-chain proxy contracts, with OEV (Oracle Extractable Value) auctions returning value to dApps.
- 01first-party signed price feeds
- 02OEV-aware lending and perps protocols
- 03low-cost dAPIs across 30+ chains
- 04custom Airnode-based API integrations
- 05transparent provenance to source APIs
- pnpm add @api3/contracts
| Variable | Scope | Description |
|---|---|---|
| API3_PROXY_ADDRESS | Client | Deployed Api3ReaderProxyV1 address for the dAPI on your target chain. Look up at market.api3.org or compute via `computeCommunalApi3ReaderProxyV1Address`. |
Read a dAPI by importing `IApi3ReaderProxy` from `@api3/contracts` and calling `(int224 value, uint32 timestamp) = IApi3ReaderProxy(proxyAddress).read()` — `value` is `int224` scaled to 1e18, `timestamp` is the on-chain update time. Look up the proxy address per (chain, dAPI name) at `market.api3.org` and either store it as an immutable or compute via `computeCommunalApi3ReaderProxyV1Address(dapiName, chainId)`. Always staleness-check: `require(block.timestamp - timestamp <= MAX_AGE)` and `require(value > 0)` for price feeds. For OEV-enabled feeds use the OEV-managed proxy variant so liquidations route value back to your protocol via the OEV auction. For custom data needs, deploy your own Airnode (`pnpm dlx @api3/airnode-deployer deploy`) and serve via a self-managed proxy.
- ⚑API3 returns `int224` scaled to 1e18 — NOT the Chainlink convention of asset-specific decimals. Hardcoding 8 decimals (Chainlink USD style) is a silent off-by-1e10 bug.
- ⚑Proxy addresses are per-chain AND per-dAPI; the SAME dAPI name has different addresses on every chain. Use the on-chain `computeCommunalApi3ReaderProxyV1Address` helper or the API3 Market API rather than hardcoding.
- ⚑Update cadence is per-feed (configured at subscription time): some dAPIs update on 0.25% deviation / 24h heartbeat, others tighter. Always enforce a max-age suited to your market's volatility.
- ⚑OEV-managed proxies route extractable value (e.g. liquidation gains) through API3's OEV auction — the read interface is the same, but late updates may be intentional and require app-side handling of slightly older prices between auction rounds.
- ⚑API3 has narrower chain coverage than Chainlink/Pyth — verify your target chain at market.api3.org before committing to API3 in production.
- ⚑First-party signing means the security model depends on the specific data providers; check the per-dAPI provider list and aggregation parameters before relying on it for high-value markets.
- ⚑Self-hosted Airnode requires AWS/GCP infra and a maintained OIS spec; the `set-and-forget` claim still requires monitoring funded gas reserves.