Quickstart
Get your first AI agent wallet funded and running in under 2 minutes.
Option A: Using the CLI
1. Install the CLI
npm install -g @indiegent/cli2. Log in
indiegent login
# Opens your browser → approve → done3. Create an agent wallet
indiegent agents create --name "Research Bot" --cap 50
# ✓ Agent wallet created
# Name: Research Bot
# Address: 0x7a3f...8b2c
# Cap: $50.004. Fund it
indiegent agents fund "Research Bot" 25
# ✓ Funded $25.00 USDC
# ✓ Gas sponsored (ETH for transaction fees)5. Give your agent the credentials
# Inject wallet credentials into your agent's environment
eval $(indiegent agents env "Research Bot")
# Now your agent process has:
# INDIEGENT_AGENT_KEY=0x... (private key)
# INDIEGENT_AGENT_ADDRESS=0x... (wallet address)
node my-agent.jsThat's it. Your agent now has its own funded wallet and can sign USDC transactions independently.
Option B: Using the Dashboard
- Go to indiegent.com/dashboard
- Connect your wallet (MetaMask, Coinbase Wallet, etc.) or sign up with email
- Click “Create Agent Wallet”
- Name it, set a spending cap
- Send USDC to the displayed wallet address
- Click “Reveal Key” to get the private key, or use the “Copy Env Vars” button
Using the Wallet in Your Agent
JavaScript / TypeScript
import { createWalletClient, http, parseUnits } from "viem";
import { base } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
// Credentials from IndieGent
const account = privateKeyToAccount(process.env.INDIEGENT_AGENT_KEY);
const client = createWalletClient({
account,
chain: base,
transport: http(),
});
// Send $5 USDC to a service
const USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
const tx = await client.writeContract({
address: USDC,
abi: [{
name: "transfer",
type: "function",
inputs: [
{ name: "to", type: "address" },
{ name: "amount", type: "uint256" },
],
outputs: [{ name: "", type: "bool" }],
}],
functionName: "transfer",
args: ["0xRecipientAddress...", parseUnits("5", 6)],
});
console.log("Payment sent:", tx);Python
from web3 import Web3
import os
w3 = Web3(Web3.HTTPProvider("https://mainnet.base.org"))
# Credentials from IndieGent
account = w3.eth.account.from_key(os.environ["INDIEGENT_AGENT_KEY"])
# USDC on Base
usdc = w3.eth.contract(
address="0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
abi=USDC_ABI # standard ERC-20 ABI
)
# Send $5 USDC
tx = usdc.functions.transfer(
"0xRecipientAddress...",
5_000_000 # $5.00 (6 decimals)
).build_transaction({
"from": account.address,
"nonce": w3.eth.get_transaction_count(account.address),
"gas": 100_000,
})
signed = account.sign_transaction(tx)
tx_hash = w3.eth.send_raw_transaction(signed.raw_transaction)
print(f"Payment sent: {tx_hash.hex()}")What's Next?
- How It Works — Understand the full architecture
- CLI Reference — All commands and options
- API Reference — Programmatic access to everything
- Agent Pay Standard — How agents handle 402 payment requests