Aftermath
Search
K

Liquid Staking

Stake SUI and receive afSUI to earn a reliable yield, and hold the most decentralized staking derivative on Sui.

afSUI SDK

const staking = new Aftermath("TESTNET").Staking();

Transactions

Staking Positions

const stakingPositions = await staking.getStakingPositions({
walletAddress: "0x..",
});

Stake

const tx = await staking.getStakeTransaction({
walletAddress: "0x..",
suiStakeAmount: 1_000_000_000n, // 1 Sui
validatorAddress: "0x..",
});

Unstake

const tx = await staking.getUnstakeTransaction({
walletAddress: "0x..",
afSuiUnstakeAmount: 1_000_000_000n, // 1 AfSui
isAtomic: true,
});

Inspections

Staked SUI TVL

const suiTvl = await staking.getSuiTvl();
console.log(suiTvl);
// 9_540_200_000n

afSUI Exchange Rate

// (1 SUI = x afSUI)
const afSuiExchangeRate = await staking.getAfSuiExchangeRate();
console.log(afSuiExchangeRate);
// 1.000149000231

afSUI API

const testnetStakingAddresses = {
staking: {
packages: {
events:
"0x58e6bdd081ae6035141871a1c7cdf82895e944a8b7673f78d22e370a07cbf99b",
lsd:
"0x58e6bdd081ae6035141871a1c7cdf82895e944a8b7673f78d22e370a07cbf99b",
afsui:
"0x5783fa2298e7301a1c7f99ce45d4a207478fbf3003eca9482ae823d6f6c7cd60",
},
objects: {
stakedSuiVault:
"0x690f36f9c5249b0c4c9b3efdf8a2864c750a8021037360e3b7bedc9ceafb277f",
safe:
"0x091686a693e86929f91ef539d867fae334a33d124bc2c204dcb3b53dd9016501",
treasury:
"0xf3d41534e43ecf36da8657b48350a09a3e50eeb2ce61f8ceb80e6d2f85828bc0",
referralVault:
"0x8d357115058f22976cd01c5415116d9aca806d1ded37eecd75d87978f404e927",
validatorConfigsTable:
"0xc9b9c0f1115793a24e0551609e51daa5ffe2b11429d12b46fdf8a3b0bfc0e908",
},
},
},
const afApi = new AftermathApi(
new SuiClient({
transport: new SuiHTTPTransport({
url: "https://testnet.mainnet.sui.io",
}),
}),
testnetStakingAddresses,
new IndexerCaller("TESTNET"),
);
const stakingApi = afApi.Staking();

Transaction Command Examples

const stakingApi = afApi.Staking();
const suiCoin = await afApi.Coin().fetchCoinWithAmountTx({
walletAddress: "0x...",
coinType: "0x02::sui::SUI",
coinAmount: BigInt(1_423_837_387), // ~1.4 SUI
});
const afSuiCoin = stakingApi.stakeTx({
tx,
suiCoin,
validatorAddress: "0x...",
});
stakingApi.atomicUnstakeTx({
tx,
afSuiCoin,
withTransfer: true
});