For the complete documentation index, see llms.txt. This page is also available as Markdown.

Arbitrum

This guide walks you through consuming Kaiko’s Reference Rates on Arbitrum. Several asset pairs are publicly available: prices refresh automatically every hour, and anyone can request an on-demand refresh — the only cost is the network gas fee.

Read prices in your browser

Visit onchain.kaiko.com/arbitrum-dashboard. Here, you can see the latest Kaiko price updates for all pairs, along with each price feed’s contract address.

Read a price update on-chain

Anyone can request a refresh of all price feeds by calling refreshPriceFeeds() on the trigger contract 0xff2743c44f820C64c94eCCfc1B497a1019541097. The call must be sent without any ETH value — the contract rejects any other amount. You only pay the network gas fee.

When the transaction is confirmed, the contract emits an event that Kaiko’s publisher listens to. The publisher then pushes fresh, Kaiko-signed prices to every price feed contract.

  1. Install ethers: npm install ethers

  2. Call refreshPriceFeeds() on the trigger contract:

import { ethers } from 'ethers';

// Set up your Arbitrum provider
const provider = new ethers.JsonRpcProvider("<YOUR_PROVIDER_URL>");

// Initialize wallet using private key and connect it to the provider
const wallet = new ethers.Wallet("<YOUR_PRIVATE_KEY>", provider);

// PriceFeedsUpdateTrigger contract address
const triggerAddress = "0xff2743c44f820C64c94eCCfc1B497a1019541097";

// ABI definition of the contract's refreshPriceFeeds method
const abi = [
    "function refreshPriceFeeds() payable external"
];

const trigger = new ethers.Contract(triggerAddress, abi, wallet);

async function refreshPriceFeeds() {
    try {
        // No ETH value: the contract requires msg.value to be exactly 0
        const tx = await trigger.refreshPriceFeeds();

        console.log("Transaction sent. Waiting for confirmation...");
        const receipt = await tx.wait();

        console.log("Transaction confirmed:", receipt.hash);
    } catch (error) {
        console.error("Error while calling refreshPriceFeeds:", error);
    }
}

refreshPriceFeeds();
  1. Wait a few seconds for Kaiko’s publisher to push the updated prices on-chain — the refresh happens in separate transactions after yours confirms.

Read the price on-chain

Each pair has its own PriceFeed contract exposing latestupdate(), which returns the latest price, its decimals, and the update timestamp:

{% hint style=“warning” %} Although one update request refreshes all prices on-chain, you must read each price feed individually. See the price feeds and their corresponding addresses at onchain.kaiko.com/arbitrum-dashboard. {% endhint %}

Last updated

Was this helpful?