Unagii Docs
  • Introduction
  • Unagii Vaults
    • Overview
    • Understanding Vaults
    • Strategies
    • Architecture
    • Smart Contracts
    • Security
    • F.A.Q
    • Vault Integration
  • Unagii Stake
    • Overview
    • Ethereum
      • Kyber
      • Skale
    • Tendermint
      • Band
      • Cosmos
      • Kava
      • Persistence
      • Terra
      • Agoric
      • Akash
      • Archway
      • Shentu
      • Kujira
      • Osmosis
      • Passage
      • Quicksilver
      • Celestia
      • dYdX
    • Others
      • Sui
      • Solana
    • Security
    • F.A.Q
    • Stake Integration
      • Kyber
      • Skale
      • Tendermint Ecosystem
      • Sui
      • Solana
    • Page
  • DeFi
    • What is DeFi?
    • What are the risks in DeFi?
    • What are Stablecoins?
      • How to earn yield on Stablecoins?
        • What are Lending Pools?
        • What are Liquidity Pools?
  • Unagii Account
Powered by GitBook
On this page
  • Get Chain Total Staked and Staked Ratio
  • Get SUI Balances
  • Get Delegations
  • Build Staking Transaction
  • Build Unstake Transaction

Was this helpful?

  1. Unagii Stake
  2. Stake Integration

Sui

If you require assistance or need additional information to integrate Unagii Stake, reach out to us at support@unagii.com.

Get Chain Total Staked and Staked Ratio

GET https://app.unagii.com/api/v1/noneth/sui/total_staked

Response
{
  "success": true,
  "error_code": 0,
  "result": {
    "totalStaked": "8080549257.345467127",
    "stakedRatio": "0.8080549257345467127",
    "swuStaked": "36707660.044502961"
  }
}

Get SUI Balances

GEThttps://app.unagii.com/api/v1/noneth/sui/delegator/available_balance/{address}

Path Parameters

Name
Type
Description

address

string

Account address

Headers

Name
Type
Description

X-UNAGII-AUTH-TOKEN

string

Access token

Response
{
    "success": true,
    "error_code": 0,
    "result": {
        "address": "0x429d0fb21e8f4dff411162524125ec00eaf03f50c177306c615d496d0567f819",
        "balance": "0.962998824",
        "lockedBalance": {}
    }
}

Get Delegations

GET https://app.unagii.com/api/v1/noneth/sui/delegator/delegations/{address}

This endpoint allows you to get all delegations for an address

Path Parameters

Name
Type
Description

address

string

Account address

Headers

Name
Type
Description

X-UNAGII-AUTH-TOKEN

string

Access token

Response
{
    "success": true,
    "error_code": 0,
    "result": [
        {
            "validator": {
                "name": "StakeWithUs",
                "description": "Secured Staking Made Easy. Put Your Crypto to Work. Hassle Free.",
                "staked": "36707660.044502961",
                "commission": 0.05
            },
            "stakes": [
                {
                    "stakedSuiId": "0x00b7a5ba9ff16376a20bce02f60f255a02d2b75c9881c137a90a70519a0d9e70",
                    "stakeRequestEpoch": "22",
                    "stakeActiveEpoch": "23",
                    "principal": "1",
                    "status": "Active",
                    "estimatedReward": "0.051344734"
                },
                {
                    "stakedSuiId": "0x57fdb24a213960262a1bf4272f8cd738c6a88283311ad04a299d6e6e64b83339",
                    "stakeRequestEpoch": "22",
                    "stakeActiveEpoch": "23",
                    "principal": "1",
                    "status": "Active",
                    "estimatedReward": "0.051344734"
                }
            ]
        }
    ]
}

Build Staking Transaction

import SUI from "@mysten/sui.js";

const connection = new SUI.Connection({
  fullnode: SUI_FULL_NODE,
});
const provider = new SUI.JsonRpcProvider(connection);
const res = await provider.getCoins({
  owner: WALLET_ADDRESS,
  coinType: '0x2::sui::SUI',
});
const stakeAmount = new BN(amount).multipliedBy(1e9).toNumber();
const tx = await SUI.SuiSystemStateUtil.newRequestAddStakeTxn(
  provider,
  res.data.map(item => item.coinObjectId),
  stakeAmount,
  VALIDATOR_ADDRESS
);
const transaction = tx.serialize();

Build Unstake Transaction

const SUI_SYSTEM_ADDRESS = "0x3";
const SUI_SYSTEM_MODULE_NAME = "sui_system";
const WITHDRAW_STAKE_FUN_NAME = "request_withdraw_stake";
const SUI_SYSTEM_STATE_OBJECT_ID = SUI.normalizeSuiObjectId("0x5");
const tx = new TransactionBlock();
tx.moveCall({
  target: `${SUI_SYSTEM_ADDRESS}::${SUI_SYSTEM_MODULE_NAME}::${WITHDRAW_STAKE_FUN_NAME}`,
  arguments: [
    tx.object(SUI_SYSTEM_STATE_OBJECT_ID),
    tx.object(STAKE_ID),
  ],
});
const transaction = tx.serialize()

PreviousTendermint EcosystemNextSolana

Last updated 10 months ago

Was this helpful?