Oasis Sapphire Data: Index the Confidential EVM

Index Oasis Sapphire's public events, token transfers, and decoded transactions in one pipeline, delivered to your own database. Real-time and complete historical data, no node to run.


Oasis Sapphire is the confidential EVM ParaTime on the Oasis Network, an EVM-compatible runtime where contract state is encrypted and smart contracts can compute over private data. It keeps the familiar Solidity and Web3 tooling but adds a confidentiality layer: contract storage is sealed, transaction calldata is end-to-end encrypted between the client and the runtime, and contracts get access to confidential randomness. ROSE is the native token that pays for gas. The result is a chain where a DEX, an identity registry, or an onchain game can hold secrets that a plain EVM would leak. You can read how the team frames it at oasis.net.

That confidentiality is exactly what makes Sapphire data unusual. Some of the chain is private by design, so you cannot index encrypted state or decrypt sealed calldata, and you should not pretend to. What you can index is everything a contract chooses to make public: the events and logs it emits, token transfers, and the public shape of its transactions. Indexing Co covers Sapphire in a single pipeline, decodes those public signals into the shape you want, and delivers them to your own PostgreSQL, warehouse, or webhook. Real-time and full history, with no node to operate.

Source Sapphire ParaTime blocks
Ingest blocks, logs, receipts
Decode ABIs to events
Transform your JavaScript
Deliver your database

Why Oasis Sapphire data is hard

Public Events vs Confidential State Sapphire is an EVM, but not everything is readable. Contract storage is encrypted and calldata is sealed between client and runtime, so private state stays private by design. The events and logs a contract emits, however, are public on-chain. Indexing means knowing that line precisely: capture the public signals, and never claim to read what confidentiality hides.
Design Around What Contracts Emit Because storage is confidential, well-built Sapphire contracts deliberately emit events for the facts they want observable: a swap, a mint, a settled round, a status change. Your dataset is only as complete as those emitted logs, so the real work is decoding every event a protocol chooses to publish and correlating it into a coherent history.
EVM Familiar, Runtime Different Sapphire runs as a ParaTime on Oasis, not as a standalone L1 or an OP-Stack rollup, and ROSE pays for gas. The Web3 interface is familiar, but block production, gas accounting, and the confidential execution model differ from a vanilla EVM. A naive scraper that assumes Ethereum semantics misreads how the chain actually behaves.
Your Own DB, Not a Hosted API Generic RPC endpoints and hosted query APIs leave you rate-limited and renting someone else's schema. Powering an app or analytics workload on Sapphire means owning the public event data in your own store, shaped the way your product queries it.

What Indexing Co delivers for Oasis Sapphire

The DIY Path

Stand up and maintain the whole stack yourself.

  • Run a Sapphire ParaTime node or wire up a third-party RPC.
  • Fetch and decode the public logs and receipts against the right ABIs.
  • Track proxy upgrades and per-protocol event schemas by hand.
  • Build backfill, reorg handling, and real-time delivery from scratch.
Indexing Co

One pipeline sources, decodes, and delivers Sapphire's public data to your store.

  • Sapphire contract events, token transfers, and decoded txs in a single pipeline.
  • Decoded data, shaped by your JavaScript transform.
  • Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
  • Real-time delivery plus complete backfilled history. No node, no RPC babysitting.

What you can index

EVM data type On Oasis Sapphire, for example
Contract events and logs Emitted swap, mint, and settlement events from confidential contracts
Token transfers (ERC-20, ERC-721) ROSE-denominated transfers, wrapped assets, NFT movements
Decoded transactions Public transaction structure and value flows
Protocol and account state Balances and positions reconstructed from public events

A transform, not a subgraph

You write the transform in JavaScript, not AssemblyScript, and change it without re-indexing from block zero. Indexing Co runs your function over each block server-side: decode the logs you care about and return rows for your destination.

// Indexing Co transform: reshape each block into rows for your database
function transform(block) {
  const results = [];
  const signatures = [
    'event Transfer(address indexed from, address indexed to, uint256 value)'
  ];

  for (const tx of block.transactions || []) {
    for (const log of tx.receipt?.logs || []) {
      const event = utils.evmDecodeLogWithMetadata(log, signatures);
      if (!event) continue;
      results.push({
        chain: block._network,
        block: Number(block.number),
        tx_hash: tx.hash,
        contract_address: log.address?.toLowerCase(),
        from: event.decoded.from,
        to: event.decoded.to,
        value: event.decoded.value,
      });
    }
  }
  return results;
}

Oasis Sapphire with Indexing Co

Run it yourself if

You want full control of node infrastructure and have the team to operate a Sapphire ParaTime node, decode every protocol's emitted events, and build backfill and reorg handling in-house.

Use Indexing Co if

You want Sapphire's public contract events, token transfers, and decoded transactions delivered to your own database, with real-time plus complete history and no infrastructure to run.

Get a DemoOpen the Console

Related Reading

FAQ

Do I need to run an Oasis Sapphire node?

No. Indexing Co sources Sapphire blocks, logs, and receipts for you, including full historical data, so you never operate a ParaTime node or babysit an RPC endpoint.

Can I index confidential state on Sapphire?

No, and neither can anyone else. Confidential contract state and encrypted calldata are private by design. What Indexing Co indexes is the public data a contract chooses to expose: the events and logs it emits, token transfers, and the public shape of its transactions.

Which Sapphire data is actually indexable?

Everything a contract makes public. Emitted events and logs are visible on-chain, so if a protocol emits an event for a swap, mint, or settlement, we decode it against the right ABI and deliver it. State that stays encrypted stays out of reach.

Where does the Oasis Sapphire data go?

Into your own destination: PostgreSQL, BigQuery, a warehouse, or a webhook. You define the output schema and own the storage.

Can I get complete historical Sapphire data?

Yes. We backfill the public event history from your chosen start block and merge it with real-time data, so your Sapphire dataset is gap-free forward from that point.

Get Started

Index Oasis Sapphire in minutes. Set up your first Sapphire contract or token pipeline without running a node.

Get a DemoOpen the Console