VimenDocs
Agentic baskets

Oracles & pricing

Frozen Chainlink feeds, TWAP adapters for chain natives, and what happens when a price is unavailable.

The frozen line keeps zero oracles on-chain: mint and redeem are in-kind and never read a price. Agentic baskets can't avoid pricing — the policy checks are denominated in NAV — so the V2 layer adds oracles in the narrowest shape that works, and only on the rebalance path.

The registry: one feed per asset, frozen forever

Every asset an agent may buy must be listed in the on-chain AssetRegistry with its price feed. Two properties carry the trust model:

  • The feed is frozen at registration. It can never be repointed — not by the curator, not by the protocol. A listing is therefore vetted once, for a live, correctly-shaped, fresh feed, before it is added.
  • Delisting only blocks new buys. Baskets already holding a delisted asset keep pricing it, selling it, and redeeming it in-kind.

Stock Tokens use their Chainlink feeds (8 decimals, 24/5 with US market hours, 24h heartbeat). Chain-native tokens have no Chainlink feed, so the registry points at a TWAP adapter of the same interface shape.

TWAP adapters for chain natives

A chain native is priced by its own on-chain market through the PoolTwapObserver and per-pool adapter feeds, which serve a time-weighted average price over a one-hour window rather than the spot tick. Manipulating a TWAP requires holding the pool at a false price for the whole window against arbitrage, not flashing it for one block — and the amounts an agent can trade are already bounded by the turnover and slippage budgets, which caps what a manipulated read could ever extract.

The observer is permissionlessly poked; the protocol runs a keeper that records observations around the clock so the windows stay covered.

When a price is unavailable

Two "no price" cases, both fail-safe:

  • Uncovered window (a native's TWAP has too few observations): the feed reports updatedAt = 0. The agent simply waits; no trade happens on a made-up price.
  • Stale or dead feed (older than its heartbeat, or a shared quote feed down): the read reverts, so the rebalance reverts.

Either way the thing that freezes is the rebalance — never redemption or minting, which do not read prices at all. A market-hours gap on a stock feed simply means the agent trades when the market reopens.

Settlement venues

Trades route only through settlement contracts whitelisted in the MakerRegistry (today: the PoolMaker, which settles against Uniswap pools on-chain). Each leg is delta-checked: the exact amount out must arrive, or the rebalance reverts. The protocol Safe can disable a venue as a global brake; value can then no longer move at all, while redemption stays untouched.

All layer addresses are on the addresses page.

On this page