Oracles

... About 5 min

Oracles (opens new window) provide off-chain data on chain. This allows code running on a blockchain to access a wide variety of information. For example, a stablecoin that accepts SYS as collateral needs to know the SYS/USD exchange rate:

  • How many stablecoins can we give a user for a given amount of SYS?
  • Do we need to liquidate any deposits because they are under-collateralized?

Different oracles have different security assumptions and different levels of decentralization. Usually they are either run by the organization that produces the information, or have a mechanism to reward entities that provide accurate information and penalize those that provide incorrect information.

# Types of oracles

There are two types of oracles:

  1. Push oracles are updated continuously and always have up to date information available on chain.

  2. Pull oracles are only updated when information is requested by a contract. Pull oracles are themselves divided into two types:

    1. Double-transaction oracles, which require two transactions. The first transaction is the request for information, which usually causes the oracle to emit an event that triggers some off-chain mechanism to provide the answer (through its own transaction). The second transaction actually reads onchain the result from the oracle and uses it.
    2. Single-transaction oracles, which only require one transaction. The way this works is that the transaction that requests the information includes a callback (address and the call data to provide it). When the oracle is updated (which also happens through a transaction, but one that is not sent by the user), the oracle uses the callback to inform a contract of the result.

# SupraOracles

SupraOracles is growing fast and already supports a lot of networks, including Rollux and Syscoin. We highly recommend SupraOracles (opens new window), as their tech stack provides oracle service with fast finality in a more decentralized way than competitors, and with efficiency not found elsewhere. The combination of Rollux with SupraOracles means low cost near real-time oracle data! Check out SupraOracles technology (opens new window).

# SNAP (Supra Network Activate Program)

SupraOracles price feeds on Rollux are subsidized by the Syscoin Foundation! This means price feeds with the liveness you need are currently free to use for projects building or deploying on Rollux. The Foundation is proud to participate in the Supra Network Activate Program (SNAP) (opens new window).

# Price Feeds

Data Dashboard (opens new window)

Price Feed Catalog (opens new window)

Pull model:
Supra Pull oracle provides low latency on-demand price feed updates needed for special use cases like perpetual DEXs and its open for everyone.

How to integrate pull model (opens new window)

Rollux Mainnet: 0xa64E1313B6e104f2A3A14D0962CEB32acAA72012 (opens new window)

Syscoin NEVM (L1) Mainnet: 0x7Bf7646CfA1a1EBEd4436E53ab2cB95C7d16824D (opens new window)

Rollux Tanenbaum (Testnet): 0x6Cd59830AAD978446e6cc7f6cc173aF7656Fb917 (opens new window)

Syscoin NEVM (L1) Tanenbaum (Testnet): 0x6Cd59830AAD978446e6cc7f6cc173aF7656Fb917 (opens new window)

Push model:
Supra's Push oracle publishes prices on chain at low frequencies enabling consumers to read near real time prices on chain.

How to integrate push model (opens new window)

Rollux Mainnet: 0xbc0453F6FAC74FB46223EA5CC55Bd82852f0C670 (opens new window)

Syscoin NEVM (L1) Mainnet: 0x933fA8303C3C8d2676fdDa40ca0492AF46058580 (opens new window)

Rollux Tanenbaum (Testnet): 0x14Dbb98a8e9A77cE5B946145bb0194aDE5dA7611 (opens new window)

Syscoin NEVM (L1) Tanenbaum (Testnet): 0x8Ba43C9D8eF6d372582b851B4BE8d8975BA4D9f8 (opens new window)

# Supra VRF (RNG)

On-chain and off-chain applications connected to gaming, lottery and sampling rely heavily on entropy. It could be a dynamic NFT mint, loot boxes, random opponent pairing, randomized spawn environments, an in-game item upgrade, a lottery or a selection of contributors for an IDO.

Supra’s VRF can provide the exact properties required for a random number generator (RNG) to be fair with tamper proof, unbiased and cryptographically verifiable random numbers to be employed by smart contracts.

Learn more (opens new window) about Supra VRF and get intergrated.

VRF V2 Router Contract (V2) on Rollux Mainnet : 0xc489aE6CEeBF5e17676a3B2A8A81e45B4Ba01a78 (opens new window)

VRF V2 Deposit Contract (V2) on Rollux Mainnet : 0xD8a459e3B7dB86Dc210031F38BaBc730b72BAbcD (opens new window)