Deployed Contracts & Addresses
Canonical address book for PrimeStaking V3.2, covering the psXDC vault, airdrop distributor, referral program, XDC NFT v3 stack, spot venue, and legacy contracts.
This page is the single source of truth for every address the V3.2 stack interacts with. The UI, indexer, and partner integrations are all wired against the addresses listed here.
V3.2: XDC Liquid Staking (psXDC)
PrimeStakedXDC_V3_2
ERC-4626 vault (native XDC)
The live psXDC token and vault. Non-upgradeable, deployed with a regular constructor, no proxy. All staking, withdrawals, and share-price reads go here. Permanent-ledger model: rewards accrue at any backing level via the manager reward lane.
V32AirdropDistributor
Airdrop distributor (finalized)
Batch-minted the snapshot balances of every V3.1 holder onto V3.2 at launch. Permanently finalized; it can never mint again. Kept for on-chain audit trail.
PrimeStakedXDC_V3_2MigrationBridge (v2 → V3.2)
Migration bridge
For V2 stragglers only: burns V2 psXDC and mints V3.2 shares 1:1. It never accepts V3.1 (the airdrop already credited every V3.1 holder 1:1). The vault's migrationBridge repoint to this address is scheduled behind the 24h governance timelock; migration reopens in the app once it executes.
Referral program
ReferralRegistry
Referral binder
stakeWithReferral(referrer) binds one immutable referrer to the caller and forwards the stake to the vault in one transaction. Minimum bind stake: 100 XDC.
ReferralRewards
Epoch Merkle distributor
Pays referrer fee-share per epoch against a posted Merkle root. Roots are immutable per epoch and can never be posted underfunded.
Superseded liquid-staking vaults (do not use)
PrimeStakedXDC_V3_1 (prior vault)
Superseded and paused. Every holder balance at the snapshot was mirrored 1:1 onto V3.2. The V3.1 token is frozen and has no further function.
PrimeStakedXDC_V3 (original vault)
Superseded and paused (July 8, 2026: transfers frozen after residual dead-token trading was observed on abandoned pools). Every V3 balance was mirrored 1:1 onto the live token at the snapshot. On XDC this address is the retired token — do not confuse it with the psXDC OFT, which uses the same address on other chains.
V31AirdropDistributor
The prior (V3 → V3.1) airdrop distributor, finalized.
V3: XDC NFTs
The NFT vault proxy was upgraded in place during the V3.2 cutover, so the user-facing addresses (collection + vault proxy) are unchanged. The vault now holds psXDC V3.2 shares and supports multiple lock tiers with expiring boosts.
XdcStakedNFT
ERC-721 collection
Non-upgradeable. Stores rarity on-chain; migrated NFTs preserve their legacy tokenId (except legacy ids ≥ 10000, which the migrator remaps into the 5558–9999 band).
XdcNftStakingVault (proxy)
TransparentUpgradeableProxy
User-facing vault for stake / withdraw / claim / lock / merge / burnAndRedeem. Uses ERC-7201 namespaced storage. Now holds psXDC V3.2 shares.
XdcNftStakingVault implementation
Vault logic
Upgraded 2 Oct 2026: adds adminSetLockBoost(tokenIds, units), used to give NFTs whose lock was carried over from V2 the 365-day tier's boost (no storage changes; see Locked NFTs). Previous implementation 0xC86d…8F58 (14 Sep 2026) added notifyBoostShares(shares) so the boost can be funded directly in psXDC shares. Before that, 0xF39b…148B (July 2026 V3.2 cutover) repointed psXDC via migrateV3Token, added multi-tier locks (30/90/180/365 days, +1/+3/+6/+12 boost units) with boost expiry, and the permissionless pokeExpired keeper hook. Always interact with the proxy above, not this address.
Vault ProxyAdmin
Proxy admin
Owned by the protocol multisig.
XdcNftMigrator (current)
Migrator (holds MIGRATOR_ROLE since 9 Aug 2026)
One-shot migrator: burns legacy NFT → bridges psXDC → mints + stakes the new NFT. Remaps legacy ids ≥ 10000 into 5558–9999, emitting LegacyIdRemapped. Non-upgradeable. The V2 → V3 migration is effectively complete: 1,431 NFTs were ported (20 of them with their v2 lock preserved; those locks carried 0 boost units until 2 Oct 2026, see Locked NFTs) between 15 May and 4 Jul 2026, through the migrators listed below; no migrations have gone through this instance yet.
XdcNftBoostHarvester (V3.1 wiring)
Boost pipe (optional)
Holds FEE_ROUTER_ROLE; forwards native XDC into the vault's boost accumulator via feed / forwardPending → notifyBoost. Its harvest / claimAndForward path is wired to the frozen V3.1 psXDC and is not usable. Since 14 Sep 2026 the operations wallet 0x440cD932957a06cfae5a4e1D29D504069B6f113d also holds FEE_ROUTER_ROLE and funds the boost directly with notifyBoost (XDC) or notifyBoostShares (psXDC). Non-upgradeable.
LegacyMigratorBypassFacet (V3.1 wiring)
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.
Superseded NFT-stack contracts (roles revoked, do not use)
XdcNftMigrator v1 (V3 wiring)
Migrated 217 NFTs (15 May – 1 Jun 2026). MIGRATOR_ROLE revoked 2 Jun 2026.
XdcNftMigratorV2 (V3 wiring)
Migrated 1,192 NFTs (2 – 28 Jun 2026). MINTER_ROLE / MIGRATOR_ROLE revoked at the V3.1 cutover (3 Jul 2026).
XdcNftMigratorV2 (V3.1 wiring)
Straggler run (2 NFTs, 4 Jul 2026) plus the 20 locked-NFT migrations. MIGRATOR_ROLE revoked 9 Aug 2026.
Old XdcNftBoostHarvester
FEE_ROUTER_ROLE revoked at the V3.1 cutover.
Old LegacyMigratorBypassFacet
Replaced on the legacy Diamond via diamondCut.
Spot Trading (psXDC/XDC DEX)
The protocol-owned spot venue behind primestaking.xyz/spot. The factory and router are token-agnostic and carried over from the original deployment; the pair and limit-order book were redeployed against V3.2 in July 2026.
psXDC/WXDC pair (V3.2)
UniswapV2Pair
The live trading pool, seeded at NAV (1:1). Holds V3.2 psXDC and canonical WXDC.
SpotLimitOrders (V3.2)
Limit-order book
Non-custodial on-chain limit orders settled against the pair. Makers can always cancel for a full refund of unfilled escrow.
UniswapV2Router02
Router
Swap and liquidity entry point; wired to the canonical WXDC.
UniswapV2Factory
Factory
PrimeStaking-owned; created every pair.
WXDC (canonical)
Wrapped XDC
Shared network-wide wrapper, not operated by PrimeStaking.
Superseded spot contracts (do not use)
psXDC/WXDC pair (V3.1)
Holds the now-frozen V3.1 token. LPs were credited their psXDC side in the V3.2 snapshot airdrop; because V3.1 is frozen the pool can no longer be unwound on-chain, so the remaining WXDC leg is refunded manually via the migration-exit page.
SpotLimitOrders (V3.1)
Paused. SELL escrow (psXDC) was migrated to V3.2 in the airdrop; BUY orders escrow native XDC and can still be cancelled for a full refund.
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.
Multi-chain: psXDC OFT bridge + rate oracle
psXDC bridges to Base, Arbitrum, and BNB Chain via LayerZero V2. The bridge uses a lockbox on XDC; the rate oracle publishes the psXDC/XDC exchange rate to each chain for lending integrations.
PsxdcOFTAdapter
XDC
0xefbb71078cba6425EB6fd957ac1F8a235502D71a
Lockbox: locks/unlocks real psXDC. One canonical adapter for the whole mesh.
PsxdcRateSender
XDC
0x7215e3a0a1F385127eAC1E84D2F30dBF00c76b04
Broadcasts previewRedeem(1e18) to all destination oracles. Permissionless push().
PsxdcOFT
Base
0x98D916F5773Ac0482b49856f2659d6c32114C4Ba
Mint/burn psXDC representation.
PsxdcOFT
Arbitrum
0x98D916F5773Ac0482b49856f2659d6c32114C4Ba
Same address (deployed at matching nonce).
PsxdcOFT
BNB Chain
0x98D916F5773Ac0482b49856f2659d6c32114C4Ba
Same address.
PsxdcOFT
HyperEVM
0x98D916F5773Ac0482b49856f2659d6c32114C4Ba
Same address.
PsxdcRateOracle
Base
0x2927630dfDd66433DbA9370b316EF5a8408d5dD2
AggregatorV3Interface psXDC/XDC rate for money markets.
PsxdcRateOracle
Arbitrum
0x2927630dfDd66433DbA9370b316EF5a8408d5dD2
Same address.
PsxdcRateOracle
BNB Chain
0x2927630dfDd66433DbA9370b316EF5a8408d5dD2
Same address.
PsxdcRateOracle
HyperEVM
0x2927630dfDd66433DbA9370b316EF5a8408d5dD2
Same address.
Every pathway is verified by four required DVNs (Canary, LayerZero Labs, Horizen, Nethermind) — the same operator set that services the live XDC lanes. LayerZero endpoint IDs: XDC 30365, Base 30184, Arbitrum 30110, BNB Chain 30102, HyperEVM 30367.
Legacy (V2)
Legacy Diamond (ERC-2535)
Host of all legacy XDC NFT facets. Also hosts the live LegacyMigratorBypassFacet (0x2786…5e13) for one-tx migration.
Drained v2 staker (PrimeStakerV2XDC)
The original v2 XDC staker. Drained to ~0; retained for reference only.
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.1 migration bridge.
Indexers (Goldsky subgraphs)
Public GraphQL endpoints the app uses. Versions change when the schema or mapping changes; the previous version stays up for a while after a bump.
Liquid staking (V3.2 vault)
https://api.goldsky.com/api/public/project_cmfycyhiq9jha01wa1hl9fswz/subgraphs/stakingv3/0.0.9/gn
Stakes, redemptions, withdrawal queue, NAV history. Source: staking-v3-indexer.
XDC NFTs (V3)
https://api.goldsky.com/api/public/project_cmfycyhiq9jha01wa1hl9fswz/subgraphs/xdc-nfts-v3/0.0.5/gn
Per-NFT positions read back from vault.nftState on every event (exact shares / weight / lock), boost notifications and claims, migrations. Protocol.totalBoostNotified and totalBoostClaimed are denominated in psXDC shares. Source: xdc-nft-v3-indexer.
Quick reference for integrators
If you are integrating PrimeStaking from a partner application, the only contracts you ever call directly are:
PrimeStakedXDC_V3_2(0xDc74…c734) to stake, withdraw, redeem, or read the share price.PrimeStakedXDC_V3_2MigrationBridge(0x313e…c280), only if your users hold V2 psXDC and want to migrate.ReferralRegistry(0x9765…16B3), only if you want a first stake to bind a referrer (stakeWithReferral).XdcNftStakingVault(proxy,0x9f38…4da8) for any NFT-side action.XdcNftMigrator(0x87Ab…556A, currentMIGRATOR_ROLEholder), only if a legacy V2 NFT still needs migrating (the migration itself completed in July 2026).
The harvester, bypass facet, distributor, 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