Your AI agent has 20 specialized tools for Radix blockchain operations, organized into 6 categories.
Account & Wallet Operations
get_account_info
Get account details including address, public key, metadata, and basic XRD balance.
Schema: { account_address?: string }
await agent.run("Show my account details");
await agent.run("Get account info for account_tdx_...");
get_balances
List all token balances and NFT collections for an account.
Schema: { account_address?: string }
await agent.run("What's my XRD balance?");
await agent.run("Show all balances for account_tdx_...");
fund_stokenet_wallet
Fund wallet with testnet XRD from faucet (Stokenet only).
Schema: { account_address?: string }
await agent.run("Fund my wallet with testnet XRD");
Token Operations
create_fungible_resource
Create new fungible tokens.
Schema: { input: string }
Input: 'name,symbol,initialSupply[,divisibility]'
or JSON
await agent.run("Create token GameCoin with symbol GAME and supply 1000000");
create_non_fungible_resource
Create new NFT collections.
Schema: { input: string }
Input: 'name,description[,maxSupply,iconUrl]'
or JSON
await agent.run("Create NFT collection CryptoArt with description 'Digital art collection'");
mint_fungible_resource
Mint additional supply of existing fungible tokens.
Schema: { resource_address: string, amount: string }
await agent.run("Mint 1000 more tokens of resource_tdx_...");
mint_non_fungible_resource
Mint new NFTs in existing collections.
Schema: { resource_address: string, nft_data: object }
await agent.run("Mint NFT with metadata in collection resource_tdx_...");
transfer_tokens
Transfer fungible tokens or NFTs between accounts.
Schema: { input: string }
Input Formats:
- Fungible:
'toAddress,amount[,resourceAddress]'
or JSON
- NFT:
'toAddress,resourceAddress,nftId'
or JSON
await agent.run("Send 100 XRD to account_tdx_...");
await agent.run("Transfer NFT #001 from collection resource_... to account_tdx_...");
Component Interaction
call_component_method
Call methods on Radix components (smart contracts).
Schema: { component_address: string, method_name: string, args?: any[] }
await agent.run("Call get_price method on component_tdx_...");
get_component_state
Get state information from any Radix component.
Schema: { component_address: string }
await agent.run("Get state of component_tdx_...");
Validator Operations
stake_xrd
Stake XRD with validators to earn rewards.
Schema: { validatorAddress: string, amount: string }
await agent.run("Stake 100 XRD with validator_tdx_...");
unstake_xrd
Unstake XRD from validators.
Schema: { validatorAddress: string, amount: string }
await agent.run("Unstake 50 XRD from validator_tdx_...");
claim_xrd
Claim staking rewards from validators.
Schema: { validatorAddress: string }
await agent.run("Claim rewards from validator_tdx_...");
DeFi Operations
create_two_resource_pool
Create a new two-resource liquidity pool using Ociswap Pool V2.
Schema: { input: string }
Input: 'resource1,resource2,amount1,amount2[,feeTier,assetRatio1,assetRatio2,hookAddress]'
or JSON
// Standard pool with 0.3% fee
await agent.run("Create pool with 1000 XRD and 2000 TOKEN with 0.3% fee");
// Imbalanced pool (80/20)
await agent.run("Create 80/20 weighted pool with 8000 XRD and 2000 TOKEN");
// Hooked pool with custom logic
await agent.run("Create hooked pool with hook component_tdx_... using 1000 XRD and 2000 TOKEN");
create_hooked_pool
Create an advanced pool with custom hook logic.
Schema: { input: string }
Input: 'resource1,resource2,amount1,amount2,hookAddress[,feeTier]'
or JSON
await agent.run("Create hooked pool with hook component_tdx_... using 5000 XRD and 10000 TOKEN");
add_liquidity
Add liquidity to existing Ociswap pools.
Schema: { input: string }
Input: 'poolAddress,amount1,amount2[,minAmount1,minAmount2]'
or JSON
// Add liquidity with automatic ratio calculation
await agent.run("Add 1000 XRD and 2000 TOKEN to pool component_tdx_...");
// Add liquidity with slippage protection
await agent.run("Add liquidity to pool component_tdx_... with 1000 XRD and 2000 TOKEN, min 990 XRD and 1980 TOKEN");
remove_liquidity
Remove liquidity from pools by burning LP tokens.
Schema: { input: string }
Input: 'poolAddress,lpAmount[,minAmount1,minAmount2]'
or JSON
// Remove liquidity
await agent.run("Remove 100 LP tokens from pool component_tdx_...");
// Remove with minimum output protection
await agent.run("Remove 50 LP tokens from pool component_tdx_... expecting min 490 XRD and 980 TOKEN");
swap_tokens
Execute token swaps through Ociswap pools.
Schema: { input: string }
Input: 'poolAddress,fromResource,toResource,amountIn[,minAmountOut]'
or JSON
// Basic swap
await agent.run("Swap 100 XRD for TOKEN in pool component_tdx_...");
// Swap with slippage protection
await agent.run("Swap 100 XRD for TOKEN in pool component_tdx_... expecting min 195 TOKEN");
flash_loan
Execute flash loan operations (borrow and repay in single transaction).
Schema: { input: string }
Input: 'poolAddress,resourceAddress,amount,callbackComponent[,callbackData]'
or JSON
// Execute flash loan
await agent.run("Flash loan 10000 XRD from pool component_tdx_... using callback component_tdx_...");
// Flash loan with callback data
await agent.run("Flash loan 5000 TOKEN from pool component_tdx_... with callback component_tdx_... and data 0x1234");
get_epoch
Return current Radix network epoch information.
Schema: No parameters
await agent.run("What's the current epoch?");
Quick Reference
Category | Tool Count | Tools |
---|
Account & Wallet | 3 | get_account_info, get_balances, fund_stokenet_wallet |
Token Operations | 5 | create_fungible_resource, create_non_fungible_resource, mint_fungible_resource, mint_non_fungible_resource, transfer_tokens |
Component Interaction | 2 | call_component_method, get_component_state |
Validator Operations | 3 | stake_xrd, unstake_xrd, claim_xrd |
DeFi Operations | 6 | create_two_resource_pool, create_hooked_pool, add_liquidity, remove_liquidity, swap_tokens, flash_loan |
Utility | 1 | get_epoch |
Direct Usage
import { createDefaultRadixTools } from "radix-agent-kit";
// Create all tools
const tools = createDefaultRadixTools(gateway, builder, wallet, networkId);
// Find specific tool by name
const balanceTool = tools.find(t => t.name === "get_balances");
const result = await balanceTool.func({ account_address: "account_tdx_..." });
Address Formats:
- Accounts:
account_tdx_...
(testnet) / account_rdx_...
(mainnet)
- Resources:
resource_tdx_...
(testnet) / resource_rdx_...
(mainnet)
- Components:
component_tdx_...
(testnet) / component_rdx_...
(mainnet)
- Validators:
validator_tdx_...
(testnet) / validator_rdx_...
(mainnet)
Amount Parameters: String numbers, positive values only
Input Formats: Tools accept comma-separated strings or JSON objects
Error Handling
❌ Invalid account address format
❌ Insufficient XRD balance
❌ Component not found
🌐 Network timeout - retry
Factory Pattern
All tools use factory functions:
export function createToolName(
gatewayClient: RadixGatewayClient,
transactionBuilder: RadixTransactionBuilder,
wallet: RadixWallet,
networkId: number
): DynamicStructuredTool
Responses are generated using AI and may contain mistakes.