Raven House | UX-First State Migration for raven house NFT marketplace

Raven House: UX-First State Migration for raven house NFT marketplace

Contact Details

Email: satyambnsal@gmail.com
Telegram: @satyambansal
Twitter: @ravenhousenft
GitHub: https://github.com/raven-house

Summary

We propose a hybrid, UX-first approach to state migration for the Raven House NFT marketplace during Aztec Alpha roll-up upgrades. The objective is to design a generalizable migration pattern that prioritizes user experience while being explicit about trust assumptions and constraints.

Aztec currently does not provide a canonical cross-rollup identity, and wallets such as Azguard intentionally do not expose low-level account data (e.g. master public keys) to applications for security reasons. Combined with the impracticality of asking users to manage wallets across multiple roll-ups simultaneously, these constraints make purely trustless migration approaches difficult for consumer-facing applications today.

We propose a two-path migration framework, separating public and private state:

  1. Public State (Public NFTs)
    The core challenge for public state migration is linking a user’s address on the old roll-up to their address on the new roll-up, as both addresses will differ. We address this via a user-generated migration secret key. Public NFT ownership and metadata are exported off-chain in encrypted form, indexed by this secret. On the new roll-up, users retrieve their exported state using the same secret and explicitly re-mint their NFTs through on-chain transactions. Optional recovery mechanisms are supported via linked identities (Twitter, Discord, zkPassport already supported on nft marketplace app).

  2. Private State (Private NFTs)
    Private NFTs are migrated using a purely on-chain, self-migration flow based on storage proofs. Users generate inclusion proofs for their private NFT notes on the old roll-up and import these notes and proof on the new roll-up to reclaim ownership, without relying on off-chain trust.

This project will deliver a working prototype demonstrating migration between two roll-ups, reusable NFT migration patterns, and clear documentation of UX and trust tradeoffs. While optimized for NFTs, the approach generalizes to applications using custom notes, offering a pragmatic path for application-level migration during Aztec Alpha.

Start and End Date

Start: January 27, 2026 Immediately upon grant approval
**Working Prototype: ** February 20, 2026
Final Delivery: March 6th, 2026

About Us

Raven House is a privacy-first NFT marketplace built on Aztec and live on devnet.
We also operate a ZK-passport-compliant Ethereum ↔ Aztec bridge, currently live on devnet:

NFT Marketplace: https://app.ravenhouse.xyz
Bridge: https://bridge.ravenhouse.xyz

Our products include:

  • A configurable NFT collection launch platform (private/public minting, whitelists, scheduling)
  • A privacy-preserving NFT marketplace (offers, transfers, listings)
  • ZK proofs of NFT ownership for off-chain access control
  • A ZK-passport-compliant Ethereum ↔ Aztec bridge

As an application team directly impacted by Alpha-phase upgrades, we are well-positioned to explore realistic migration designs grounded in real-world UX constraints.

Migration Approach

Category: Hybrid (Category C)

  • Public NFTs: Off-chain attestation + on-chain re-mint
  • Private NFTs: Purely on-chain self-migration via storage proofs

Technical Architecture

Public NFT Migration

  1. On the old roll-up, the user generates a migration secret key via the Raven House UI.
  2. Public NFT ownership and metadata are exported and encrypted using the migration secret.
  3. Encrypted exports are stored off-chain (database).
  4. After the upgrade, the user creates a new wallet on the new roll-up.
  5. The user enters the migration secret key to retrieve their exported public NFT data(social recovery options available via Discord/Twitter/ZK Passport)
  6. The user explicitly re-mints their NFTs on the new roll-up via on-chain transactions.

Migration Secret Key Recovery
Raven House already supports linking wallets to:

  • Twitter accounts
  • Discord accounts
  • ZK Passport identities

These linked identities can be used to recover the migration secret key on a new wallet, improving UX without introducing new trust dependencies.

Private NFT Migration

  • Raven NFT contracts already support note storage proofs via the get_note method.
  • On the old roll-up, users generate inclusion proofs for all private NFT notes they own.
  • Notes and associated proofs (potentially across multiple collections) are exported and encrypted using the migration secret key.
  • On the new roll-up, users import the notes and proofs to reclaim private NFT ownership.
  • This flow requires no off-chain trust beyond data availability.

Relevant references:

  • get_note method:

https://github.com/raven-house/raven-contracts/blob/main/nft_contract/src/main.nr#L670


User Flow (Old → New Roll-up)

Public NFTs

Private NFTs

Total interactions: ~3–4 transactions

Trust Assumptions (Explicit)

  • Public NFT migration relies on Raven House infrastructure(mainly indexer) to store encrypted exports
  • Private NFT migration is fully verifiable and trustless on-chain

Generalizability

The proposed pattern generalizes to:

  • NFT collections
  • Low-stake public state based application using migration secret key and data export
  • Custom Notes based applications that can use storage proof approach

The explicit separation of public vs. private state migration is broadly applicable across Aztec applications.

Grant Milestones & Roadmap

Milestones

  1. Public NFT export and re-mint prototype
  2. Private NFT storage-proof migration prototype
  3. Local testnet demo simulating two roll-ups
  4. UX walkthrough and design documentation

Grant Amount Requested

US$20,000

Justification:

  • Dual migration paths (public + private)
  • On-chain Noir development and off-chain UX tooling
  • Documentation and reusable test harness for other teams