Use indie.money with AI Assistants
Connect Claude, ChatGPT, or any AI assistant to indie.money and manage services using natural language
Written By pvdyck
Last updated 10 days ago
Use indie.money with AI Assistants
indie.money is a marketplace for automation services. Builders publish n8n workflows as services, and anyone can purchase, own, and run them β paying per execution with stablecoins.
indie.money exposes every operation through the Model Context Protocol (MCP) β the open standard Claude, ChatGPT, Cursor, and other AI assistants use to talk to external tools. Once connected, your assistant can browse the marketplace, create a wallet, buy services, and run workflows for you in plain English.
This page is the hands-on guide to using that connection.
Quick start
indie.money runs on two environments β pick one:
1. Connect your assistant
Add indie.money as an MCP server in your assistant's settings (swap the URL for the environment you picked):
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "indie-money": { "url": "https://executor.indie.money/mcp" } }}Claude Code (.claude/settings.json):
{ "mcpServers": { "indie-money": { "url": "https://executor.indie.money/mcp" } }}Other MCP-capable clients (Cursor, Windsurf, etc.) follow the same pattern β point them at the /mcp URL.
2. Create a wallet
"Create a wallet on indie.money."
You'll receive a wallet key (format wk_Ab3xY9z2kL) and an Ethereum address. Save the wallet key. It's the only way to reach this wallet's funds β indie.money cannot recover lost keys.
3. Fund it with test tokens
"Get test tokens for wallet wk_Ab3xY9z2kL on chain 84532."
Adds 1,000 test USDC ($1,000 worth β no real value).
4. Browse and use
"Browse the indie.money marketplace on chain 84532."
"Get details for service 0x1234β¦ on chain 84532."
"Purchase service 0x1234β¦ with wallet wk_Ab3xY9z2kL on chain 84532."
Your assistant handles payment and on-chain signing automatically.
Understanding amounts
Every price on indie.money is an integer in microtokens (6 decimal places).
Tip: tell your assistant the dollar amount and let it convert:
"Purchase service 0x1234β¦ with $10 from wk_Ab3xY9z2kL on chain 84532."
Specifying the chain
Most commands need a chain ID to know which network you mean.
On testnet, always include "on chain 84532" in your requests.
Commands that don't need a chain ID: create-wallet, import-wallet, export-wallet, delete-wallet, get-address, execute-service (webhooks already know their chain), analyze-service, and every stateless utility (convert-workflow-from-json, convert-workflow-from-ts, format-microtokens, format-token-balance).
Wallet management
Your wallet lives on indie.money's platform, keyed by a short ID starting with wk_.
Your wallet key is the only handle to your funds. If you lose it, the wallet is gone. If you delete it without withdrawing first, the tokens are stranded.
Checking balances
"Check the USDC balance of wk_Ab3xY9z2kL on chain 84532."
"Check the InUSD balance of wk_Ab3xY9z2kL on chain 84532."
Balances come back as raw base units β your assistant will format them for you, or you can ask it to:
"Format the balance
950000000with 6 decimals."
Getting test tokens
On testnet only:
"Get test tokens for wk_Ab3xY9z2kL on chain 84532."
Withdrawing to USDC
"Withdraw $50 of InUSD to USDC for wk_Ab3xY9z2kL on chain 84532."
Exchange rate is deterministic β no market fluctuation, no price impact. Withdrawal returns exactly 90% in USDC (10% platform fee).
Discovering services
Service stats
Using a service end-to-end
The full flow, step by step:
1. Purchase
"Purchase service 0x1234β¦ with wk_Ab3xY9z2kL on chain 84532."
Mints an NFT that represents your ownership. The purchase price is deducted from your InUSD balance.
2. Set up credentials (if needed)
Some services need API keys or OAuth connections (OpenAI, Slack, Google, etc.). They're stored in a Secure Vault β never exposed to the workflow code or to you.
"What credentials does service 0x1234β¦ token 1 need on chain 84532?"
API key credentials β submit directly:
"Submit the OpenAI API key
sk-β¦for service 0x1234β¦ token 1 with wk_Ab3xY9z2kL on chain 84532."
OAuth credentials β start a vault session, authorize in a browser, then save the connection:
"Start a vault session for service 0x1234β¦ token 1 with the slackOAuth2Api credential."
Your assistant will return a URL; open it, authorize, then come back and tell your assistant to save the connection.
Test a stored credential:
"Test the credentials for service 0x1234β¦ token 1 on chain 84532."
3. Activate
"Activate service 0x1234β¦ token 1 with wk_Ab3xY9z2kL on chain 84532."
4. Register a webhook
"Register a webhook for service 0x1234β¦ token 1 with wk_Ab3xY9z2kL on chain 84532."
Returns a short webhook path (e.g. a1b2c3d4) β that's what you use to run the service.
5. Execute
"Run webhook a1b2c3d4 with input
{\"city\":\"San Francisco\"}using wk_Ab3xY9z2kL."
The workflow runs and returns the result. The execution price (typically cents) is deducted from your InUSD balance.
6. Check results
"Check execution abc123-def456 on chain 84532."
7. Check settlement (optional)
Payments settle on-chain in batches every ~5 minutes.
"Check the settlement for execution abc123-def456 on chain 84532."
Quick-reference flow
purchase-service β get-activation-requirements β complete-credentials (if needed) β activate-service β register-webhook β execute-service β check-executionRemoving a webhook
"Delete the webhook for a1b2c3d4 with wk_Ab3xY9z2kL on chain 84532."
Publishing a service (builders)
If you're a builder, you can publish your own automation services.
1. Check your workflow is compatible
"Validate the nodes in this workflow: [paste JSON]."
"Analyze this workflow for credential and sub-workflow dependencies: [paste JSON]."
2. Convert the workflow
indie.money stores workflows in a canonical YAML form. Before publishing, convert:
"Convert this n8n workflow JSON to indie.money YAML: [paste JSON]."
Your assistant receives yaml, json, and hash back β it'll pass these into the next step.
3. Register
"Register a new service called 'Weather Bot' for $0.50 per purchase, $0.01 per execution, with wk_Ab3xY9z2kL on chain 84532. Use the YAML and hash from the last step."
You'll need:
- Name and description
- Pricing β purchase price, execution price, max execution price (all in microtokens; minimum $0.01 =
10000) - Workflow β the
serviceYaml+serviceHashfromconvert-workflow-from-json(if you pasted n8n JSON) orconvert-workflow-from-ts(if you pasted TypeScript) - Category and tags
- Optional: subscription price, OAuth app credentials for users who don't bring their own
4. List on the marketplace
Listing requires a Listing Pass ($2.99, bought with InUSD):
"Buy a Listing Pass for wk_Ab3xY9z2kL on chain 84532."
"List service 0x1234β¦ on the marketplace with wk_Ab3xY9z2kL on chain 84532."
5. Update metadata later
"Change the description of service 0x1234β¦ to 'Current weather for any city' on chain 84532."
6. Boost for visibility
Boosting features your service in the Featured section for N days. Each day costs one Boost Pass ($1.99).
"Buy 7 Boost Passes for wk_Ab3xY9z2kL on chain 84532."
"Boost service 0x1234β¦ for 7 days with wk_Ab3xY9z2kL on chain 84532."
7. Delist (reversible)
"Delist service 0x1234β¦ with wk_Ab3xY9z2kL on chain 84532."
Existing owners keep their instances β delisting only removes it from discovery.
Budget management (owner-pays services)
Some services run on the owner-pays model: the service owner pre-funds a budget and executions draw from it.
The per-service budget is held by the platform Treasury and indexed by the agent NFT.
Favorites, categories, referrals
Favorites
"What services does address 0xABC⦠like on chain 84532?"
Categories
Organize your purchased services with free-form category labels:
"What are my category assignments for 0xABC⦠on chain 84532?"
"Set my category assignments to
{\"0x1234β¦\":\"research\",\"0x5678β¦\":\"ops\"}with wk_Ab3xY9z2kL on chain 84532."
Referral program
Earn rewards when people you refer use the marketplace.
Your referral link becomes indie.money/r/<vanity>.
Using indie.money without a managed wallet
For production (real funds), don't use the built-in
create-wallet/import-wallettools β the platform would hold your key material. See Bring Your Own Wallet for the recommended setup with a local-only wallet and an x402 client library.
If you're building an AI agent that owns its own wallet elsewhere, you can use indie.money's MCP without creating a wallet here.
Call any paid tool without a keyId and the response comes back as an error with structured payment requirements attached β the same standard x402 challenge the server would return to any HTTP client:
{ "isError": true, "_meta": { "x402/error": { "x402Version": 2, "accepts": [{"scheme": "exact", "network": "eip155:84532", "amount": "50000", "asset": "0xβ¦", "payTo": "0xβ¦"}] } }}Your agent can inspect _meta['x402/error'], sign the payment authorization with its own wallet (any x402-capable client library works β we use the same @x402/* SDKs), and retry the same tool call with the signed header. This follows the open x402 payment protocol β no vendor lock-in.
This also makes price discovery trivial: call any paid operation without a wallet key to see what it costs before committing.
Troubleshooting
"Wallet not found" β Check the wallet key. They start with wk_ and are case-sensitive.
"Unsupported chain ID" β Add "on chain 84532" (testnet) or "on chain 8453" (production) to your request.
"You do not own this service NFT" β You need to purchase the service before activating or using it.
"Insufficient balance" β Your wallet needs InUSD. Get test tokens (testnet) and purchase an agent or fund a budget with USDC.
"Purchase price below minimum" β Service prices must be at least $0.01 (10000 microtokens).
"Signer does not match creator" β The wallet you're using must be the one that registered the service.
Payment required error with x402/error details β You called a paid tool without a keyId. Either add the wallet key, or (for developer use) have your agent sign the payment and retry.
Full tool catalog
Wallet (no chain ID)
create-wallet, import-wallet, export-wallet, get-address, delete-wallet
Discover (chain ID required)
browse-marketplace, get-service, get-activation-status, get-activation-requirements, get-activation-statuses, check-execution, list-executions, get-balance, get-credential-status, get-user-stats, get-platform-stats, get-featured-status, get-agent-card
Use services (chain ID required, except execute-service)
purchase-service, activate-service, deactivate-service, register-webhook, delete-webhook, execute-service (no chain ID), check-settlement
Publish services (chain ID required, except analyze-service)
register-service, list-service, delist-service, boost-service, update-service-metadata, validate-workflow-nodes, analyze-service (no chain ID)
Billing (chain ID required)
get-test-tokens, fund-budget, withdraw-budget, withdraw-to-stablecoin, purchase-pass
Credentials
create-vault-session (no chain ID), complete-credential-one, complete-credentials-batch, save-credential-connections, test-credential
Favorites & preferences (chain ID required)
get-likes, get-preference-categories, set-preference-categories
Referrals (chain ID required)
register-referral, claim-referral, get-referral-stats, get-my-referral-stats, register-partner-referral
Data tables (chain ID required)
list-data-tables, get-data-table-rows
Node support (no chain ID β local reference)
get-platform-constraints, list-unsupported-nodes, check-node-support
Utilities (no chain ID, no wallet β pure helpers)
convert-workflow-from-json β convert n8n JSON to indie.money TypeScript + hashconvert-workflow-from-ts β convert indie.money TypeScript to n8n JSON + hashformat-microtokens β pretty-print microtokens as USDformat-token-balance β format raw token balances