Skip to main content

What Is the Phala Staking Contract?

The Phala Staking Contract lives on Ethereum Mainnet and allows users to convert PHA to vPHA.
In simple terms:
  • You deposit PHA into the staking contract
  • The contract mints and sends you vPHA (an ERC-20 token)
  • vPHA is used for:
    • Community governance (Snapshot voting)
    • Staking & collateral on Phala L2
    • GPU mining (required collateral + reward token)
In short:
PHA = liquid token,
vPHA = governance & staking token for the Phala ecosystem.

Official Contract Addresses (Verify Before Use)

Always double-check that you are interacting with the correct contracts:
  • PHA (ERC20): 0x6c5bA91642F10282b576d91922Ae6448C9d52f4E
  • vPHA (ERC20): 0x21d6eC8fc14CaAcc55aFA23cBa66798DAB3a0ec0
⚠️ Only use the addresses above.
Do not stake or transfer tokens to any unknown or unverified contract.

How to Stake PHA and Receive vPHA

The process works with any EVM wallet such as MetaMask, Rabby, Safe, etc.
official Phala staking page: https://app.phala.network/staking .

Step 1 — Prepare Your Wallet

  1. Switch wallet to Ethereum Mainnet
  2. Make sure your wallet has:
    • PHA (ERC20) — the tokens you want to stake
    • ETH — to pay Ethereum gas fees

Step 2 — Connect to the Phala Staking Page

  1. Open the official Phala staking page
  2. Click “Connect Wallet”
  3. Approve the connection in your wallet

Step 3 — Stake PHA → Receive vPHA

  1. Enter the amount of PHA you want to stake
  2. First-time users must click Approve to allow the contract to use PHA
  3. Once approved, click Stake
  4. Confirm the transaction in your wallet
After the transaction is confirmed:
  • Your PHA is deposited into the staking contract
  • You receive vPHA equal in value to the PHA you staked, based on the real-time vPHA-PHA exchange rate
  • As the staking contract accumulates rewards, the exchange rate increases over time, meaning vPHA represents a growing amount of PHA when you unstake.
To display vPHA, manually add the ERC-20 contract address in your wallet.

Unstaking vPHA to PHA

Unstaking converts your vPHA back to PHA. The process takes 21 days to complete.

Step 1: Initiate Unstaking

  1. Go to app.phala.network/staking
  2. Connect your wallet (must be on Ethereum Mainnet)
  3. Click Unstake
  4. Enter the amount of vPHA to unstake
  5. Confirm the transaction and pay gas fees
After the transaction confirms, your vPHA enters a 21-day unlock period.

Step 2: Wait for Unlock Period

  • Your tokens are locked for 21 days
  • You can track the unlock countdown in the staking dashboard
  • You cannot cancel an unstaking request once initiated

Step 3: Claim Your PHA

After the 21-day period ends:
  1. Return to app.phala.network/staking
  2. Connect your wallet
  3. You’ll see your unlocked PHA available to claim
  4. Click Claim to receive your PHA
  5. Confirm the transaction
You must manually claim your PHA after the unlock period. Tokens do not automatically transfer to your wallet.

Unstaking from Phala L2

If your vPHA is on Phala L2 (not Ethereum Mainnet):
  1. First, bridge your vPHA to Ethereum using bridge.phala.network
  2. You need ETH on Phala L2 for gas fees (~0.001 ETH is sufficient)
  3. Once on Ethereum, follow the unstaking steps above
Need ETH on Phala L2? Bridge a small amount from Ethereum first using bridge.phala.network.

Troubleshooting

“Insufficient ETH” error when bridging from L2:
  • You need ETH on Phala L2 for gas, not just on Ethereum
  • Bridge ~0.001 ETH from Ethereum to Phala L2 first
Can’t see vPHA in portfolio:
  • Check if your vPHA is on Phala L2 or Ethereum
  • Add the vPHA token contract to your wallet: 0x21d6eC8fc14CaAcc55aFA23cBa66798DAB3a0ec0
vPHA balance seems lower than expected:
  • vPHA represents staked value at a conversion rate that increases over time
  • Check your deposit history at the bottom of the staking page
  • If you provided liquidity on Uniswap, your vPHA won’t show in the Phala app

Safety Notes

Always verify:
  • Contract addresses before any transaction
  • Transaction prompts match your intended action
  • You are connected to Ethereum Mainnet
Never send tokens to unknown addresses. Only use the official contract addresses listed in this documentation.