Deploy Feed

How deployment works across Solana/SVM and EVM, and what "deploying a feed" actually means per chain.

"Deploying" a Switchboard feed means making it available for use on-chain. With Switchboard's managed update system, this is simpler than ever:

  • Solana/SVM: Feeds use canonical OracleQuote accounts derived deterministically from feed IDs. No explicit account creation needed—accounts are created automatically on first use.

  • EVM: Feeds are identified by a deterministic bytes32 ID. You submit oracle-signed updates to the Switchboard contract and read the latest update from storage.

Both chains follow the same pattern: store your feed definition, get a feed ID, then use managed updates.


Prerequisites (all chains)

Before “deployment”, you should have:

  • a feed definition (jobs + tasks) you have simulated successfully

  • a clear understanding of:

    • what value your feed returns

    • decimal conventions (e.g., 1e8 vs 1e18)

    • which sources/jobs you trust and why

If you haven't designed and simulated your jobs yet, start here:


Solana / SVM: Deploy with Managed Updates

What you are doing

On Solana, deployment means:

  1. Choose a queue (oracle subnet).

  2. Store/pin your job definition with Crossbar to get a feed hash.

  3. Use the feed hash to derive the canonical OracleQuote account address.

  4. Fetch managed update instructions and include them in your transactions.

The canonical account is created automatically on first use—no explicit initialization transaction required.

Requirements

  • A funded Solana keypair file (payer)

  • A Solana RPC URL

  • Your OracleJob[] definition

Create a keypair file if you don't have one:

Install

Deployment flow (TypeScript)

Below is the deployment flow using managed updates. You can merge this into the same project where you built/simulated your jobs.

Using validation parameters

Validation parameters (min responses, max variance, staleness) are now specified when fetching updates or reading data, rather than at deployment time:

Make it discoverable

Storing with Crossbar pins the feed definition to IPFS and makes it easier to view/debug in the Switchboard explorer. The feed hash is the key identifier you'll use throughout your integration.


EVM: “Deploying” is publishing a feed ID + updating via the Switchboard contract

Why there isn’t a dedicated “deploy feed” step on EVM

On EVM, a feed is identified by a deterministic bytes32 feed ID. You can treat deployment as:

  1. Obtain the feed ID (often from the Feed Builder / Explorer).

  2. Store that feed ID in your consumer contract or app.

  3. Fetch oracle-signed updates off-chain.

  4. Submit updates on-chain via updateFeeds.

This is the same pattern Solana now uses with managed updates—no explicit account creation needed.

On-chain: reading and updating

A typical Solidity integration looks like:

  • Store the Switchboard contract address + your feedId

  • When you need fresh data:

    • compute the required fee

    • submit updateFeeds(updates)

    • read latestUpdate(feedId)

Many feeds use int128 scaled by 1e18 to avoid floating point issues. Always consult the feed’s intended decimal convention.

Off-chain: fetch encoded updates with Crossbar (TypeScript)

Use Crossbar to fetch oracle-signed updates (encoded) for submission:


Do we need “deployment docs” for other chains?

Switchboard supports additional chains with chain-specific SDKs and verification flows (e.g., Move-based environments). Many of these integrations follow the EVM-style model: you fetch oracle consensus off-chain and include a verification/update step inside your transaction, rather than creating a dedicated on-chain “feed account”.

If you’re targeting a non-Solana chain, treat “deployment” as:

  1. Create/publish a feed definition and get its feed ID/address.

  2. Use the chain’s SDK to fetch and verify oracle results in your transaction flow.

Last updated