Lumera Protocol

Injective × Cascade

Use Lumera Cascade as the permanent storage layer for apps built on Injective.

Injective is a Cosmos Layer-1 with a native orderbook module, sub-second finality, CosmWasm 2.0 smart contracts, and full IBC connectivity. Most Injective apps keep their state on-chain and pin large supporting data such as trade receipts, NFT media and metadata, governance attachments, oracle evidence to IPFS or a cloud bucket. That supporting data lives only as long as someone keeps paying to host it.

Cascade is a permanent, decentralised storage layer. Injective stays the layer for trading, state machines, escrow, and bonds; Cascade becomes the layer for everything those state machines reference, without bloating the chain or paying a recurring hosting bill.

Why this fits

IPFS pinning / cloud bucketCascade
PersistencePin-dependent, a lapsed pin loses the dataPermanent, enforced by protocol
PricingRecurring per-month billPay once, on-chain, in ulume
RedundancyNone by defaultRaptorQ erasure coding across Supernodes
Self-healingNoYes, automatic chunk restoration
VerifiabilityHash-only at bestHash and on-chain action_id

Cascade does not replace anything on Injective. It augments contract state with permanent, content-addressed payloads that your contracts reference by action_id.

What lives where

The split is the same for every integration: Injective holds the small, consensus-critical state; Cascade holds the large, citable bytes.

On InjectiveOn Cascade
Order book + matching
Contract state, escrow, bonds
State-machine transitions
Trade receipts and fills
NFT media + metadata
Governance proposals + attachments
Oracle inputs / settlement evidence
Audit and compliance logs
Pointers (action_id) tying the two together

The split makes the system both cheap to operate and permanent to read.

How the integration works

Cascade stores data as actions. A MsgRequestAction on Lumera registers the data and returns a numeric action_id, and the bytes are then streamed to the Supernode network against that ID, becoming retrievable forever.

The only design decision that varies between integrations is who signs the Cascade write. Either the backend signs through the Lumera-operated cascade-api, or the end user signs directly from a wallet. Both paths are covered in Cascade from Injective.

Reference implementation. Inscribe is a live Injective testnet dApp for permanent, re-litigatable prediction markets. If you prefer to learn from a complete worked example, read it after the primer and the integration patterns.

Next steps

Edit this page

On this page