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)
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
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.
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.
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 originalXdcNftMigratoris 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 → Smart Contract Reference (psXDC v3) → Smart Contract Reference (XDC NFT v3)
Last updated