UI walkthrough placeholder. Exact button labels and screenshots will be
filled in once the Nacre app is published.
How redemption works at a glance
Your wPRL is not burned the moment you click “Withdraw”. Instead, it moves into a pending withdrawal vault controlled by thenacre_two_way_peg
program. The vault holds your wPRL in escrow until one of two things happens:
- Pearl confirms your redemption → the program burns the escrowed wPRL and your PRL is in your Pearl wallet.
- The request expires or you cancel → the program transfers the escrowed wPRL back to your Solana wallet. No burn, no re-mint, nothing destroyed.
Prerequisites
- A Solana wallet holding the wPRL you want to redeem and a small amount of SOL for transaction fees.
- A Pearl address where you want to receive PRL.
Step-by-step
Open the Nacre app and click Withdraw
Connect the Solana wallet that holds your wPRL and select Withdraw PRL.
(UI: withdraw form — screenshot TBD.)
Enter amount and Pearl recipient
Enter the amount of wPRL to redeem and the Pearl address that should
receive PRL. The app shows you the net PRL you’ll receive after fees.
Submit the withdrawal request
The app calls
request_withdrawal on nacre_two_way_peg. This:- Transfers your wPRL into the pending withdrawal vault — a program-owned token account that holds it in escrow.
- Creates a
WithdrawalRequestPDA describing where the PRL should be sent. - Emits a
WithdrawalRequestCreatedevent the validators see.
No transfer-fee surprises. wPRL is a Token-2022 mint that supports
a configurable transfer fee. For the user → vault escrow step the
program waives that fee (it harvests and refunds the withheld amount in
the same transaction), so the vault holds the full amount you asked to
withdraw.
Validators claim a Cold Reserve UTXO
Validators independently observe
WithdrawalRequestCreated, agree on
which Cold Reserve UTXO will fund your redemption, and post a claim
on-chain. This binds the chosen UTXO to your request — no two open
requests can claim the same UTXO.Wait for the Pearl redemption
The aggregator broadcasts the Pearl redemption transaction (Cold
Reserve → your recipient). The Nacre app shows live progress:
- Requested — withdrawal request created; wPRL escrowed on Solana.
- UTXO claimed — validator quorum has bound a Cold Reserve UTXO to your request.
- Signed — quorum has signed the Pearl redemption transaction.
- Broadcast — redemption transaction in the Pearl mempool.
- Confirmed on Pearl — Pearl confirms the redemption.
- Burned on Solana —
complete_redemptionruns; escrowed wPRL is burned and your request is closed.
Fees
Burn fees follow the same three-component structure as mint fees. See Fees for the current parameters.How long does it take?
| Phase | Typical duration |
|---|---|
| Solana withdrawal request (escrow) | < 1 minute |
| Cold Reserve UTXO claim on Solana | seconds |
| Validator quorum signing + Pearl broadcast | seconds to minutes |
| Pearl redemption confirmation | 1 Pearl block (~TBD) |
| Solana attestation + escrow burn | seconds |
| End-to-end | TBD |
What if it doesn’t go through?
If the redemption is not completed before the request’s expiry, anyone can callcancel_expired_withdrawal (the Nacre app does this for you). This
returns the full escrowed amount from the vault to your Solana wallet
via a Token-2022 transfer — no fee, no re-mint, no token destroyed. The
Cold Reserve UTXO that was bound to your request is freed for a future
request.
Troubleshooting
I submitted the withdrawal but PRL hasn't arrived
I submitted the withdrawal but PRL hasn't arrived
Check the request status in the Nacre app. If the redemption has been
broadcast it will appear in your Pearl wallet after one confirmation. If
the request is stuck for more than a few hours, contact support (
TBD).
If the request reaches its expiry without completing, you (or anyone)
can cancel it and the escrowed wPRL will be returned to your wallet in
full.I want to cancel a pending withdrawal
I want to cancel a pending withdrawal
Withdrawals that have not yet been signed by the quorum can be cancelled
from the Nacre app, which returns the escrowed wPRL to your wallet.
Once a Pearl redemption has been broadcast, the request can no longer be
cancelled — wait for it to confirm.
I burned wPRL with the SPL burn instruction directly
I burned wPRL with the SPL burn instruction directly
The SPL
Burn instruction destroys tokens but does not release PRL
on Pearl. There is no recovery path — only withdrawals initiated via
request_withdrawal redeem the underlying PRL. Always use the Nacre
app or call nacre_two_way_peg directly.