faucet
Request test tokens for Sui blockchain wallets on testnet, devnet, or localnet by providing wallet addresses. Simplify testing and development on Sui networks.
Instructions
Get faucet from sui networks
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | ||
| network | No | devnet |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"addresses": {
"items": {
"type": "string"
},
"type": "array"
},
"network": {
"default": "devnet",
"enum": [
"testnet",
"devnet",
"localnet"
],
"type": "string"
}
},
"required": [
"addresses"
],
"type": "object"
}
Implementation Reference
- src/tools/sui/get-faucet.ts:18-34 (handler)The core handler function (cb method of SuiFaucetTool) that executes the faucet logic: trims addresses, requests faucet for each on the specified network, and returns success/failed lists.async cb(args: FaucetParams) { const addresses = args.addresses.map(address => address.trim()); const promises = []; for (const address of addresses) { promises.push(getFaucet(address, args.network as SuiFaucetNetwork)); } const getFaucetResults = await Promise.all(promises); const result = { succeeds: addresses.filter((_, index) => getFaucetResults[index]), faileds: addresses.filter((_, index) => !getFaucetResults[index]), }; return this.createTextResponse(JSON.stringify(result)); }
- src/tools/sui/get-faucet.ts:6-9 (schema)Zod schema defining input parameters for the faucet tool: network (enum of testnet/devnet/localnet, default devnet) and array of addresses.const faucetParamsSchema = z.object({ network: z.enum(SUI_FAUCET_NETWORKS).default('devnet'), addresses: z.array(z.string()), });
- src/tools/index.ts:1-17 (registration)Registration of the faucet tool: imported as faucetTool from sui/get-faucet.js and included in the exported array of all tools.import faucetTool from './sui/get-faucet.js'; 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, ];
- src/utils/faucet.ts:4-24 (helper)Helper utility function that performs the actual faucet request using @mysten/sui/faucet, returns true on success.export async function getFaucet(address: string, network: SuiFaucetNetwork): Promise<boolean> { // Request faucet try { const response = await requestSuiFromFaucetV1({ host: getFaucetHost(network), recipient: address, }); // Check if response has error if (response?.error) { console.error('Invalid response from faucet:', response.error); return false; } return true; } catch (error) { console.error('====Faucet request failed:', error); return false; } }