Write tools that involve money — like initiating payments — always require your confirmation in the Moneda app before anything happens.
Response shape
Every tool response is TOON-encoded (~40% fewer tokens than equivalent JSON) and runs through a safety-net scrubber that dropsnull, undefined, "", empty arrays, and empty objects from the payload before serialisation. 0, false, and "0" are preserved — a balance of zero is a real answer.
What this means in practice:
- If a field is a known optional that has no value for your account (e.g.
imageUrlon recovery contacts,bankNameon an ACH-only bank entry), it’s simply absent from the response rather than serialised as"null". - If a list tool finds no matching rows, the array field itself is absent and the
countfield (always present) is the authoritative “nothing matched” signal. Example:{ "count": 0 }instead of{ "results": [], "count": 0 }. - Robust MCP clients handle absent fields transparently. Prompt-engineered clients that assert exact key presence may need a small update — check for the
countfield first.
What read tools are available?
| Tool | What it does |
|---|---|
health | Check MCP server status |
get_balance | Fetch live balances for USD, EUR, CHF, CAD and MXN accounts and earnings vaults |
get_lifetime_savings | See your lifetime savings from using Moneda (covered fees + plan discount) |
get_transactions | Browse transaction history with filters |
list_conditional_orders | List your crypto limit, stop-loss, take-profit and trailing-stop orders |
get_conditional_order | View one crypto conditional order and its status |
get_spending_by_type_group | View spending grouped by transaction type group over 7, 30, or 90 days |
get_daily_spending | Get daily spending totals for a stablecoin over a window |
get_spending_by_category | View spending grouped by user-assigned category |
get_spending_by_contact | View total spending sent to a single recipient |
get_spending_by_merchant | View spending grouped by recipient or merchant |
get_spending_comparison | Compare spending totals across two windows |
get_spending_transactions | List or drill into the underlying spending transactions |
get_exchange_rate | Get the current USD/EUR exchange rate |
get_apy_rates | Check current APY rates for earnings products |
get_earnings_time_series | View daily earnings and balance history for a vault account |
get_dinari_capabilities | Check whether you can trade tokenized equities, under which jurisdiction, and why not if you can’t |
get_dinari_us_requirements | List what a US-jurisdiction user still owes before their brokerage account can open |
get_market_status | Check whether the US stock market is open and when the session next changes |
get_free_trade_allowance | See how many commission-free stock trades are left and when the window resets |
get_wallet | Get your Moneda smart wallet address on Base |
get_virtual_accounts | View your IBAN and ACH virtual bank account details |
get_virtual_account_limits | Remaining deposit/withdrawal limit (rolling 52 weeks) and verification status |
get_information_requests | Open compliance information requests from Iron/MoonPay (answered by you in the app) |
get_settlement_estimate | When a US bank (ACH) transfer settles, accounting for cutoff, weekends and bank holidays |
get_contacts | List your saved contacts |
get_my_accounts | View your saved external wallets and bank accounts |
list_banks_for_country | List Koywe-supported banks for a LATAM country (CO/CL/BO need this for bank registration) |
get_settings | View app preferences and notification settings |
get_passkeys | List your wallet signing keys (primary / backup) and your login passkeys |
get_recovery_contacts | View your recovery contacts and guardian relationships |
list_recovery_emails | List email addresses set up for ZK email-based account recovery |
get_recovery_email | Get one recovery email’s full detail by id |
get_recovery_config | Get the recovery configuration (accepted emails, weight, threshold) |
get_recovery_status | Get the most recent recovery request snapshot for an account |
list_notifications | List in-app notifications (use filter=‘unread’ for unread items) |
get_unread_notification_count | Get the unread in-app notification count (cheaper than list_notifications) |
get_points_balance | Check your reward points balance |
get_points_activity | View history of earned and redeemed points |
get_points_redemption_config | See the points→AI-credit rate, minimum, monthly cap, and remaining monthly allowance |
get_referral_code | Get your unique referral link and count |
get_referees | See the list of friends you’ve referred |
search_users | Search for Moneda users by username, name, email, or phone |
search_knowledge | Search FAQs about Moneda |
list_faq_categories | List FAQ categories with each question and its id |
get_faq_category | Browse all FAQ items in a specific category |
get_faq_item | Read the full answer to a specific FAQ question |
list_sub_accounts | List your sub-account vaults (excludes closed by default) |
get_sub_account | Get one sub-account’s full detail by id |
get_sub_account_balance | Read on-chain balances for a sub-account’s child Safe |
list_sub_account_proposals | List open approval requests on a joint account (M-of-N) |
get_sub_account_proposal | Get one joint-account request with its per-member approvals |
get_total_wealth | Aggregate wealth across main account + every live vault, per currency |
list_receipts | List your transaction receipts, newest first, with extracted summary fields |
get_receipt | Get one receipt with full extracted fields + presigned download URL |
get_receipt_line_items | List the parsed line items on a receipt |
search_receipt_line_items | Search across every line item you’ve uploaded, aggregated by currency |
list_bewirtungsbelege | List German hospitality-receipt (Bewirtungsbeleg) overlays |
list_eigenbelege | List self-issued substitute receipts (Eigenbeleg) |
list_bills | List bills (AP queue), due-soon first |
get_bill | Get one bill with full extracted detail + presigned download URL |
list_supported_destinations | List country/currency/rail combinations Moneda can pay out to |
get_payment_quote | Preview cost, FX rate, and final amount for a cross-currency payment |
list_agent_sessions | List your scoped autonomous agent sessions with status and limits |
get_current_subscription | Get your current plan and how it’s billed (balance-pay vs card) |
list_subscription_charges | List your subscription charge history, newest first |
get_subscription_invoice | Generate or retrieve a presigned download URL for a subscription invoice PDF |
get_agent_session | Get one agent session’s detail and recent executions |
list_active_sessions | List your active login sessions (devices/clients) and connected agents |
list_api_keys | List your API keys — name, prefix, permissions, last use (never the secret) |
get_account_overview_data | Account overview in one call: balances, recent transactions, APY rates |
get_balance_check_data | Balance check in one call: balances, exchange rates, APY rates |
get_financial_summary_data | Comprehensive financial summary in one call (balances, transactions, APY, FX) |
get_my_accounts_data | All account setup in one call: wallet, balances, virtual + external accounts |
get_earnings_overview_data | Earnings overview in one call: vault balances, APY rates, recent earnings |
get_spending_analysis_data | Spending analysis in one call: by type group, daily totals, by category |
get_points_rewards_data | Points and referrals in one call: balance, activity, referral code, referees |
get_payment_readiness_data | Payment-readiness check in one call: KYC, accounts, contacts, balances |
get_security_checkup_data | Security checkup in one call: passkeys, recovery contacts, settings |
What write tools are available?
| Tool | What it does |
|---|---|
update_display_name | Change your display name |
set_passkey_label | Give one of your passkeys a nickname |
update_transaction_category | Assign a spending category to a transaction |
add_transaction_note | Add or update a note on a transaction |
batch_update_transaction_categories | Categorize up to 25 transactions at once |
batch_add_transaction_notes | Add notes to up to 25 transactions at once |
add_wallet | Save an external crypto wallet |
add_bank | Save a bank account (EU IBAN or US ACH) |
add_contact_external | Register an external contact with wallet or bank details |
add_contact_moneda | Add a Moneda user to your contacts |
initiate_payment | Create a payment request (requires approval in the Moneda app) |
initiate_currency_exchange | Exchange money between your own currency accounts (requires approval in the Moneda app) |
propose_scheduled_payment | Propose a recurring payment the user activates in the Moneda app |
initiate_crypto_trade | Buy or sell a crypto asset with your own balance (requires approval in the Moneda app) |
initiate_token_buy | Buy a Base token by contract address with your own balance (requires approval in the Moneda app) |
cancel_conditional_order | Cancel an open crypto conditional order, withdrawing it from the order book if it is live |
initiate_earnings_move | Deposit into or withdraw from your earnings vaults (requires approval in the Moneda app) |
propose_sub_account_top_up | Move money from your main account into a sub-account (requires approval in the Moneda app) |
propose_sub_account_withdraw | Move money from a sub-account back to your main account (requires approval in the Moneda app) |
propose_sub_account_swap | Swap between a currency and a crypto asset inside a sub-account (requires approval in the Moneda app) |
propose_sub_account_freeze | Freeze a sub-account you created (requires approval in the Moneda app) |
propose_sub_account_multisig_proposal | Open a spend or withdraw proposal on a joint account for co-owners to approve |
get_payment_status | Check the status of a pending payment |
pay_x402 | Pay an x402 (HTTP 402) invoice to a wallet address (requires approval in the Moneda app) |
request_receipt_upload | Step 1 of 2 — get a presigned S3 PUT URL for uploading a local receipt |
finalize_receipt_upload | Step 2 of 2 — run OCR + matching after the file lands in S3 |
import_receipt_from_url | Import a receipt directly from an https:// URL (SSRF-guarded) |
reparse_receipt | Re-run OCR / LLM extraction on an existing receipt |
attach_receipt | File an unattached receipt against a transaction |
detach_receipt | Unlink a receipt from its transaction, keeping the receipt |
confirm_receipt_suggestion | Accept the suggested transaction match for a receipt |
reject_receipt_suggestion | Dismiss the suggested transaction match for a receipt |
delete_receipt | Permanently delete a receipt and its file (no undo) |
mark_receipt_partial_payment | Mark a receipt as a partial payment so an expected amount mismatch stops warning |
update_receipt_amounts | Correct a receipt’s total, subtotal, tax, tax rate or tip |
create_agent_session | Set up a scoped autonomous payment session (you activate it with a passkey) |
agent_execute_payment | Send a payment within an active session’s on-chain limits, no approval each time |
revoke_agent_session | Stop an agent session immediately |
terminate_session | Sign out one login session immediately |
create_api_key | Create an API key — the secret is shown once and never again |
revoke_api_key | Revoke an API key immediately |
terminate_all_other_sessions | Sign out all your other devices, keeping the current one |
disconnect_connected_service | Disconnect a connected agent, revoking its access |
purchase_usage_credits | Redeem a completed top-up payment for prepaid AI usage credits |
set_ai_usage_limit | Set or clear the monthly spend limit on AI usage credits (USD cap, or unlimited) |
redeem_points | Redeem your Moneda Points for prepaid AI usage credits |
Learn more
Resources
Data your AI reads automatically for context.
Scopes
Permission scopes that control tool access.
Use cases
See what you can do with these tools in practice.
Quickstart
Get connected in 5 minutes.
