Skip to main content

Staking API Overview

Figment's Staking API drastically increases the speed at which developers are able to add new custodial and staking functionalities for many Proof-of-Stake (PoS) assets. Staking API abstracts away all network-specific work and allows API interaction in the exact same way regardless of network or the type of action your user wishes to take.

The Staking API gets you to market faster, by reducing research and discovery work by weeks and the engineering time by months.

Using the Staking API's concepts of flows, actions, inputs, and payloads, it is possible to build dynamic UIs to collect data and guide users through each workflow without the need to hard code specifics for a given network.

Staking Workflow Without Staking API

Staking Workflow Without Staking API

Staking Workflow With Staking API

Staking Workflow With Staking API

Staking API Core Concepts

Flows

The Staking API is based around the concept of a Flow, a specific set of actions to be completed. For example, staking SOL on Solana is one Flow type, and un-staking NEAR is another. A Flow may have multiple steps but will not be considered complete until the delegation is active or the un-staking process is finished.

Actions

At each step in the Flow, Staking API's response contains a JSON object with each possible action that can be taken. For example, the first step in staking on Solana requires SOL be held in a stake account. To achieve this, the API response received from the Staking API indicates two possible actions:

  • assign_stake_account to use an existing inactive account.
  • create_stake_account to create and fund a new account.

Inputs

For each action, a number of inputs indicates what data needs to be collected and submitted to the Staking API in order to build a transaction.

For example, a delegation transaction for Solana requires validator_address; the vote address of the validator to which the stake is delegated. Each input includes a display which can be used for human readable input field labels, as well as a description which can be used as a tool tip or other means of clarifying the value that is being collected.

Payloads

For each step in a Flow where a transaction must be signed, the response from the Staking API includes a serialized transaction payload ready for signature. It is your responsibility to manage signing the transaction and submitting the signed Payload back to the Staking API for broadcasting to the network.

Using the Staking API

Now that you are familiar with the core concepts the Staking API uses to navigate complex Flows on various PoS networks, you can take a deeper look at how they all work together in practice. Check out our guide to Working With Staking API Flows.

Figment has also published an NPM package for decoding and signing Staking API transactions: https://www.npmjs.com/package/@figmentio/slate

Learn how to use it with the guide Signing Transactions with Figment's NPM Package

Mainnet Validators

While the Staking API allows you to provide any validator address you wish for staking flows, we provide Figment's mainnet validators here for your convenience.

NetworkValidator Address
AvalancheNodeID-GW7CvXwkPFDsfFHrix1SA148NHF5ZnSXs
Cosmoscosmosvaloper1hjct6q7npsspsg3dgvzk3sdf89spmlpfdn6m9d
EthereumN/A (direct delegation - no public validators possible)
NEARfigment.poolv1.near
Polkadot **148TcjWBiBQT4oYE6EGY4Q94242sFnaG4g1gogJhe2Yhiz8N
Polygon0x6ae6c540c7b110d5c01cb9bc23297a013f9f4982
SolanaCcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
info

** Due to the way nominations are managed by the Polkadot protocol, we recommend proxying nomination rights to Figment and allowing us to manage nominations on your behalf. Please review the guide Setup a Staking Nomination Proxy, or contact us directly in order to discuss this option.

Testnet Explorers

We generally can not guarantee consistent availability of testnet validators, so we provide links to a block explorer's testnet validator index when possible.

NetworkLink to Testnet Validators
Avalanchehttps://explorer-xp.avax-test.network/validators
Cosmoshttps://explorer.theta-testnet.polypore.xyz/validators
Ethereumhttps://prater.beaconcha.in/validators
NEARhttps://explorer.testnet.near.org/nodes/validators
Polkadothttps://westend.subscan.io/validator
Polygonhttps://staking.polygon.technology/validators
Solanahttps://explorer.solana.com/?cluster=testnet

Testnet Faucets

For your convenience we provide the links to the supported protocols testnet faucets so you can get some testnet tokens and test the Staking API.

NetworkTestnet Faucet
Avalanchehttps://faucet.avax.network
CosmosThe faucet is located on Comsos Discord server. In the testnet-faucet channel, you need to type $request <COSMOS_TESTNET_ADDRESS> theta to get your testnet ATOM tokens.
Ethereumhttps://goerli-faucet.mudit.blog
NEARNEAR gives you 200 NEAR testnet tokens when you create a new testnet account.
PolkadotThe faucet is located at Matrix.org messaging app. In the chat interface, you need to type !drip <WESTEND_ADDRESS> to get your WND tokens.
Polygonhttps://faucet.polygon.technology
Solanahttps://solfaucet.com