Deployed contracts and addresses
Canonical address book for StakeXDC V3.2, covering the psXDC vault, airdrop distributor, referral program, XDC 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)
| Contract | Address | Type | Notes |
|---|---|---|---|
PrimeStakedXDC_V3_2 | 0xDc74c0DaED82ae94486DeeF22991d2F54173c734 | 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 | 0x9ADb9Dfc340375113042b4722e780D34B1123e47 | 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 | 0x313e8d6Ad3D16be6318dF2AF5a54A87Aea42c280 | Legacy migration bridge (operator-only) | Burns legacy V2 psXDC and mints V3.2 shares 1:1 for the few remaining V2 holders. It never accepts V3.1 (the airdrop already credited every V3.1 holder 1:1). Not exposed in the StakeXDC app; listed for completeness of the on-chain inventory. |
Referral program
| Contract | Address | Type | Notes |
|---|---|---|---|
ReferralRegistry | 0x9765BE3fd9e0d450bD46Ef2A30A0Feb4B15616B3 | 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 | 0xD910E7E0dC457Ccd425E9a5cF716b0F6B7045549 | 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)
| Contract | Address | Status |
|---|---|---|
PrimeStakedXDC_V3_1 (prior vault) | 0xa7FD1c5601348633018003C90aE568d1ff7973e4 | 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) | 0x98D916F5773Ac0482b49856f2659d6c32114C4Ba | 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 | 0x3b7185844451a57CC45807243477e442ff1A3553 | The prior (V3 → V3.1) airdrop distributor, finalized. |
Spot Trading (psXDC/XDC DEX)
The protocol-owned spot venue behind stakexdc.com/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.
| Contract | Address | Type | Notes |
|---|---|---|---|
| psXDC/WXDC pair (V3.2) | 0x60189924A43947bE7Bf0350E81be0D2f00D95034 | UniswapV2Pair | The live trading pool, seeded at NAV (1:1). Holds V3.2 psXDC and canonical WXDC. |
SpotLimitOrders (V3.2) | 0xcd81d7d83101884D0B070153A0EBC9cD6C14f6B9 | 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 | 0xf77440C4Dc3Dcd5Bb93DaA863BF93Fc306EC0791 | Router | Swap and liquidity entry point; wired to the canonical WXDC. |
UniswapV2Factory | 0x3a718EB1b4b06968F78a0a3b7e3dF07037E83f5d | Factory | StakeXDC-owned; created every pair. |
WXDC (canonical) | 0x951857744785E80e2De051c32EE7b25f9c458C42 | Wrapped XDC | Shared network-wide wrapper, not operated by StakeXDC. |
Superseded spot contracts (do not use)
| Contract | Address | Status |
|---|---|---|
| psXDC/WXDC pair (V3.1) | 0x14A11af8980ea7e18B18cAbf4721B61586Bab087 | 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 by the team (contact [email protected]). |
SpotLimitOrders (V3.1) | 0x89dB7715fFc5B8b2C4A604BdD49b006df201247a | 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. |
| Old psXDC/WXDC pair (V3) | 0x43a4557d0AF08929680387B2A6edae8068C02FE6 | Retired original-V3 pool. |
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 | 0x325DEEA5C7c0Ce0D774c4A67EcCaAf1cF8953a67 | Registry (Ownable2Step) | On-chain directory of partner pools. Codehash-gated registration; StakeXDC 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, BNB Chain and HyperEVM 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.
| Contract | Chain | Address | Notes |
|---|---|---|---|
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.
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.
| Data | Endpoint | Notes |
|---|---|---|
| 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. |
Quick reference for integrators
If you are integrating StakeXDC 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.ReferralRegistry(0x9765…16B3), only if you want a first stake to bind a referrer (stakeWithReferral).
The airdrop distributor, the rate sender and the legacy migration bridge are operated by the protocol and do not need to be called from partner code. The vault has no proxy and no implementation contract.
Smart Contract Reference
Two contracts make up Partner Staking: PartnerStakedXDC_V3_2 (the per-partner vault; legacy pools run PartnerStakedXDC_V3) and PartnerVaultRegistry (the shared directory).
Audits
All StakeXDC smart contracts undergo independent external audits before deployment and whenever significant updates are introduced.