Skip to main content
Glama

sui-balance

Check the balance of addresses across Sui blockchain networks, including mainnet, testnet, devnet, and localnet. Input addresses to retrieve current token balances.

Instructions

Get balance of an address from sui networks

Input Schema

NameRequiredDescriptionDefault
addressesYes
networkNomainnet

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "addresses": { "items": { "type": "string" }, "type": "array" }, "network": { "default": "mainnet", "enum": [ "mainnet", "testnet", "devnet", "localnet" ], "type": "string" } }, "required": [ "addresses" ], "type": "object" }

Implementation Reference

  • The handler function (cb method) that implements the core logic: creates SuiClient, fetches balances in mist for each address using getBalanceInMist, converts to SUI, formats response as JSON.
    async cb(args: BalanceParams, suiClient: SuiClient | null = null) { const addresses = args.addresses.map(address => address.trim()); const client = suiClient ?? new SuiClient({ url: getFullnodeUrl(args.network) }); const promises = []; for (const address of addresses) { promises.push(getBalanceInMist(address, client)); } const getBalanceResults = await Promise.all(promises); const balances = getBalanceResults.map((balanceInMist, index) => { if (balanceInMist === null) return null; const balanceInSui = convertMistToSui(balanceInMist); return { address: addresses[index], mist: balanceInMist.toString(), sui: balanceInSui.toString(), }; }); return this.createTextResponse(JSON.stringify(balances)); }
  • Zod schema defining input parameters: network (SUI networks enum, default mainnet) and array of Sui addresses.
    const balanceParamsSchema = z.object({ network: z.enum(SUI_NETWORKS).default('mainnet'), addresses: z.array(z.string()), });
  • Imports the SuiBalanceTool instance from get-balance.js and includes it in the array of all exported tools, which is later registered in the MCP server.
    import suiBalanceTool from './sui/get-balance.js'; import suiTransferTool from './sui/transfer.js'; import randomSuiAccountTool from './account/gen-random.js'; import genMnemonicTool from './account/gen-mnemonic.js'; import genSuiAccountsByMnemonicTool from './account/gen-by-mnemonic.js'; import getAccountInfoByPriKeyTool from './account/get-info-by-pri-key.js'; export default [ faucetTool, suiBalanceTool, suiTransferTool, randomSuiAccountTool, genMnemonicTool, genSuiAccountsByMnemonicTool, getAccountInfoByPriKeyTool, ];
  • Helper function to fetch SUI coin balance in mist for a given address using SuiClient.getBalance.
    export const getBalanceInMist = async ( address: string, client: SuiClient ): Promise<bigint | null> => { try { const balance = await client.getBalance({ owner: address, coinType: '0x2::sui::SUI', }); return BigInt(balance.totalBalance); } catch (error) { console.error('Error getting balance:', error); return null; } };
  • Helper function to convert balance from mist (big int) to SUI (number).
    export const convertMistToSui = (mist: bigint): number => { return Number(mist) / Number(MIST_PER_SUI); };

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xdwong/sui-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server