General
What is IFÁ Labs?
What is IFÁ Labs?
How is IFÁ Labs different from Chainlink or Pyth?
How is IFÁ Labs different from Chainlink or Pyth?
- Local stablecoin coverage. cNGN, ZARP, and BRZ have no reliable dedicated feeds on Chainlink or Pyth. IFÁ Labs is currently the only oracle providing trustless on-chain pricing for these assets.
- Aggregation logic tuned for stablecoins. General-purpose deviation thresholds are calibrated for volatile assets. IFÁ Labs uses tight, peg-aware thresholds that catch meaningful stablecoin moves without noise.
- Regional data sources. Accurate pricing for emerging market stablecoins requires data from local exchanges and forex providers. IFÁ Labs integrates these directly.
- Fully on-chain reads. Price reads require no transaction, no gas, and no off-chain request — a single
viewcall on EVM or a shared object query on Sui returns the current price.
Is IFÁ Labs fully on-chain?
Is IFÁ Labs fully on-chain?
view functions. On Sui, prices are stored in a shared IfaPriceFeed object and are readable by any Move module or TypeScript client.In both cases there is no off-chain API, no middleware, and no centralized component in the read path. Price reads cost no gas when called externally. Any address can read any feed at any time without permission, API keys, or fees.Which chains does IFÁ Labs support?
Which chains does IFÁ Labs support?
- Base Mainnet — primary production deployment (EVM)
- Base Sepolia — recommended EVM testnet
- AssetChain Testnet — RWA-focused EVM ecosystem
- Sui Testnet — native Move deployment on Sui
Which stablecoins does IFÁ Labs support?
Which stablecoins does IFÁ Labs support?
| Asset | Symbol | Category |
|---|---|---|
| Tether | USDT/USD | Global |
| USD Coin | USDC/USD | Global |
| Nigerian Naira Stablecoin | CNGN/USD | Emerging Market |
| South African Rand Stablecoin | ZARP/USD | Emerging Market |
| Brazilian Real Stablecoin | BRZ/USD | Emerging Market |
| Ethereum | ETH/USD | Reference Asset |
Is IFÁ Labs free to use?
Is IFÁ Labs free to use?
view calls on EVM and read-only shared object queries on Sui — neither costs gas and neither requires a subscription, API key, or fee payment.The only cost is standard network gas if you deploy your own contract that consumes IFÁ Labs feeds and writes data to your own contract’s storage.Is there a way to swap stablecoins using IFÁ Labs?
Is there a way to swap stablecoins using IFÁ Labs?
Integration
How do I read a price from IFÁ Labs in Solidity?
How do I read a price from IFÁ Labs in Solidity?
getAssetInfo on the oracle contract with the asset’s bytes32 ID:How do I read a price from IFÁ Labs in Sui Move?
How do I read a price from IFÁ Labs in Sui Move?
IfaPriceFeed object by reference and call get_asset_info:0x5d2728b862de08de767e4f8841a38c9452d951c0602e77fc47bfbb3ab03f33f0. Pass it as the feed argument in your transaction. See the Sui Integration Guide for full examples.What are asset IDs and how are they generated?
What are asset IDs and how are they generated?
keccak256:"SYMBOL/USD". The same underlying 32-byte value works on every IFÁ Labs deployment — no remapping between networks.On EVM the ID is used as a bytes32 hex string. On Sui it is passed as a vector<u8> — same bytes, different format. You can independently verify any asset ID by computing the hash yourself and comparing against the published value. See Working with Asset IDs for full details.How do I convert the raw price to a human-readable value?
How do I convert the raw price to a human-readable value?
decimal is negative (e.g. -18). Divide by 10^(-decimal):decimal is positive (e.g. 18). Divide by 10^decimal:decimal dynamically rather than hardcoding — future assets may use different precision. See Decimal Precision & Formatting for full conversion guidance.What staleness threshold should I use?
What staleness threshold should I use?
MAX_PRICE_AGE to at least 1.5× the heartbeat interval for each asset:| Asset | Heartbeat | Minimum MAX_PRICE_AGE |
|---|---|---|
| USDT/USD | 1 hour | 5,400s (90 min) |
| USDC/USD | 1 hour | 5,400s (90 min) |
| CNGN/USD | 2 hours | 10,800s (3 hrs) |
| ZARP/USD | 2 hours | 10,800s (3 hrs) |
| BRZ/USD | 2 hours | 10,800s (3 hrs) |
| ETH/USD | 1 hour | 5,400s (90 min) |
price_feed::is_fresh(price_feed, current_time, max_age) returns a bool directly — you do not need to implement the subtraction check yourself.For production deployments, run the cadence analysis script in Price Appears Stale to calibrate thresholds from real on-chain data rather than documentation estimates.Can I get prices for multiple assets in one call?
Can I get prices for multiple assets in one call?
getAssetsInfo with an array of asset IDs:get_assets_info with a vector<Bytes32>:How do I price CNGN against USDT — or any asset against another?
How do I price CNGN against USDT — or any asset against another?
decimal = 30 with derived_price scaled by 10^30. This is fixed — not per-asset.Any combination of the six supported assets is computable as a derived pair. See Function Reference for the EVM API, or the Sui Integration Guide for Move.Do I need a wallet or ETH to read prices?
Do I need a wallet or ETH to read prices?
view calls — no wallet, no ETH, no transaction required. On Sui, price reads use devInspectTransactionBlock — no SUI tokens or signing required.You only need tokens if you are deploying your own contracts that consume IFÁ Labs feeds.Can I use IFÁ Labs from JavaScript without writing Solidity?
Can I use IFÁ Labs from JavaScript without writing Solidity?
devInspectTransactionBlock. See the Sui Integration Guide for the full pattern.See Get Your First Price for full EVM off-chain examples in JavaScript, Python, and via Basescan.Security
Have the IFÁ Labs contracts been audited?
Have the IFÁ Labs contracts been audited?
Can IFÁ Labs modify or pause price feeds?
Can IFÁ Labs modify or pause price feeds?
IfaPriceFeed shared object is write-protected — only the authorized IfaPriceFeedVerifier can submit updates, and only the relayer address configured in the verifier can call submit_price_feed. The AdminCap controls verifier configuration but cannot directly alter stored prices.IFÁ Labs cannot retroactively alter historical prices or freeze a feed on either chain.What happens if a relayer submits a wrong price?
What happens if a relayer submits a wrong price?
- Prices are aggregated from multiple independent sources before submission — no single source determines the output
- Outlier detection filters anomalous data points before consensus calculation
- A weighted median algorithm makes the final price resistant to minority manipulation
- Zero-price and peg bounds validation reject obviously wrong values before on-chain submission
- Decentralized relayers independently verify the aggregated price before signing
- On Sui, the verifier contract additionally rejects prices with zero value or zero timestamps, and ignores submissions with older timestamps than the current stored value
How do I verify IFÁ Labs prices independently?
How do I verify IFÁ Labs prices independently?
- Read the current on-chain price and compare against external market sources
- Independently compute any asset ID using
keccak256and verify it matches the published value - Query historical
PriceUpdatedevents (EVM) orAssetInfoSetevents (Sui) and verify update cadence and price progression - Compare prices across chains to verify cross-chain consistency
- Clone the audited commit and compare compiled bytecode against the deployed contract
How do I report a security vulnerability?
How do I report a security vulnerability?
MCP Server
What is the IFÁ Labs MCP Server?
What is the IFÁ Labs MCP Server?
How do I install the MCP server?
How do I install the MCP server?
Which MCP clients does IFÁ Labs support?
Which MCP clients does IFÁ Labs support?
- Claude Desktop
- Cursor
- Windsurf
- TRAE
- Zed
- Continue
- LangChain, CrewAI, AutoGen (programmatic)
Does the MCP server cost anything to use?
Does the MCP server cost anything to use?
Assets and Feeds
How do I request a new stablecoin feed?
How do I request a new stablecoin feed?
- Token contract address on all relevant chains
- Backing mechanism and reserve proof or documentation
- Current daily trading volume across all venues
- The protocol or use case driving the request
Why is my price feed showing as stale?
Why is my price feed showing as stale?
MAX_PRICE_AGE threshold is tighter than the asset’s natural update cadence.During stable market conditions, IFÁ Labs feeds update only when the price moves beyond the deviation threshold — not continuously. A feed that appears stale by your threshold may be accurate and working correctly.Set MAX_PRICE_AGE to at least 1.5× the heartbeat interval for the asset. Then run the cadence analysis script in Price Appears Stale to calibrate from real on-chain data.If the feed age significantly exceeds the heartbeat interval across all assets simultaneously, a relayer issue may be affecting the deployment. Check the Telegram for incident announcements.Are asset IDs the same across all networks?
Are asset IDs the same across all networks?
- EVM — used as a
bytes32hex string:0x6ca0cef6... - Sui — passed as a
vector<u8>:x"6ca0cef6..."in Move, or a byte array in TypeScript
What is ETH/USD doing in a stablecoin oracle?
What is ETH/USD doing in a stablecoin oracle?
Sui
How is the Sui integration different from EVM?
How is the Sui integration different from EVM?
- Shared objects instead of contract addresses. You pass the
IfaPriceFeedobject by reference in transactions — there is no contract address to call. - Positive decimal convention. Sui uses
u8for the decimal field.18means divide by10^18— the opposite sign from EVM’s-18. - Derived pair decimal is always 30. All derived pair results on Sui have
decimal = 30andderived_pricescaled by10^30. - Asset IDs as
vector<u8>. Same 32-byte values as EVM — but passed without the0xprefix using Sui’s hex literal syntaxx"...". - Built-in
is_freshhelper. The Sui contract exposesprice_feed::is_fresh(price_feed, current_time, max_age): bool— no need to implement the staleness check yourself. - Derived pair functions abort on missing assets. On EVM, missing assets return
exists = false. On Sui, they abort. Always check both assets exist before calling pair functions.
Where do I get testnet SUI and WAL for development?
Where do I get testnet SUI and WAL for development?
- Official Sui Faucet — faucet.sui.io for testnet SUI
- IFÁ Labs Faucet — claim testnet SUI and WAL tokens directly from the IFÁ Labs multi-token faucet deployed on Sui Testnet. See the Testnet Faucet page for claim instructions.
What are the Sui Testnet object IDs?
What are the Sui Testnet object IDs?
| Object | ID |
|---|---|
| Package ID | 0x99847c953ee11ca57b6d602494c914d7d82a2d42c4c8a80307331fead5b22c4a |
| Feed Object ID | 0x5d2728b862de08de767e4f8841a38c9452d951c0602e77fc47bfbb3ab03f33f0 |
| Verifier Object ID | 0x028e5df554ac7d253a132c60bcd13cf32bea9eb8c81d04d685c2a31299fbe43b |
ifa_oracle as a dependency in your own Move package.See Contract Addresses for the full reference.Is there a swap contract on Sui?
Is there a swap contract on Sui?
Community and Contribution
How do I stay updated on new deployments and assets?
How do I stay updated on new deployments and assets?
- X: @ifalabs — deployment announcements, new assets, ecosystem news
- Telegram: t.me/ifalabs — real-time updates and incident announcements
- GitHub: Watch the repository — contract changes and releases
Can I contribute to IFÁ Labs?
Can I contribute to IFÁ Labs?
Is there a bug bounty program?
Is there a bug bounty program?

