For Token Creators

The goal of this page is to help token creators, DAOs, or other persons looking to setup Armada's SPL Token Staking program for you token.

Creating a StakePool

To use the SPL Token Staking program, a wallet (or governance) must initialize the StakePool. Initialization requires the mint address of the SPL Token that will be staked as well as the stake weighting parameters. Stake weighting scales linearly from 1x to the maximum weight where 1x is at the minimum stake duration and the max weight is at the maximum stake duration.

For example, if the max weight was 2x, the min duration 0 days, and max duration is 1 year then staking for 6 months would have a 1.5x stake weight.

None of the above parameters can change once the StakePool has been initialized. This is to protect the accounting mechanics and prevent an imbalance of the Stake Weight Token Representationamounts.

Creating a RewardPool

After creating a StakePool, the authority will have access to the StakePool's admin page. This can be found at the following link when replacing [STAKE_POOL_KEY] with you StakePool's public key.[STAKE_POOL_KEY]/admin

From the StakePool's admin page, you can click "+ Add RewardPool" to navigate to the RewardPool creation page. All that is needed to create a RewardPool is the SPL Token Mint address that the RewardPool will hold.

Stake Weight Token Representation

Existing staking programs typically have a data structure to store weight stake, which cannot be used in any other program. This is what creates the common dilemma for token holders. What separates Armada’s SPL Token Staking program from the other staking programs on Solana is that the Staker will receive a tokenized representation of their weighted stake. This tokenized representation can then be used for other purposes (i.e. voting in SPL Governance).

It’s worth noting that the SPL mint of the weighted stake representation may have different decimals than the mint that was staked. This is intentional and necessary to handle possible arithmetic errors from scaling the staked amount by the weight.


Having metadata for the Stake Weight Token Representation is extremely important so the user's understand that it is a legit token and not a scam airdrop. This token is required for unstaking, so any user that burns the token will be unable to reclaim their initial staked tokens.

To update your StakePool's token, please visit the StakePool's admin page at the following URL[STAKE_POOL_KEY]/admin

Metadata supports the metaplex standard and thus can accept:

  • Symbol

  • Ticker symbol (recommend prepending "s" to staked token symbol)

  • (Optional) URL to additional metadata json file adhering to metaplex token standard

Staking Integration

For integrating into your own product, you can use the published NPM package or consume the Anchor IDL from on-chain directly.

Staking Website

Note: the pre-built websites have been costly to develop and maintain. The Armada team is re-evaluating the product and how best to help those that need websites. In the meantime, it's best to integrate using the NPM package mentioned above.

Armada has a pre-built website to make it easy for organizations to get staking up and running. This is not currently available from the Armada website, so please reach out to the organization via discord by opening up a support ticket.

We will ask you to review and sign a legal contract before handing off the pre-built website.

Please have the following prepared for the organization:

  • StakePool key

  • RPC url

  • Primary color (in hex)

  • Link to image of icon/logo

The built website will be a zip file that contains the contents of a static website. This can be deployed on any CDN, AWS S3, Github pages, etc.

Last updated