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:

EnvironmentChainMCP URLUse for
ProductionBase (8453)https://executor.indie.money/mcpReal services, real stablecoin
StagingBase Sepolia (84532)https://executor-staging.indie.money/mcpFree to try β€” test tokens have no value

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).

MicrotokensUSDMeaning
10000$0.01Minimum service price
1000000$1.00One dollar
10000000$10.00Ten dollars
500000000$500.00Five hundred dollars

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.

ChainChain IDEnvironmentMCP URL
Base Sepolia84532Staging / testnet (free to try)https://executor-staging.indie.money/mcp
Base8453Production (live)https://executor.indie.money/mcp

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_.

TaskAsk your assistant
Create a new wallet"Create a wallet."
Import an existing wallet"Import wallet from this private key: 0x…" or "Import wallet from this mnemonic: word1 word2 …"
Look up an address"What's the address for wk_Ab3xY9z2kL?"
Export the private key"Export the private key for wk_Ab3xY9z2kL."
Delete a wallet"Delete wallet wk_Ab3xY9z2kL."

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 950000000 with 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

TaskAsk your assistant
Browse featured services"Browse the marketplace on chain 84532."
Get full service details"Get details for service 0x1234… on chain 84532."
Check a boost's expiry"Which services are currently featured on chain 84532?"
Check activation status"Is service 0x1234… token 1 activated on chain 84532?"
Check many at once"Check activation status for these services for my wallet …"
See what credentials are needed"What credentials does service 0x1234… token 1 need on chain 84532?"
Get the agent card (ERC-8004)"Get the agent card for service 0x1234… on chain 84532."

Service stats

TaskAsk your assistant
See your own execution totals"Show my execution stats for wk_Ab3xY9z2kL on chain 84532."
See chain-wide totals"What are the platform totals on chain 84532?"
See past executions"List my recent executions with wk_Ab3xY9z2kL on chain 84532."

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-execution

Removing 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 + serviceHash from convert-workflow-from-json (if you pasted n8n JSON) or convert-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.

TaskAsk your assistant
Fund a budget"Fund $10 of InUSD into service 0x1234… token 1 with wk_Ab3xY9z2kL on chain 84532."
Withdraw remaining budget"Withdraw the remaining budget from service 0x1234… token 1 with wk_Ab3xY9z2kL on chain 84532."

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.

TaskAsk your assistant
Register your referral code"Register a referral code with vanity 'my-name' for wk_Ab3xY9z2kL on chain 84532."
Claim someone's code"Claim referral code Ab3xY9z2 for wk_Ab3xY9z2kL on chain 84532."
See public stats for an address"Show referral stats for 0xABC… on chain 84532."
See your own stats"Show my referral stats for wk_Ab3xY9z2kL on chain 84532."

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-wallet tools β€” 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