Cascade

Try Cascade

Edit your Lukso Universal Profile right from the docs and watch the LSP-3 metadata land permanently on Cascade.

The Demo page lets you update your real Universal Profile on Lukso mainnet. Every field you fill in becomes either a JSON value (links, tags) or a Cascade-stored asset (images, 3D avatar) referenced from a hash-bound LSP-2 VerifiableURI written to your UP via setData.

Nothing in the demo is a sandbox; the transactions are real, the Cascade actions are real. The dApp does the same thing the Universal Profile tutorial walks through step-by-step, just wrapped in a UI.

You'll need the Universal Profile Browser Extension connected to a UP that holds enough LYX for gas.

What happens when you click "Save to Cascade"

  1. Resizes your profile image to 256/512/1024px in the browser, then uploads each variant plus the source image to the cascade-api at api.lumera.help/upload.
  2. Uploads the background image and 3D avatar (if provided) the same way.
  3. Builds a single LSP-3 JSON document that references every Cascade URL with per-asset verification.{method, data} (a keccak256 of the file bytes).
  4. Uploads that JSON to Cascade as well.
  5. Encodes a VerifiableURI over (JSON hash, JSON URL) using @erc725/erc725.js.
  6. Calls setData(LSP3Profile, value) on your UP. The browser extension prompts for the signature; once mined, your profile is updated.

Every Cascade upload becomes its own action on lumera-testnet-2 with its own tx_hash, all listed in the ledger panel of the demo.

Notes on this embedded demo

  • The demo POSTs uploads from the browser directly to cascade-api using a quota-capped public key (docs-public). A standalone production dApp normally proxies uploads through a server-side route handler so the bearer token stays off the client — see the Universal Profile tutorial for that pattern.
  • The wallet client is hard-coded to mainnet (viem's lukso chain, ID 42). To target testnet, run a local copy of the dApp and swap lukso for luksoTestnet.
  • The embedded component lives at components/lukso-try-cascade/ in the docs repo. The permanent-up-app reference dApp that ships alongside these docs is structurally identical, minus the docs-site theming.

Next steps

Edit this page

On this page