Skip to main content

Overview

Asset Configuration accounts store the NAV (Net Asset Value) pricing sources and settings for each token in the protocol. Every RWA and stablecoin must have an AssetConfig account before it can be used in trading pairs.

Account Structure

PDA Seeds: ["asset", mint_address] Treasury uses a separate AssetConfig PDA derived from ["ASSET_CONFIG", asset_mint] under the Treasury program. Swap registration does not register an asset in Treasury. Both programs use the NAV source types below.

Asset Type

Asset Availability

The program admin controls asset registration, NAV sources, classification, price divergence thresholds, and asset pause state.
  • nav_data contains 1–5 pricing sources, with prices normalized to 9 decimal places.
  • price_difference_bps sets the maximum allowed price divergence (0–9900 BPS).
  • When paused is true, swaps involving this asset, including as the configured fee asset, and liquidity additions of this asset are blocked. Liquidity removals, other assets’ pause flags, and the global pause state are unaffected.
  • used_in_pairs_count tracks the number of pairs using the asset. Its asset_type cannot change while this count is greater than zero.
The Integration Guide describes pause checks before swapping. The program supports four types of NAV pricing sources:

U64FixedAddress

Read price from a fixed byte offset in an on-chain account.
Use Cases:
  • Custom price oracle accounts
  • RWA issuer-published NAV accounts
  • Any account with a u64 price at known offset

Hardcoded

Static price value for stable-value assets.
Use Cases:
  • Dollar-pegged stablecoins (price = 1.0)
  • Assets with contractually fixed prices

PythPush

Pyth Network oracle integration.
Use Cases:
  • Market-priced assets
  • Assets with Pyth price feeds
  • High-frequency price updates

RedstonePush

Redstone PriceData account pricing.
The source checks the configured account, feed ID, price, and age.

View Price Source Details

Complete documentation on NAV pricing configuration and validation

Price Aggregation

When multiple NAV sources are configured:
  1. Read All Sources: Each source returns a price
  2. Normalize: All prices converted to 9 decimal places
  3. Validate Divergence: Check all prices within price_difference_bps
  4. Average: Return average of all valid prices
If any source diverges beyond threshold, the function returns 0, blocking swaps.

Error Codes


Next: Pair Management

Learn about trading pair creation and configuration