Migrating to Ironwood – Keystone Walkthrough
For the Android version of this article, please see here.
For the iOS version of this article, please see here.
Zcash has upgraded, introducing a new shielded pool called Ironwood. This article describes step-by-step migration process for Zodl users on with Keystone wallets.
Please see our primary article on moving your funds to Ironwood and what users ought to know.
The short version
- In addition to being on Zodl v3.9.0, you must upgrade your Keystone firmware to v3.0.2 or later to be compatible with Ironwood.
- Migration on Keystone is similar to both signing transactions as you're used to on Keystone, and the migration process for your Zodl wallet; however, these transactions are much larger in data size, and so both scanning and signing these take time, given the processing power of both the Keystone and your phone. There may also be multiple batches of transactions to sign. Please have patience.
- Although you are signing all Keystone migration transactions in one go, when using 'Migrate with Privacy', transaction submission behaves as it does for your main wallet, which is different on Android vs. iPhone. Android will use background processes to make its best effort to broadcast each transaction once it's time; whereas iPhone will require Zodl to be the active app (and if it's not active, you'll be notified to open Zodl when it's time to send the next transaction).
- If you do not wish to wait, you can also migrate immediately, though this reveals your full balance on-chain.
Step-by-Step
Migration widget: Upon updating Zodl, you'll see a prompt to migrate your Orchard balance to Ironwood. Tap Migrate to begin the process.

Migration options: You'll see two options, one to migrate immediately, another to migrate with privacy. Immediate migration will send your full balance to Ironwood in a single transaction. It's the fastest option, but offers less privacy because the full amount crosses over at once, a figure that is revealed on the blockchain. The rest of this walkthrough describes the 'Migrate with privacy' option.

Summary: On the next screen, you'll receive a summary of how migration works.

Enable Tor Protection: You'll be prompted to enable Tor. We strongly recommend enabling Tor, as not doing so will leak your IP address to the remove server, which is further linked to your migration amounts. The only reason to disable Tor here would be if Tor isn't legally permitted in your region, in which case, please highly consider using a trusted VPN (such as Nym) before continuing.

Allow Background Delivery (Android-only): You do not need to keep Zodl open to continue the migration if you enable background processes for Zodl. This allows it to keep synced and automatically broadcast your migration transactions. If you do not permit this, you'll need to open the app when notified in order to progress through the rest of migration.

Allowing notifications: Zodl can keep you informed of the migration status. Allowing notifications is especially important if you deny background delivery to Zodl, as notifications will tell you when the next transaction is ready to send and to open the app.

Confirm Transfer Plan: This screen shows the plan for each individual migration transaction and their approximate timing. After reviewing, tap 'Start migration'. You'll be prompted for authentication to sign the migration transactions.

Scan the unsigned TX: The QR code on this screen may take some time to generate on your phone, given the large, multi-transaction payload. Have patience. Using your Keystone, initiate a scan of the transaction data presented to you from Zodl as you would normally do when sending. The information contained in this QR code will be large and also take some time to fully scan with your Keystone.
Please note: larger balances will result in needing to sign multiple transaction payload batches. Look for a notice on this screen, such as '(1 of 3)', which indicates the number of batches you'll be signing. Continue until all batches are signed.

Sign with your Keystone: After scanning, you'll see a summary of the transactions you'll be signing with your Keystone. As this includes both the initial split transaction and all subsequent migration transactions, you'll see pagination on your Keystone. Review and sign with your Keystone.
Again, given the size of the transaction data, this will also take some time on your Keystone to fully sign. It will show a QR code once it's ready.

Scan signed transaction: Using your phone, tap on 'Get Signature', and scan the signed transaction batch.

Scheduling...: Your phone will now schedule the broadcasts of each of the individual migration transactions. On this screen, you will not see a progress bar, and it will appear blank until Zodl has fully scheduled the transactions. Be patient on this screen, as it will also take some time.

Migration scheduled: You'll receive confirmation of the schedule, including the estimated time it will take.
- Android: If background shceduling was enabled, Zodl will make its best effort to broadcast these transactions, even while Zodl is not the active app. Please keep your phone on and connected.
- iOS: Similar to migration on Zodl itself, you'll need to have the app open on iPhones in order to broadcast your transactions. When possible, please keep your phone on and connected with Zodl as the active app. If Zodl is closed, notifications will prompt you to open Zodl and broadcast the next migration transaction.

Migration progress: On your main Zodl screen, you'll see a persistent widget informing you of the status of the migration process. Tap 'More' to see details.

Migration progress details: Here you'll see the status of each transfer in the process.

Notifications: If Zodl is not the active screen, you will periodically receive notifications informing you of the migration status. In some cases, it may prompt you to take action in Zodl if the schedule has changed and needs re-approval.

Migration complete: Once migration has completed, you'll be notified by the widget below. Tap 'More' for next steps.

Locking funds: The migration process transfers standardised amounts, which means a remainder from your Orchard funds is not moved by default. This screen allows you to sweep it (which can be indentifiable), or for better privacy, lock it from being inadventently spent when using your Keystone. This lock is only local to this Zodl instance, and does not remain if importing your Keystone wallet into another instance. A future update of Zodl will allow you to unlock these funds.

Viewing your pool balances: On Zodl's screen for your Keystone wallet, you can confirm your migration to Orchard by tapping your balance. This shows a breakdown of your funds across all pools.

Still need help?
If something doesn't look right, or your migration seems stuck after reopening the app, contact us at support@zodl.com and tell us where you are in the flow.