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

**URL:** <https://forum.aztec.network/t/raven-house-ux-first-state-migration-for-raven-house-nft-marketplace/8397>\
**Category:** Aztec\
**Tags:** rfgp\
**Created:** [January 23, 2026, 11:05am UTC](https://forum.aztec.network/t/raven-house-ux-first-state-migration-for-raven-house-nft-marketplace/8397 "2026-01-23T11:05:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![satyambnsal](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.aztec.network/satyambnsal/32/1785_2.png) [@satyambnsal](https://forum.aztec.network/u/satyambnsal)\
**Post date:** [January 23, 2026, 11:05am UTC](https://forum.aztec.network/t/raven-house-ux-first-state-migration-for-raven-house-nft-marketplace/8397/1 "2026-01-23T11:05:16Z")

</div>

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

## Contact Details

**Email:** [satyambnsal@gmail.com](mailto:satyambnsal@gmail.com)  
**Telegram:** @satyambansal  
**Twitter:** @ravenhousenft  
**GitHub:** [https://github.com/raven-house](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](https://app.ravenhouse.xyz)  
Bridge: [https://bridge.ravenhouse.xyz](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](https://github.com/raven-house/raven-contracts/blob/main/nft_contract/src/main.nr#L670)

- Storage proof circuits:  
[https://github.com/raven-house/circuits/tree/main/rh-storage-proof](https://github.com/raven-house/circuits/tree/main/rh-storage-proof)

* * *

## User Flow (Old → New Roll-up)

### Public NFTs

 ![public_nfts_migration_ravenhouse](https://europe1.discourse-cdn.com/flex013/uploads/aztec/original/2X/4/406b31a0623888d0004c50f9468e90b9f467c42c.png)

### Private NFTs

 ![private_nfts_migration_ravenhouse](https://europe1.discourse-cdn.com/flex013/uploads/aztec/original/2X/7/7c72165bbab454fc468c008a1e583978f2397f58.png)

**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
