Skip to content

Staking Pools

The StakingPoolSDK and StakingPoolFactorySDK manage staking pools — configurable long-duration reward distribution for any token. Staking pools are used by both Akita Protocol and third-party projects across Algorand, providing a public utility for token reward distribution.

import { StakingPoolSDK, StakingPoolFactorySDK } from '@akta/sdk/staking-pool'
const poolFactory = new StakingPoolFactorySDK({ algorand })
// Interact with an existing pool
const pool = new StakingPoolSDK({
algorand,
factoryParams: { appId: poolAppId },
})
const pool = await poolFactory.new({
title: 'AKTA Staking Pool',
type: StakingPoolStakingType.Standard,
marketplace: marketplaceAddr,
stakeKey: { address: stakeKeyAddr, name: 'AKTA' },
minimumStakeAmount: 1_000_000n,
})

With optional parameters:

const pool = await poolFactory.new({
sender: myAddress,
signer: mySigner,
title: 'Gated Staking Pool',
type: StakingPoolStakingType.Standard,
marketplace: marketplaceAddr,
stakeKey: { address: stakeKeyAddr, name: 'AKTA' },
minimumStakeAmount: 1_000_000n,
allowLateSignups: true,
gateId: gateAppId,
maxEntries: 100n,
})
  • Any token — Distribute rewards in any Algorand Standard Asset
  • Long-duration — Configure reward distribution over extended periods
  • Factory pattern — Anyone can create staking pools
  • Impact-based fees — Pool creation fees scale with social impact
  • Used across Algorand — A public utility used by Akita and third-party projects

Staking pool operations through a wallet use the StakingPoolPlugin. See Wallet Plugins.