Skip to main content
BTCY uses Chainlink oracles for NAV publication and Proof of Reserves attestation.

Overview

ParameterValue
ProviderChainlink
Update FrequencyDaily
Data SourceAccountable
NetworkEthereum Mainnet

Feed Address

Oracle feeds deploying with mainnet launch. Address will be published here.
NAV Feed: TBD

Data Format

The NAV feed provides:
  • NAV per iBTCY token (in BTC, 18 decimals)
  • Timestamp of last update

Reading NAV On-Chain

// Chainlink Aggregator interface
AggregatorV3Interface navFeed = AggregatorV3Interface(NAV_FEED_ADDRESS);

(
    uint80 roundId,
    int256 navPerToken,
    uint256 startedAt,
    uint256 updatedAt,
    uint80 answeredInRound
) = navFeed.latestRoundData();

// NAV is in BTC with 18 decimals
// Example: 1.05e18 = 1.05 BTC per token

Staleness Handling

Integrators should implement staleness checks. Stale NAV data may indicate operational issues. Contact us for integration guidance.

Proof of Reserves

Overview

ParameterValue
ProviderChainlink + Accountable
Update FrequencyMonthly
AttestationTotal backing ≥ total supply × NAV

Feed Address

PoR Feed: TBD

What It Verifies

The Proof of Reserves attestation confirms:
Buffer BTC (Archax) + SSBAF Units * SSBAF NAV >= iBTCY Supply * NAV per Token
ComponentSource
Buffer BTCArchax custody balance
SSBAF NAVSygnum official NAV
iBTCY SupplyOn-chain token supply

Reading PoR On-Chain

// Chainlink PoR interface
AggregatorV3Interface porFeed = AggregatorV3Interface(POR_FEED_ADDRESS);

(
    uint80 roundId,
    int256 reserves,
    uint256 startedAt,
    uint256 updatedAt,
    uint80 answeredInRound
) = porFeed.latestRoundData();

// Compare reserves to total supply
uint256 totalSupply = IERC20(IBTCY_ADDRESS).totalSupply();
uint256 navPerToken = /* from NAV feed */;

bool fullyBacked = reserves >= totalSupply * navPerToken / 1e18;

Integration Recommendations

For Lending Protocols

  1. Use NAV feed for pricing: More accurate than DEX spot price
  2. Implement staleness checks: Pause operations if feed is stale
  3. Consider PoR for risk: Monitor backing ratio
function getBTCYPrice() external view returns (uint256) {
    (, int256 nav,, uint256 updatedAt,) = navFeed.latestRoundData();
    
    // Reject data older than 36 hours (aligns with internal pause band; see /product/transparency)
    require(block.timestamp - updatedAt < 36 hours, "Stale NAV");
    
    return uint256(nav);
}

For DEXs

  1. NAV as reference price: Useful for arbitrage bounds
  2. Expect premium/discount: BTCY may trade off-NAV
  3. Liquidity constraints: Consider redemption capacity

For Risk Monitoring

  1. Track buffer percentage: Available via dashboard API
  2. Monitor PoR ratio: Should always be ≥ 100%
  3. Watch for staleness: Indicates potential issues

Dashboard API

Real-time metrics available at app.aarc.xyz:
MetricEndpoint
Current NAVDashboard (API coming)
Buffer %Dashboard (API coming)
PoR StatusDashboard (API coming)
Redemption QueueDashboard (API coming)
API documentation will be published with mainnet launch.
For general Chainlink integration patterns:

Contract Addresses

View deployed contract addresses

Available only to eligible professional/qualified investors on an invite-only basis, subject to onboarding and compliance approval. For informational purposes only and not investment advice. Not an offer to the public or a solicitation where unlawful. No retail distribution. Not available to US Persons.Disclaimers · Platform and issuer