Deployed Contracts & Addresses

Canonical address book for PrimeStaking V3 — psXDC vault, migration bridge, XDC NFT v3 stack, and legacy contracts kept available for users who have not yet migrated.

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).

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

ERC-4626 vault (native XDC)

psXDC v3 share token. Non-upgradeable — deployed with a regular constructor, no proxy.

PrimeStakedXDC_V3MigrationBridge

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

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)

TransparentUpgradeableProxy

User-facing vault for stake / withdraw / claim / lock / merge / burnAndRedeem. Uses ERC-7201 namespaced storage.

XdcNftStakingVault implementation

Vault logic

Always interact with the proxy above, not this address.

Vault ProxyAdmin

Proxy admin

Owned by the protocol multisig.

XdcNftMigratorV2

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)

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

Boost pipe

Funds the Synthetix-style boost accumulator via notifyBoost. Non-upgradeable.

LegacyMigratorBypassFacet

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

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)

Host of all legacy XDC NFT facets. Now also hosts LegacyMigratorBypassFacet (0x6441…25C6) for one-tx migration.

Drained v2 staker (PrimeStakerV2XDC)

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

The user-visible NFT contract behind the V2 XDC NFTs.

Legacy psXDC v2 (proxy)

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 ArchitectureSmart Contract Reference (psXDC v3)Smart Contract Reference (XDC NFT v3)

Last updated