> For the complete documentation index, see [llms.txt](https://docs.primestaking.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.primestaking.xyz/products/contract-addresses.md).

# Deployed Contracts & Addresses

{% hint style="info" %}
All V3 contracts are live on **XDC Mainnet (chain ID `50`)**. The legacy V2 contracts continue to operate for users who have not migrated — see [Legacy (V2 — historical)](/legacy-v2-historical/legacy.md).
{% endhint %}

This page is the single source of truth for every address the V3 stack interacts with. The UI, indexer, and partner integrations are all wired against the addresses listed here.

***

## V3 — XDC Liquid Staking (psXDC)

| Contract                               | Address                                                                                                                | Type                        | Notes                                                                                                                        |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **`PrimeStakedXDC_V3`**                | [`0x98D916F5773Ac0482b49856f2659d6c32114C4Ba`](https://xdcscan.com/address/0x98D916F5773Ac0482b49856f2659d6c32114C4Ba) | ERC-4626 vault (native XDC) | psXDC v3 share token. **Non-upgradeable** — deployed with a regular constructor, no proxy.                                   |
| **`PrimeStakedXDC_V3MigrationBridge`** | [`0x2927630dfDd66433DbA9370b316EF5a8408d5dD2`](https://xdcscan.com/address/0x2927630dfDd66433DbA9370b316EF5a8408d5dD2) | Migration bridge            | Burns V2 psXDC and mints V3 shares via `migrate(amount, minSharesOut)`. Time-locked treasury controls, daily withdrawal cap. |

***

## V3 — XDC NFTs

| Contract                            | Address                                                                                                                | Type                        | Notes                                                                                                                                                                                                                                                                                                                       |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`XdcStakedNFT`**                  | [`0xf3eB62F0Daf98ab65f0696630621A6ecECDB898E`](https://xdcscan.com/address/0xf3eB62F0Daf98ab65f0696630621A6ecECDB898E) | ERC-721 collection          | **Non-upgradeable**. Stores rarity on-chain; migrated NFTs preserve their legacy `tokenId` (except legacy ids ≥ `10000`, which `XdcNftMigratorV2` remaps into the `5558–9999` band).                                                                                                                                        |
| **`XdcNftStakingVault`** (proxy)    | [`0x9f38dF64eeC71e2408B24217b8D621c6B07E4Da8`](https://xdcscan.com/address/0x9f38dF64eeC71e2408B24217b8D621c6B07E4Da8) | TransparentUpgradeableProxy | User-facing vault for stake / withdraw / claim / lock / merge / `burnAndRedeem`. Uses ERC-7201 namespaced storage.                                                                                                                                                                                                          |
| `XdcNftStakingVault` implementation | [`0x98D4880663ABAF96CAb2C005eb4A56bf1d583990`](https://xdcscan.com/address/0x98D4880663ABAF96CAb2C005eb4A56bf1d583990) | Vault logic                 | Always interact with the proxy above, not this address.                                                                                                                                                                                                                                                                     |
| Vault `ProxyAdmin`                  | [`0xCE17925533C570B3EE5621Df39019b1a5785fb3d`](https://xdcscan.com/address/0xCE17925533C570B3EE5621Df39019b1a5785fb3d) | Proxy admin                 | Owned by the protocol multisig.                                                                                                                                                                                                                                                                                             |
| **`XdcNftMigratorV2`**              | [`0x36Fe37Ca1FEF0e409977a1c28d191B55333cf026`](https://xdcscan.com/address/0x36Fe37Ca1FEF0e409977a1c28d191B55333cf026) | Migrator (**live**)         | The active one-shot migrator: burns legacy NFT → bridges psXDC → mints + stakes new NFT. Additionally **remaps legacy ids ≥ `10000`** (the merge-reserved range) to a free id in `5558–9999`, emitting `LegacyIdRemapped`. **Non-upgradeable**.                                                                             |
| `XdcNftMigrator` (superseded)       | [`0x45e2e91098A8451EA450754784e043bb3F8C7dFb`](https://xdcscan.com/address/0x45e2e91098A8451EA450754784e043bb3F8C7dFb) | Migrator (**paused**)       | The original migrator. **Paused and replaced** by `XdcNftMigratorV2`. It could not migrate the lock-class stragglers (it took a reverting `primeV2.burnToRedeem` path) nor legacy ids ≥ `10000`. Do not use.                                                                                                                |
| **`XdcNftBoostHarvester`**          | [`0x3bEdb37FC873F64BEeFCA551b3A836e59fc18DeA`](https://xdcscan.com/address/0x3bEdb37FC873F64BEeFCA551b3A836e59fc18DeA) | Boost pipe                  | Funds the Synthetix-style boost accumulator via `notifyBoost`. **Non-upgradeable**.                                                                                                                                                                                                                                         |
| **`LegacyMigratorBypassFacet`**     | [`0x64413bAD206b5D90a5010cc683F50086407F25C6`](https://xdcscan.com/address/0x64413bAD206b5D90a5010cc683F50086407F25C6) | Diamond facet (**live**)    | Added to the legacy Diamond via `diamondCut` so locked legacy NFTs migrate in a single transaction. Clears the diamond's `tokenLocked` flag and lets the diamond's own `burnAndRedeem` pay the psXDC — it makes **no** call to the drained v2 staker. Replaced the original facet `0x2756…1836` via a `diamondCut` Replace. |

***

## Partner Staking

These power the white-label [Partner Staking](/partner-staking/partner-staking.md) product. The registry is shared; each partner pool is its own independent `PartnerStakedXDC_V3` deployment, so pool addresses are discovered dynamically via the registry rather than hard-coded here.

| Contract                            | Address                                                                                                                | Type                        | Notes                                                                                                                                                                        |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`PartnerVaultRegistry`**          | [`0x325DEEA5C7c0Ce0D774c4A67EcCaAf1cF8953a67`](https://xdcscan.com/address/0x325DEEA5C7c0Ce0D774c4A67EcCaAf1cF8953a67) | Registry (`Ownable2Step`)   | On-chain directory of partner pools. Codehash-gated registration; PrimeStaking curates which pools are **Verified**. Enumerate pools via `allVaults()` / `verifiedVaults()`. |
| `PartnerStakedXDC_V3` (per partner) | *discover via registry*                                                                                                | ERC-4626 vault (native XDC) | Each partner deploys their own pool. Identical runtime bytecode (15% fee constant) so the registry can verify it by `codehash`.                                              |

***

## Legacy (V2) — still operational

These contracts are kept live so users who choose not to migrate can continue to use the V2 product. Every new deposit and every audited V3 path uses the V3 contracts above.

| Contract                               | Address                                                                                                                | Role                                                                                                                         |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Legacy Diamond (ERC-2535)              | [`0x7a5d364b97126600C0AdDFD5C339230748bcaA17`](https://xdcscan.com/address/0x7a5d364b97126600C0AdDFD5C339230748bcaA17) | Host of all legacy XDC NFT facets. Now also hosts `LegacyMigratorBypassFacet` (`0x6441…25C6`) for one-tx migration.          |
| Drained v2 staker (`PrimeStakerV2XDC`) | [`0x2204E4Db4D45A290e284daa6f6fb52273593B293`](https://xdcscan.com/address/0x2204E4Db4D45A290e284daa6f6fb52273593B293) | The original v2 XDC staker. Drained to \~0; retained for reference only. The bypass facet deliberately does **not** call it. |
| Legacy ERC-721 façade                  | [`0x9D458330e458f11fd1cE7E44B3a66568af8076a0`](https://xdcscan.com/address/0x9D458330e458f11fd1cE7E44B3a66568af8076a0) | The user-visible NFT contract behind the V2 XDC NFTs.                                                                        |
| Legacy psXDC v2 (proxy)                | [`0x9B8e12b0BAC165B86967E771d98B520Ec3F665A6`](https://xdcscan.com/address/0x9B8e12b0BAC165B86967E771d98B520Ec3F665A6) | The V2 psXDC ERC-20 token. Use this address when approving the V2→V3 migration bridge.                                       |

***

## Quick reference for integrators

If you are integrating PrimeStaking from a partner application, the only contracts you ever call directly are:

* `PrimeStakedXDC_V3` — to stake, withdraw, redeem, or read the share price.
* `PrimeStakedXDC_V3MigrationBridge` — only if your users hold V2 psXDC and want to migrate.
* `XdcNftStakingVault` (proxy) — for any NFT-side action.
* `XdcNftMigratorV2` — only during the NFT migration window (the original `XdcNftMigrator` is paused).

The harvester, bypass facet, vault implementation, and ProxyAdmin are operated by the protocol and do not need to be called from partner code.

→ [V3 Architecture](/products/xdc-liquid-staking/v3-architecture.md) → [Smart Contract Reference (psXDC v3)](/products/xdc-liquid-staking/smart-contract-functions.md) → [Smart Contract Reference (XDC NFT v3)](/products/xdc-staking-nfts/smart-contract-functions.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.primestaking.xyz/products/contract-addresses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
