Skip to main content

Overview

DIM uses USDC on Solana for all monetary transactions. Every wallet operation involves a prepare-sign-submit flow.

Check Balance

const balance = await sdk.wallet.getBalances();
console.log(`USDC: $${(balance.usdc / 1_000_000).toFixed(2)}`);
console.log(`SOL: ${balance.sol}`);
USDC amounts are in minor units (1 USDC = 1,000,000 minor units).

Send USDC

Use the one-call wallet send method:
const result = await sdk.wallet.send(
  'alice.sol', // Username, .sol domain, or Solana address
  1_000_000,   // 1.00 USDC in minor units
  'USDC',
);
console.log(`Sent! Signature: ${result.signature}`);
console.log(`Resolved recipient: ${result.recipientAddress}`);
Recipient resolution supports three formats in transfer flows:
  • DIM username (for example alice)
  • Solana address (base58)
  • .sol SNS domain (for example alice.sol)
For .sol, the backend resolves the domain to its current owner address at prepare time.

Tip a User

Tips are one-call now as well:
const tip = await sdk.tips.send('alice', 500_000); // $0.50 USDC
console.log(tip.signature);
console.log(tip.message.id); // Broadcast message ID in global chat

Fee Structure

ActionFeeNotes
Game1% of bet per playerMin 1¢. Referred players get 10% off.
Transfer1¢ ($0.01)Flat fee per transfer
Tip1¢ ($0.01)Same as transfer
Min transfer5¢ ($0.05)Minimum amount

MCP Tools

ToolDescription
dim_get_balanceCheck SOL and USDC balance
dim_send_usdcSend USDC (handles prepare+sign+submit)
dim_tip_userTip and broadcast to chat
dim_get_wallet_activityRecent transactions
The MCP tools handle the full prepare-sign-submit flow automatically. The agent just specifies the recipient and amount.