> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nacrelabs.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# wPRL overview

> The Solana Token-2022 mint representing native PRL on Solana.

**wPRL** ("wrapped PRL") is the Solana Token-2022 representation of native
PRL. Every wPRL in circulation is backed 1:1 by PRL held in Pearl reserves
under the Nacre validator quorum.

## At a glance

| Property                  | Value                                                                                            |
| ------------------------- | ------------------------------------------------------------------------------------------------ |
| Name                      | `Wrapped Pearl` (Token-2022 `TokenMetadata` extension, embedded on the mint)                     |
| Symbol                    | `wPRL`                                                                                           |
| Decimals                  | `8` (matches PRL satoshis)                                                                       |
| Token program             | SPL Token-2022                                                                                   |
| Mint authority            | `nacre_two_way_peg` PDA (seed `b"mint_authority"`)                                               |
| Freeze authority          | **None** — wPRL is never frozen                                                                  |
| Metadata update authority | Admin multisig (3-of-5)                                                                          |
| Withdrawal escrow         | Program-owned vault ATA owned by `nacre_two_way_peg`                                             |
| Transfer fee              | Token-2022 `TransferFeeConfig` extension, capped on-chain at **100 bps**; current rate **0 bps** |
| Supply model              | Mint-on-deposit, escrow-then-burn-on-redemption                                                  |

<Note>
  wPRL is a **Token-2022** mint. The protocol may configure a transfer fee
  via the on-chain `set_transfer_fee` instruction, which enforces a hard cap
  of **100 basis points** (`MAX_TRANSFER_FEE_BPS`). The current rate is
  **0 bps**, but Token-2022-aware wallets and integrators must still handle
  the `TransferFeeConfig` extension correctly in case the rate is raised in
  the future. Bridge fees (mint / burn) are separate and described below.
</Note>

## Contract addresses

<Tabs>
  <Tab title="Mainnet">
    | Contract                             | Address |
    | ------------------------------------ | ------- |
    | `wPRL` SPL mint                      | `TBD`   |
    | `nacre_two_way_peg` program          | `TBD`   |
    | `nacre_liquidity_management` program | `TBD`   |
    | `nacre_layer_ca` program             | `TBD`   |
    | `nacre_layer_fee_management` program | `TBD`   |
    | `nacre_protocol_config` program      | `TBD`   |
    | Admin multisig (3-of-5)              | `TBD`   |
    | Protocol treasury                    | `TBD`   |
  </Tab>

  <Tab title="Testnet (Pearl signet ↔ Solana devnet)">
    | Contract                             | Address |
    | ------------------------------------ | ------- |
    | `wPRL` SPL mint                      | `TBD`   |
    | `nacre_two_way_peg` program          | `TBD`   |
    | `nacre_liquidity_management` program | `TBD`   |
    | `nacre_layer_ca` program             | `TBD`   |
    | `nacre_layer_fee_management` program | `TBD`   |
    | `nacre_protocol_config` program      | `TBD`   |
    | Admin multisig (3-of-5)              | `TBD`   |
    | Protocol treasury                    | `TBD`   |
  </Tab>
</Tabs>

## Fees

Nacre charges fees only at the bridge boundary. There are three components on
both **mint** (deposit) and **burn** (withdrawal):

| Component            | What it is                                               | Who keeps it                     |
| -------------------- | -------------------------------------------------------- | -------------------------------- |
| **Miner fee**        | Pearl network fee for the sweep / redemption transaction | Pearl miners (passthrough)       |
| **Validator margin** | Fixed satoshi amount per validator attestation           | Validators (distributed monthly) |
| **Protocol fee**     | Basis-point fee on the amount crossing the bridge        | Protocol treasury                |

The math the on-chain program enforces:

```
user_net = amount − miner_fee − validator_margin − protocol_fee
protocol_fee = amount × protocol_fee_bps / 10_000
```

### Current parameters

<Note>
  All fee parameters are set in the on-chain `ProtocolConfig` account and can be
  adjusted by the admin multisig (subject to timelock).
</Note>

| Parameter                               | Mint (deposit)          | Burn (withdraw)         |
| --------------------------------------- | ----------------------- | ----------------------- |
| `protocol_fee_bps`                      | `TBD` bps               | `TBD` bps               |
| `validator_margin_sats_per_attestation` | `TBD` sats              | `TBD` sats              |
| Miner fee                               | dynamic (Pearl mempool) | dynamic (Pearl mempool) |

## Token functionality

Because wPRL is a Token-2022 mint, it supports the standard Token-2022
operations out of the box (subject to the active `TransferFeeConfig`):

* **Transfer** — send wPRL to any Solana address. If the protocol has set a
  non-zero transfer fee, Token-2022 withholds the configured percentage on
  each user-to-user transfer (currently 0 bps).
* **Approve / delegate** — grant another account the right to spend on your
  behalf (e.g. for DEX routing).
* **Associated Token Accounts** — wallets create ATAs automatically.
* **Burn** — anyone can burn their own wPRL, but burning *outside* the
  withdrawal flow does **not** release PRL on Pearl. Always redeem via the
  Nacre app or by calling `request_withdrawal` on `nacre_two_way_peg`
  (which escrows your wPRL into the bridge's pending withdrawal vault
  before it is burned on Pearl confirmation). Note that a direct `Burn`
  on a Token-2022 mint with a non-zero transfer fee can also withhold the
  configured fee.

<Warning>
  **Do not** send wPRL to centralized exchanges or contracts that do not
  explicitly support wPRL — they may not credit your deposit, and if they burn
  the token outside the Nacre flow, the underlying PRL becomes permanently
  unredeemable.
</Warning>

## Where to go next

<CardGroup cols={2}>
  <Card title="Mint wPRL" icon="plus" href="/wprl/mint">
    Lock PRL on Pearl, receive wPRL on Solana.
  </Card>

  <Card title="Burn wPRL" icon="minus" href="/wprl/burn">
    Redeem wPRL for PRL on Pearl.
  </Card>
</CardGroup>
