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/cli

2. Log in

indiegent login
# Opens your browser → approve → done

3. Create an agent wallet

indiegent agents create --name "Research Bot" --cap 50
# ✓ Agent wallet created
#   Name:    Research Bot
#   Address: 0x7a3f...8b2c
#   Cap:     $50.00

4. 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.js

That's it. Your agent now has its own funded wallet and can sign USDC transactions independently.


Option B: Using the Dashboard

  1. Go to indiegent.com/dashboard
  2. Connect your wallet (MetaMask, Coinbase Wallet, etc.) or sign up with email
  3. Click “Create Agent Wallet”
  4. Name it, set a spending cap
  5. Send USDC to the displayed wallet address
  6. 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?

IndieGentIndieGent — Independent wallets for independent agents

npm install -g @indiegent/cli