API Reference

🔑

Simplify institutional ETH staking without commingling assets with other institutions.

Figment Vaults allow you to stake any amount of ETH, providing your customers with a seamless and user friendly staking experience. Distinct from staking pools, Figment Vaults maintain the segregation of your funds without commingling with other institutions. Additionally, you have the flexibility to choose your MEV relays, as well as the geographic location of your validators, a feature not available with traditional pools.

A Vault is a private smart contract that:

  • accepts ETH deposits
  • manages validator activation/deactivation
  • distributes ETH rewards appropriately to depositors of the Vault
  • handles sub-accounting of different depositors
  • auto-compounds rewards
  • brings commission fees on-chain

The following is a guide for you to build “easy & any amount ETH staking” in your platform by integrating our API. If you’re interested in using the vaults solution as a click-to-stake solution via UI, please reach out here.

Sign up for Figment app and get access to API

You can access our APIs by creating an API key in the Figment app.

One-time setup of your Vault

Complete the one-time setup of your private Figment Vault with our team. We will walk you through this process so we can answer any of your questions, please reach out here.

Depositing into your Vault

Your Vault is private and doesn’t pool funds with other institutions. This means you will need to add your user’s addresses and your own to the allowlist before depositing.

In order to allow your users (or yourself) to deposit into your Vault, you will use the deposit endpoint. After a user has deposited, they will begin earning rewards immediately as long as your Vault has at least one active validator (at least 32 ETH in TVL).

Deposit Flow

Deposit Flow

Withdrawing from your Vault

Your users (or yourself) can withdraw from your Vault at anytime. You will initiate this process by first calling the withdraw endpoint.

If the amount to withdraw is less than the amount of unbonded ETH sitting in the Vault at the time, then you only need to wait the 24 hour safety period before claiming. Once you initiate a withdrawal request, you are no longer earning rewards.

If the amount to withdraw is greater than the amount of unbonded ETH sitting in Vault at the time, then you need to wait for x amount of validators to be exited. This process can take a few days and depends on the current ETH withdrawal queue.

After successfully signing the withdraw transaction, you will use the Exit Positions endpoint to get the exit_queue_position object which contains information about the addresses' withdrawal request. When there is an amount shown as withdrawable, the address can now claim their ETH with the claim_withdrawal endpoint.

Withdrawal Flow

Withdrawal Flow

Signing & Broadcasting these Transactions

Depositing, withdrawing, claiming, and updating your allowlist are all actions that take place on chain and therefore need to be signed and broadcasted. Depending on your custody solution you will have different ways to sign a transaction. We have built guides to help you navigate this:

Get Rewards, Staked Balances, and History

You can show your users their staked balance, rewards earned, and action history by using the following endpoints.


FAQs

When does my vault start earning rewards?

The vault begins earning rewards as soon as one validator is active. Once the vault accumulates at least 32 ETH in deposits, it triggers the activation of a validator. Depending on ETH network activity, the activation time for a validator can take a few days or more.

When do depositors of my vault start earning rewards?

If the vault has at least one active validator, then as soon as a user deposits into the vault, they earn rewards based on how much they’ve deposited as a proportion of the total volume in the vault. Rewards information updates every 12 hours and we have an endpoint that you can use to show users how much they’ve earned each day (in ETH).

How do depositors earn rewards?

Both consensus layer and execution layer rewards that are generated from the validators of a vault are accumulated in the vault, averaged and associated back to all depositors using the percentage of ETH they have contributed to the vault. In order to claim these rewards, a depositor must withdraw from the vault. Rewards are updated every ~ 12 hours.

How does rewards auto-compounding work?

Rewards accumulate in the vault and therefore are automatically included in the next time the vault reaches 32 ETH which would trigger another validator to activate. At current reward rates, staking 9,600 ETH would earn 32 ETH per month. Auto-compounding takes care of spinning up future validators.

Is there a Figment Vault for networks other than ETH?

We built Figment Vaults to make the ETH staking experience more similar to staking on other dPOS networks like Solana. These other networks are already set up in an intuitive way, so we don’t need to create a vault for them. You can use our Staking API to stake to those networks.