Skip to main content

Staking Assets in Puffer

Puffer supports staking of the following assets on the protocol:

  • ETH
  • stETH
  • wstETH

Before staking, make sure to follow the Getting Started guide to setup the PufferClient.

Staking ETH

With your address at hand, make the transaction to deposit ETH to mint pufETH.

const { transact, estimate } = pufferClient.vault.depositETH(walletAddress);

const weiAmount = BigInt(1e18);

// Returns gas estimate of the transaction.
const gasEstimate = await estimate();
// Execute the transaction for depositing ETH.
const txHash = await transact(weiAmount);

Alternatively, you can set the pufETH recipient to a different address.

const { transact, estimate } = pufferClient.vault.depositETH(recipientAddress);

const weiAmount = BigInt(1e18);

// Returns gas estimate of the transaction.
const gasEstimate = await estimate();
// Execute the transaction for depositing ETH.
const txHash = await transact(weiAmount);

Staking stETH

const weiAmount = BigInt(1e18);
const { transact, estimate } = await pufferClient.depositor.depositStETH(walletAddress, weiAmount);

// Returns gas estimate of the transaction.
const gasEstimate = await estimate();
// Execute the transaction for depositing stETH.
const txHash = await transact();

Staking wstETH

const weiAmount = BigInt(1e18);
const { transact, estimate } = await pufferClient.depositor.depositWstETH(walletAddress, weiAmount);

// Returns gas estimate of the transaction.
const gasEstimate = await estimate();
// Execute the transaction for depositing wstETH.
const txHash = await transact();