Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Arcadia Finance

REMOTE · MCP.ARCADIA.FINANCE · 2 COMPONENTS

Concentrated liquidity on Uniswap/Aero (rebalance, compound, leverage) or single-sided lending.

0 this week 82 Trust /100

Last scanned (4 hours ago)

Scores higher than 85% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Crypto and Web3

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security66
Transport & Reachability100
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10226 tokens (~243/item across 42 items; 38 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Oct 26 0
    • Tool “write_account_add_liquidity” rewrote its description, which is the text the model reads security
    • Server version: 0.6.0 → 0.6.1 functional
    • “write_account_add_liquidity” added an optional parameter “accept_price_checks” cosmetic
  • 22 Oct 26 −1
    • Tool “dev_send” rewrote its description, which is the text the model reads security
    • Tool “read_strategy_recommendation” rewrote its description, which is the text the model reads security
    • Tool “read_strategy_info” rewrote its description, which is the text the model reads security
    • Tool “read_account_info” rewrote its description, which is the text the model reads security
    • Tool “write_wallet_approve” rewrote its description, which is the text the model reads security
    • Tool “write_account_withdraw” rewrote its description, which is the text the model reads security
    • Tool “write_account_swap” rewrote its description, which is the text the model reads security
    • Tool “write_account_stake” rewrote its description, which is the text the model reads security
    • Tool “write_account_remove_liquidity” rewrote its description, which is the text the model reads security
    • Tool “write_account_deposit” rewrote its description, which is the text the model reads security
    • Tool “write_account_deleverage” rewrote its description, which is the text the model reads security
    • Tool “write_account_close” rewrote its description, which is the text the model reads security
    • Tool “write_account_borrow” rewrote its description, which is the text the model reads security
    • Tool “write_account_add_liquidity” rewrote its description, which is the text the model reads security
    • Tool “read_wallet_allowances” rewrote its description, which is the text the model reads security
    • Schema quality: 8511 → 10079 ▼ functional
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • New prompt “migrate-to-aero” functional
    • MCP protocol version: 2025-11-25 → 2026-07-28 functional
    • Server version: 0.5.1 → 0.6.0 functional
    • New tool “write_wallet_upgrade_velo” functional
    • New tool “write_account_aero_upgrade” functional
    • New tool “read_account_aero_upgrade” functional
    • “write_pool_redeem” reworded the description of “tranche_address” cosmetic
    • “write_pool_deposit” reworded the description of “tranche_address” cosmetic
    • “write_account_remove_liquidity” reworded the description of “adjustment” cosmetic
    • “write_account_close” reworded the description of “assets” cosmetic
    • “write_account_automations_delta” reworded the description of “protocol” cosmetic
    • “write_account_automations_delta” reworded the description of “position_id” cosmetic
    • “write_account_automations_delta” reworded the description of “disable” cosmetic
    • “write_account_automations” reworded the description of “protocol” cosmetic
    • “write_account_automations” reworded the description of “position_id” cosmetic
    • “write_account_add_liquidity” reworded the description of “deposits” cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 9 Sept 26 0
    • Stability: fail → pass ▲ security
  • 2 Sept 26 0
    • Tool “read_account_history” rewrote its description, which is the text the model reads security
    • “read_strategy_info” reworded the description of “chain_id” cosmetic
    • “write_wallet_approve” reworded the description of “chain_id” cosmetic
    • “write_pool_redeem” reworded the description of “chain_id” cosmetic
    • “write_pool_deposit” reworded the description of “chain_id” cosmetic
    • “write_account_withdraw” reworded the description of “chain_id” cosmetic
    • “write_account_swap” reworded the description of “chain_id” cosmetic
    • “write_account_stake” reworded the description of “chain_id” cosmetic
    • “write_account_repay” reworded the description of “chain_id” cosmetic
    • “write_account_remove_liquidity” reworded the description of “chain_id” cosmetic
    • “write_account_deposit” reworded the description of “chain_id” cosmetic
    • “write_account_deleverage” reworded the description of “chain_id” cosmetic
    • “write_account_create” reworded the description of “chain_id” cosmetic
    • “write_account_close” reworded the description of “chain_id” cosmetic
    • “write_account_borrow” reworded the description of “chain_id” cosmetic
    • “write_account_automations_delta” reworded the description of “chain_id” cosmetic
    • “write_account_automations” reworded the description of “chain_id” cosmetic
    • “write_account_add_liquidity” reworded the description of “chain_id” cosmetic
    • “read_wallet_balances” reworded the description of “chain_id” cosmetic
    • “read_wallet_allowances” reworded the description of “chain_id” cosmetic
    • “read_wallet_accounts” reworded the description of “chain_id” cosmetic
    • “read_strategy_recommendation” reworded the description of “chain_id” cosmetic
    • “read_strategy_list” reworded the description of “chain_id” cosmetic
    • “read_pool_list” reworded the description of “chain_id” cosmetic
    • “read_pool_info” reworded the description of “chain_id” cosmetic
    • “read_asset_prices” reworded the description of “chain_id” cosmetic
    • “read_asset_list” reworded the description of “chain_id” cosmetic
    • “read_account_pnl” reworded the description of “chain_id” cosmetic
    • “read_account_info” reworded the description of “chain_id” cosmetic
    • “read_account_history” reworded the description of “chain_id” cosmetic
    • “dev_send” reworded the description of “chain_id” cosmetic
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.arcadia.finance/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.arcadia.finance CN=WE1,O=Google Trust Services,C=US 14 Oct 2026 12 Jan 2027 ECDSA 256 ECDSA-SHA256 79a8b49058f447160ef466548f54bb67
SANs: mcp.arcadia.finance
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.arcadia.finance. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
finance. present 28624, 46861 8, 8 Verified
arcadia.finance. present 2371 13 Verified
mcp.arcadia.finance. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy geolocation=(), microphone=(), camera=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.arcadia.finance/mcp Verified 200
http (plaintext) http://mcp.arcadia.finance/mcp HTTPS enforced 301 https://mcp.arcadia.finance/mcp
MCP tools · 38 exposed · ~10,118 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
dev_send ~141

DEV ONLY: Sign and broadcast an unsigned transaction using a local private key (PK env var). For production, use a dedicated wallet MCP server (Fireblocks, Safe, Turnkey, etc.) instead of this tool. Takes the transaction object returned by any write_* tool and submits it onchain.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
datastringyesEncoded calldata (hex)
tostringyesTarget contract address
valuestring–Value in wei (default '0')
NameTypeReqDescription
blockNumbernumberyes–
gasLimitnumberyes–
gasUsednumberyes–
signerstringyes–
statusstringyes–
txHashstringyes–

No examples provided.

read_account_aero_upgrade ~380

Which Arcadia accounts have something to upgrade to Aero (MetadexCL V1): Slipstream V1 to V3 positions (Aerodrome on Base, Velodrome on Optimism, staked or not) and old AERO. Pass wallet_address for every account of a wallet, or account_address for one. Per account: status (ready | choices_required | waiting | not_open | nothing_to_upgrade), positions (every Slipstream position on it), movable (ready or needing a pool choice), waiting, blocked, old_aero (raw, 18 decimals). Accounts without a Slipstream position or old AERO are left out, including accounts whose positions already moved but whose automations still run on the old Slipstream managers: when read_asset_manager_current shows Slipstream managers on an account that only holds metadexcl_v1 positions, call write_account_aero_upgrade for it to get managers_to_reconnect. failed_accounts lists the accounts whose check failed, with the error: an empty accounts list means nothing to do only when failed_accounts is empty too. Otherwise tell the user those accounts could not be checked and retry later. opens_at is when the AERO token upgrade opens on Base. No calldata, prices or simulation: this is the cheap check. For the plan and the transaction call write_account_aero_upgrade. Chains: Base (8453), Optimism (10); Robinhood (4663) has no Slipstream positions and answers an empty list.

NameTypeReqDescription
account_addressstring–One Arcadia account to check
chain_idnumber–Chain ID: 8453 (Base), 10 (Optimism) or 4663 (Robinhood, nothing to upgrade)
wallet_addressstring–Wallet whose accounts to check. Pass this or account_address, not both.
NameTypeReqDescription
accountsarrayyes–
chain_idnumberyes–
checked_atnumberyes–
failed_accountsarrayyes–
opens_atnumber|nullyes–
owner_addressstring|nullyes–

No examples provided.

read_account_history ~157

Get an Arcadia account's historical net value over time. Returns a time series of snapshots, oldest first, each `{ timestamp, net_value }` — `timestamp` is unix seconds and `net_value` is USD (human-readable, not raw units). Useful for charting account performance over a period. An empty `history` means the account has no snapshots in the window, not that the read failed.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
daysnumber–Number of days of history (default 14)
NameTypeReqDescription
historyarrayyes–

No examples provided.

read_account_info ~523

Get full overview of an Arcadia account: health factor, collateral value, debt, deposited assets, liquidation price, and automation status. Health factor = 1 - (used_margin / liquidation_value): 1 = no debt (safest), >0 = healthy, 0 = liquidation threshold, <0 = past liquidation. Higher is safer. The `automation` object reports which asset managers are enabled (rebalancer, compounder, yield_claimer, cow_swapper, merkl_operator, gas_relayer), each as the position's dex_protocol when protocol-specific or true when account-level, plus `inferred_intents` (the automations those managers add up to), `merkl` claim state, and `deprecated_managers` for any superseded deployment still set on the account. Superseded managers should be cleared: write_account_automations disables them as part of a save. For the full decoded per-manager config use read_asset_manager_current. LP positions in assets[] include a dex_protocol field (slipstream, slipstream_v2, slipstream_v3, metadexcl_v1, staked_slipstream, staked_slipstream_v2, staked_slipstream_v3, staked_metadexcl_v1, uniV3, uniV4). metadexcl_v1 is Aero CL, live on Base, Optimism and Robinhood for spot and margin accounts. Slipstream V2 is Base-only. V3 is available on Base and Optimism. Unichain supports Slipstream V1, uniV3 and uniV4. To configure automations, prefer passing the position's id as position_id to write_account_automations, which resolves the protocol and tokens for you; the dex_protocol value is also accepted directly as its `protocol` param. Numeric fields without a _usd suffix are in the account's numeraire token raw units (divide by 10^decimals: 6 for USDC, 18 for WETH, 8 for cbBTC). Fields ending in _usd are in USD with 18 decimals (divide by 1e18). health_factor is unitless. Asset amounts are raw token units. To list all accounts for a wallet, use read_wallet_accounts.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
account_versionnumber|nullyes–
automationobject––
context_notesarray––
liquidation_price–yes–
overview–yes–

No examples provided.

read_account_pnl ~143

Get PnL (cost basis) and yield earned for an Arcadia account. Returns lifetime totals: cost basis vs current value (negative cost_basis = net profit withdrawn), net transfers per token, total yield earned in USD and per token. cost_basis, current_value, cost_diff are in USD (human-readable). Per-token fields (net_transfers, summed_yields_earned) are in raw token units.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
pnl_cost_basisobjectyes–
yield_earnedobjectyes–

No examples provided.

read_asset_list ~100

List supported collateral assets on Arcadia. Returns compact list (address, symbol, decimals, type). Use search to filter by symbol substring. For USD prices, use read_asset_prices.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
searchstring–Filter assets by symbol (case-insensitive substring match)
NameTypeReqDescription
assetsarrayyes–
totalnumberyes–

No examples provided.

read_asset_manager_current ~176

Read which asset managers are currently enabled on an account, with their decoded on-chain configuration. Returns the active managers (address, protocol, initiator, decoded strategy metadata, slippage and value-loss caps, fee recipient), the intents they map to, and Merkl claim state including whether reward tokens still need registering. Managers from superseded deployments are listed separately under `deprecated`: pass their addresses to write_account_automations_delta to clear them, or run write_account_automations which disables them as part of the save. read_ok is false when chain state could not be read, in which case the result is unreliable rather than empty.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain id: 8453 Base, 130 Unichain, 10 Optimism
NameTypeReqDescription
accountstringyes–
chain_idnumberyes–
deprecatedarrayyes–
enabledarrayyes–
inferred_intentsarrayyes–
merkl–––
read_okbooleanyes–
warningsarrayyes–

No examples provided.

read_asset_manager_intents ~147

List the automation intents Arcadia supports, with the parameters each one accepts. Pass account_address to also get per-account availability: which intents can be enabled right now and, for any that cannot, the compatibility rule blocking it. Pass position_id as well to scope availability to one LP position. Without account_address this returns the catalog only.

NameTypeReqDescription
account_addressstring–Arcadia account address. Include it to get live per-account availability.
chain_idnumber–Chain id: 8453 Base, 130 Unichain, 10 Optimism
position_idinteger–LP position (NFT) id to scope availability to. Requires account_address.
NameTypeReqDescription
automationsarrayyes–
availability_errorstring––
shared_paramsarrayyes–
usagestringyes–

No examples provided.

read_asset_prices ~90

Get USD prices for one or more asset addresses. Pass a single address or comma-separated addresses. Returns a price map keyed by address.

NameTypeReqDescription
asset_addressesstringyesSingle address or comma-separated addresses for price lookup
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
pricesobjectyes–

No examples provided.

read_guides ~119

Get Arcadia workflow guides and reference documentation. Call this before multi-step workflows (opening LP positions, enabling automation, closing positions) or when you need contract addresses, asset manager addresses, or strategy parameters. Topics: overview (addresses + tool catalog), automation (intent-based automation setup), strategies (step-by-step templates), selection (how to evaluate and parameterize strategies).

NameTypeReqDescription
topicstring–overview = addresses + tool catalog, automation = intent-based automation setup, strategies = step-by-step LP templates, selection = pool evaluation + leverage sizing
NameTypeReqDescription
contentstringyes–
topicstringyes–

No examples provided.

read_point_leaderboard ~64

Get the Arcadia points leaderboard (paginated). For a specific wallet's points balance, use read_wallet_points.

NameTypeReqDescription
limitnumber–Max leaderboard entries to return (default 25)
offsetnumber–Skip first N leaderboard entries for pagination
NameTypeReqDescription
leaderboardarrayyes–
limitnumberyes–
offsetnumberyes–
totalnumberyes–

No examples provided.

read_pool_info ~103

Get detailed info for a single lending pool including APY history over time. Useful for analyzing rate trends and comparing pools. Use read_pool_list to discover pool addresses.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
daysnumber–Number of days of APY history
pool_addressstringyesPool address
NameTypeReqDescription
apy_historyarrayyes–
poolobjectyes–

No examples provided.

read_pool_list ~113

List all Arcadia lending pools: TVL, utilization, available liquidity. Key fields: interest_rate = current borrow cost, lending_apy = lender yield. All rates are decimal fractions (1.0 = 100%, 0.06 = 6%). For APY history on a specific pool, use read_pool_info.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
context_notesarray––
poolsarrayyes–

No examples provided.

read_strategy_info ~130

Get full detail for a specific LP strategy by ID: includes APY per range width (narrower range = higher APY but more rebalancing cost/risk), pool info, and configuration. Use read_strategy_list to discover strategy IDs. All APY values are decimal fractions (1.0 = 100%, 0.05 = 5%).

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
strategy_idnumberyesStrategy ID

Structured output declared, but exposes no named fields.

No examples provided.

read_strategy_list ~179

Get Arcadia LP strategies. Use featured_only=true for curated top strategies (recommended first call). Returns a paginated list with 7d avg APY for each strategy's default range. Increase limit or use offset for pagination. All APY values are decimal fractions (1.0 = 100%, 0.05 = 5%). For full detail on a specific strategy (APY per range width), use read_strategy_info.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
featured_onlyboolean–Return only featured/curated strategies (recommended)
limitnumber–Max strategies to return (default 25)
offsetnumber–Skip first N strategies for pagination
NameTypeReqDescription
context_notesarray––
limitnumberyes–
offsetnumberyes–
strategiesarrayyes–
totalnumberyes–

No examples provided.

read_strategy_recommendation ~127

Get a rebalancing recommendation for an Arcadia account: suggests asset changes to optimize yield. Uses 1d APY (not 7d like read_strategy_list), so recommended strategies may differ from the list ranking. APY values are decimal fractions (0.05 = 5%). weekly_earning_difference is in USD.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)

Structured output declared, but exposes no named fields.

No examples provided.

read_wallet_accounts ~103

List all Arcadia accounts owned by a wallet address. Returns a summary of each account (address, name). Call read_account_info with a specific account_address for full details like health factor, collateral, and debt.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
wallet_addressstringyesWallet address to list accounts for
NameTypeReqDescription
accountsarrayyes–

No examples provided.

read_wallet_allowances ~132

Check ERC20 token allowances for a spender address. Use before write_wallet_approve to avoid redundant approvals: skip approving if the current allowance is already sufficient.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
owner_addressstringyesToken owner address (the wallet granting approval)
spender_addressstringyesSpender address to check allowance for (e.g. Arcadia account address)
token_addressesarrayyesERC20 token contract addresses to check
NameTypeReqDescription
tokensarrayyes–

No examples provided.

read_wallet_balances ~139

Get native ETH and ERC20 token balances for a wallet address. Reads directly from chain via RPC multicall. Use before write_account_add_liquidity or write_account_deposit to verify the wallet has sufficient tokens. Returns both raw balance (smallest unit/wei) and formatted (human-readable) per token.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
token_addressesarrayyesERC20 token contract addresses to check
wallet_addressstringyesWallet address to check balances for
NameTypeReqDescription
nativeobjectyes–
tokensarrayyes–

No examples provided.

read_wallet_points ~34

Get Arcadia points balance for a specific wallet address.

NameTypeReqDescription
wallet_addressstringyesWallet address to get points for

Structured output declared, but exposes no named fields.

No examples provided.

write_account_add_liquidity ~580

Multi-step flash-action: atomically combines [deposit from wallet] + [use account collateral] + [swap to optimal ratio] + [mint LP] + [borrow if leveraged] in ONE transaction. Do NOT call write_account_deposit separately. Capital sources: wallet tokens (deposits array), existing account collateral (use_account_assets=true), or both. Check allowances first (read_wallet_allowances), then approve if needed (write_wallet_approve). Supports depositing multiple tokens and minting multiple LP positions in one tx. Works with both margin accounts (can leverage) and spot accounts (no leverage). For workflows, call read_guides('strategies'). The returned calldata is time-sensitive: sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up), passing only the accept_price_checks the user already confirmed. Response includes tenderly_sim_url and tenderly_sim_status for pre-broadcast validation. expected_value_change is in raw units of the account's numeraire token (6 decimals for USDC, 18 for WETH). Negative = cost to open, positive = value gained. Compare before.total_account_value and after.total_account_value for the full picture. If a pool's price is off market or one of its tokens has no price, the tool returns the price warnings, an accept_price_checks list and NO transaction. Show the warnings to the user and call again with that accept_price_checks list only after the user explicitly confirms they accept them. If a later call returns new warnings, even on a rebuild, show them and get a new confirmation before passing their list. The acknowledgement never bypasses a backend refusal.

NameTypeReqDescription
accept_price_checksarray–The accept_price_checks list returned with the price warnings of a previous call, passed unchanged and only after the user has explicitly confirmed those warnings. Never set it on the first call.
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
depositsarray–Wallet tokens to deposit. Approve each token first (write_wallet_approve). Omit to use only account collateral.
leveragenumber–0 = no borrow, 2 = 2x leverage. Margin accounts only.
positionsarrayyesLP positions to mint. For a single position, pass one entry.
slippagenumber–Basis points, 100 = 1%
use_account_assetsboolean–If true, use ALL existing account collateral for LP minting. Fetched automatically.
wallet_addressstringyesWallet address of the account owner
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_aero_upgrade ~793

Upgrade one Arcadia account to Aero (MetadexCL V1) in one flashAction: every Slipstream V1/V2/V3 position (dex_protocol slipstream*, staked or not, see read_account_info) moves to the Aero CL pool with the same pair and variant at the same range and tick spacing (when Aero has no pool at that tick spacing, the user picks another one), and every unit of old AERO (loose, in rewards, in an old-AERO pair) becomes the new AERO. Returns the plan and, when anything can go now, the unsigned transaction. Only the account owner can sign it. The backend decides what moves: report items[].status and items[].reason as given, never decide eligibility yourself. status ready: sign transaction. choices_required: some position has status choose with options[] (every Aero pool on its pair, with apy, tvl_usd, is_new, tick_spacing, range_widened, default and disabled_reason); ask the user to pick one whose disabled_reason is null, then call again with it in choices so one transaction moves everything. The transaction returned with choices_required moves only the ready items: sign it alone only when the user wants to leave the choose positions where they are. waiting: each item's reason says why (pool_not_on_aero, staking_not_open, target_price_mismatch, account_unhealthy, ...); a waiting item with an option whose disabled_reason is null can still move with that pick, so ask the user; do not retry in a loop. not_open: the AERO upgrade contract does not accept deposits at the moment. A 422 saying a pool is not selectable: drop that pick, call again without it and ask the user again. Pass accounts (up to 10) instead of account_address for one plan per account; the accounts share one AERO upgrade budget. multisends groups the accounts that got a transaction, in order: a Safe signs one MultiSend per group (each below max_gas_per_tx). After it confirms, reconnect managers_to_reconnect with write_account_automations and verify with read_account_info (next_steps). Spot and margin accounts can…

NameTypeReqDescription
account_addressstring–Arcadia account to upgrade. Pass this or accounts, not both.
accountsarray–Up to 10 Arcadia accounts of one owner: one plan and transaction each
chain_idnumber–Chain ID: 8453 (Base), 10 (Optimism) or 4663 (Robinhood, nothing to upgrade)
choicesarray–Pool picks for positions with status choose (or waiting with a selectable option), from a previous call's options (disabled_reason null)
min_blockinteger–Block of the transaction you just confirmed, so the plan reads state at or after it
slippageinteger–Price band the mint accepts, in bps. Omit for the backend default: 150, or 500 when the owner is a contract (a Safe).
NameTypeReqDescription
account_addressstring––
asset_changesarray––
chain_idnumber––
descriptionstringyes–
errorstring––
gasstring––
itemsarray––
managers_to_reconnectarray––
max_gas_per_txnumber––
multisendsarray––
next_stepsarrayyes–
old_managers_still_neededboolean––
opens_atnumber|null––
ownerstring––
price_tolerance_bpsnumber––
resultsarray––
simulation_notestring––
statusstring––
status_notestring––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobject––

No examples provided.

write_account_automations ~1,060

Configure an account's automations from a list of intents and return the unsigned setAssetManagers transaction. The backend resolves which asset managers each intent needs, validates that the combination is compatible, encodes the metadata and builds the calldata, so you describe the desired outcome rather than the contracts. With mode 'save' (the default) the intents array is the complete desired state: the backend diffs it against what is currently enabled, so any automation you leave out is DISABLED by the returned transaction. Pass a single intent with enabled: false to turn everything off. Mode 'preview' validates and resolves the intents WITHOUT reading chain state and returns no transaction, because its calldata carries no disable entries and would only partially apply the state. Use it to check a combination is legal or to show a plan; use 'save' to get something signable. To toggle one automation without restating the rest, use write_account_automations_delta. Intents: - compound_fees: reinvest earned fees/rewards back into the LP. Optional 'tokens' scopes it per yielding token. A staked reward that is not a pool token is swapped in via CowSwap automatically. - claim_rewards: claim yield out. config.mode as_earned pays the tokens as-is, convert_to swaps them to config.buy_token via CowSwap. config.convert_tokens converts only a subset and claims the rest as-earned. config.destination account or wallet. - add_to_lp: fold idle pool-token balances (deposits, rebalance leftovers) back into the LP. Opt-in per token. - claim_merkl: auto-claim Merkl incentive rewards. Independent of the compounder/claimer/cowswapper triad and needs no position context. - rebalance: reposition the LP. strategy out_of_range (default), take_profit (runs on the dedicated profit-taker contract), or protocol_owned_liquidity. Pass position_id (from assets[] in read_account_info) and the backend fills in protocol, is_staked, token0, token1 and reward_tokens for you; anything you pass…

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
intentsarrayyesComplete desired automation state. In save mode anything omitted is disabled, so include every automation to keep. A single intent with enabled: false disables all automations.
is_stakedboolean–Whether the LP position is staked. Implied by a staked_* protocol value.
modestring–save diffs against on-chain state and returns a signable transaction that also disables anything omitted. preview resolves and validates only, returning a plan and no transaction.
ownerstring–Account owner EOA. Used to resolve wallet payout targets.
position_idinteger–LP position (NFT) id, as listed in assets[] by read_account_info. Supply this and the backend fetches protocol, staked flag, tokens and reward tokens for you. Strongly preferred over passing the posi…
protocolstring–Position's DEX protocol. Only needed when position_id is omitted. Accepts the dex_protocol values the read tools return (slipstream, staked_slipstream_v3, uniV3, metadexcl_v1, staked_metadexcl_v1, ..…
reward_tokensarray–Staking reward token addresses.
token0string–Pool token0 address.
token1string–Pool token1 address.
NameTypeReqDescription
descriptionstringyes–
diffobject––
errorsarrayyes–
human_summaryarrayyes–
no_changes_neededboolean––
planarrayyes–
preview_onlyboolean––
simulation_urlstring––
tenderly_sim_statusstring––
transactionobject––
validbooleanyes–
warningsarrayyes–

No examples provided.

write_account_automations_delta ~912

Apply an explicit change to an account's automations and return the unsigned setAssetManagers transaction. Unlike write_account_automations this is a delta, not a full desired state: automations you do not mention are left untouched. Use it to switch one automation on or off without restating the others. The enable array takes intents to switch on (same shapes as write_account_automations). To turn an automation OFF, call read_asset_manager_current, take the address of the manager serving it, and pass that address in the disable array: an intent with enabled: false in `enable` is rejected because the backend would ignore it. Superseded or unreadable managers still set on the account are force-disabled in the same transaction regardless. Intents: - compound_fees: reinvest earned fees/rewards back into the LP. Optional 'tokens' scopes it per yielding token. A staked reward that is not a pool token is swapped in via CowSwap automatically. - claim_rewards: claim yield out. config.mode as_earned pays the tokens as-is, convert_to swaps them to config.buy_token via CowSwap. config.convert_tokens converts only a subset and claims the rest as-earned. config.destination account or wallet. - add_to_lp: fold idle pool-token balances (deposits, rebalance leftovers) back into the LP. Opt-in per token. - claim_merkl: auto-claim Merkl incentive rewards. Independent of the compounder/claimer/cowswapper triad and needs no position context. - rebalance: reposition the LP. strategy out_of_range (default), take_profit (runs on the dedicated profit-taker contract), or protocol_owned_liquidity. Pass position_id (from assets[] in read_account_info) and the backend fills in protocol, is_staked, token0, token1 and reward_tokens for you; anything you pass explicitly wins. claim_merkl needs no position context. Rules the backend enforces (a violation is returned as an error, never written on-chain): - Every yielding token must be assigned to exactly one of compound_fees or claim_rewards.…

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
disablearray–Asset-manager addresses to switch off, as returned by read_asset_manager_current.
enablearray–Intents to switch on. Leave empty when only disabling. This array cannot turn anything off: an entry with enabled: false is rejected, use `disable` instead.
is_stakedboolean–Whether the LP position is staked. Implied by a staked_* protocol value.
ownerstring–Account owner EOA. Used to resolve wallet payout targets.
position_idinteger–LP position (NFT) id, as listed in assets[] by read_account_info. Supply this and the backend fetches protocol, staked flag, tokens and reward tokens for you. Strongly preferred over passing the posi…
protocolstring–Position's DEX protocol. Only needed when position_id is omitted. Accepts the dex_protocol values the read tools return (slipstream, staked_slipstream_v3, uniV3, metadexcl_v1, staked_metadexcl_v1, ..…
reward_tokensarray–Staking reward token addresses.
token0string–Pool token0 address.
token1string–Pool token1 address.
NameTypeReqDescription
descriptionstringyes–
diffobject––
errorsarrayyes–
human_summaryarrayyes–
no_changes_neededboolean––
planarrayyes–
preview_onlyboolean––
simulation_urlstring––
tenderly_sim_statusstring––
transactionobject––
validbooleanyes–
warningsarrayyes–

No examples provided.

write_account_borrow ~278

Build an unsigned transaction to borrow from an Arcadia lending pool against account collateral. NOT needed for leveraged LP: write_account_add_liquidity handles borrowing internally when leverage > 0. Only works with margin accounts (created with a creditor/lending pool). Spot accounts (no creditor) cannot borrow: the tool will validate this and reject. Before borrowing, verify the account has positive free margin via read_account_info: collateral_value must exceed used_margin.

NameTypeReqDescription
account_addressstringyesArcadia account address used as collateral
amountstringyesAmount in raw units
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
pool_addressstringyesLending pool: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
tostringyesAddress to receive borrowed tokens
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_account_close ~501

Atomic flash-action that closes an Arcadia account position in ONE transaction. Combines up to 3 steps atomically: [burn LP position] + [swap all tokens to a single target asset] + [repay debt]. Tokens remain in the account after closing: use write_account_withdraw to send them to your wallet. ALWAYS try this tool first when closing/exiting a position. Only fall back to individual tools (write_account_remove_liquidity, write_account_swap, write_account_deleverage, write_account_withdraw) if this tool fails. Supports two modes: - close_lp_only=true: Burns LP and leaves underlying tokens in the account. Use as step 1 if the full close fails, then call again with close_lp_only=false to swap+repay the remaining tokens. - close_lp_only=false (default): Full atomic close: burns LP, swaps everything to receive_assets, repays debt. Remaining tokens stay in the account. Follow up with write_account_withdraw to send to wallet. Supports multiple receive assets with custom distribution. The returned calldata is time-sensitive — sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up). Response includes tenderly_sim_url and tenderly_sim_status for pre-broadcast validation.

NameTypeReqDescription
account_addressstringyesArcadia account address
assetsarrayyesAssets to close/sell from the account. IMPORTANT: For LP positions (NFTs), always use amount='1' and decimals=1: do NOT pass the liquidity amount. asset_address = position manager, asset_id = NFT tok…
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
close_lp_onlyboolean–true = only burn LP positions, leave underlying tokens in account. false = full close (burn + swap + repay).
receive_assetsarray–Target assets to receive after closing. For a single target, pass one entry. Required when close_lp_only=false. Omit for close_lp_only=true.
slippagenumber–Basis points, 100 = 1%
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_create ~223

Build an unsigned transaction to create a new Arcadia account via the Factory contract. account_version: 3 with creditor → V3 margin account (can borrow/leverage). account_version: 0 or 4 → V4 spot account (no borrowing, creditor is ignored, any ERC20 allowed). Returns the predicted account address (deterministic via CREATE2).

NameTypeReqDescription
account_versionnumber–Account version: 0 = latest (V4 spot), 3 = margin (can borrow). 1/2 = legacy.
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
creditorstring–Lending pool address for V3 margin account. Ignored for V4 spot accounts (version 0 or 4).
saltnumberyesUnique salt (uint32) for deterministic account address
wallet_addressstringyesWallet address that will send the transaction (tx.origin, needed for address prediction)
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_account_deleverage ~277

Multi-step flash-action: sells account collateral to the debt token and repays in one atomic transaction: no wallet tokens needed. To repay from wallet tokens instead, use write_account_repay. NOTE: If you are closing a position (remove LP + swap + repay + withdraw), prefer write_account_close which batches everything atomically. Only use this tool for standalone repayment while keeping the position active. The returned calldata is time-sensitive: sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up). Response includes tenderly_sim_url and tenderly_sim_status for pre-broadcast validation: if tenderly_sim_status is 'false', do NOT broadcast the transaction.

NameTypeReqDescription
account_addressstringyesArcadia account address
amount_instringyesCollateral amount to sell (raw units)
asset_fromstringyesCollateral token to sell
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
creditorstringyesLending pool address
numerairestringyesDebt token address
slippagenumber–Basis points, 100 = 1%
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_deposit ~272

Build an unsigned transaction to deposit assets into an Arcadia account as collateral. Supports ERC20 tokens and ERC721 NFTs (LP positions). NOT needed before write_account_add_liquidity: that tool deposits from wallet atomically. Ensure the account is approved first (call read_wallet_allowances to check, then write_wallet_approve if needed). Account version is auto-detected on-chain (override with account_version if needed).

NameTypeReqDescription
account_addressstringyesArcadia account address
account_versionnumber–Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addressesarrayyesToken contract addresses to deposit
asset_amountsarrayyesAmounts in raw units/wei, one per asset
asset_idsarray–Token IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarray–V4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_account_remove_liquidity ~229

Flash-action: PARTIALLY decreases liquidity from an LP position. The position remains open with reduced liquidity; underlying tokens stay in the account. For FULL position exit (burn LP + swap + repay + withdraw), use write_account_close instead: it batches everything into one atomic transaction. The returned calldata is time-sensitive — sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up). Response includes tenderly_sim_url and tenderly_sim_status for pre-broadcast validation.

NameTypeReqDescription
account_addressstringyesArcadia account address
adjustmentstringyesLiquidity amount to remove (raw uint128 value as string). Must be less than total liquidity: for full removal use write_account_close.
asset_addressstringyesPosition manager contract
asset_idnumberyesNFT token ID
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_repay ~259

Repay debt to an Arcadia lending pool using tokens from the wallet (requires ERC20 allowance). To repay using account collateral instead (no wallet tokens needed), use write_account_deleverage. Check allowance first (read_wallet_allowances), then approve the pool if needed (write_wallet_approve). Check outstanding debt with read_account_info.

NameTypeReqDescription
account_addressstringyesArcadia account address with debt
amountstringyesAmount in raw units, or 'max_uint256' to repay all debt in full
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
pool_addressstringyesLending pool address. Base: LP_WETH=0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2, LP_USDC=0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1, LP_CBBTC=0xa37E9b4369dc20940009030BfbC2088F09645e3B
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_account_stake ~254

Flash-action: stake, unstake, or claim rewards for an LP position in one atomic transaction. Use the `action` parameter to select the operation. `asset_address` is the position manager contract: pass the non-staked PM address when staking, or the staked PM address when unstaking. The returned calldata is time-sensitive, sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up). Tenderly simulation may not be available for this endpoint. Verify the position exists with read_account_info before signing. Aero CL (metadexcl_v1): spot accounts stake through the Arcadia wrapper, margin accounts through the staked module, on Base, Optimism and Robinhood.

NameTypeReqDescription
account_addressstringyesArcadia account address
actionstringyesAction to perform
asset_addressstringyesPosition manager contract address
asset_idnumberyesNFT token ID of the LP position
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_swap ~241

Flash-action: swaps assets within an Arcadia account in one atomic transaction. The backend finds the optimal swap route. NOTE: If you are closing a position (swap + repay + withdraw), prefer write_account_close which batches everything atomically. Only use this tool for standalone swaps within an active position. The returned calldata is time-sensitive: sign and broadcast within 30 seconds. If the transaction reverts due to price movement, rebuild and sign again immediately (retry at least once before giving up). Response includes tenderly_sim_url and tenderly_sim_status for pre-broadcast validation: if tenderly_sim_status is 'false', do NOT broadcast the transaction.

NameTypeReqDescription
account_addressstringyesArcadia account address
amount_instringyesRaw units
asset_fromstringyesToken address to swap from
asset_tostringyesToken address to swap to
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
slippagenumber–Basis points, 100 = 1%
NameTypeReqDescription
afterobject––
beforeobject––
descriptionstring––
expected_value_changestring––
expected_value_change_unavailablestring––
price_checksarray––
tenderly_sim_statusstring––
tenderly_sim_urlstring––
transactionobjectyes–

No examples provided.

write_account_withdraw ~260

Build an unsigned transaction to withdraw assets from an Arcadia account to the owner's wallet. Only the account owner can withdraw. Will revert if the account has debt and withdrawal would make it undercollateralized. Does not support max_uint256: pass exact amounts from read_account_info. Account version is auto-detected on-chain (override with account_version if needed).

NameTypeReqDescription
account_addressstringyesArcadia account address
account_versionnumber–Override account version (3 or 4). Auto-detected on-chain if omitted.
asset_addressesarrayyesToken contract addresses to withdraw
asset_amountsarrayyesAmounts in raw units/wei, one per asset
asset_idsarray–Token IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarray–V4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_pool_deposit ~218

Build an unsigned deposit transaction into an Arcadia lending tranche (ERC-4626). Lenders deposit the pool's underlying asset (USDC/WETH/cbBTC) and receive tranche shares that accrue interest from borrowers. Requires prior ERC-20 approval to the tranche (see write_wallet_approve). To check current lender yield, call read_pool_list or read_pool_info.

NameTypeReqDescription
assetsstringyesAmount of underlying asset to deposit, in raw units (e.g. '1000000' = 1 USDC since USDC has 6 decimals).
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
receiverstringyesAddress that receives the minted tranche shares. Usually the depositor's own wallet.
tranche_addressstringyesTranche contract address (ERC-4626 vault). Get this from read_pool_list: each pool's `tranches[0].address`.
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_pool_redeem ~205

Build an unsigned redeem transaction to withdraw from an Arcadia lending tranche (ERC-4626). Burns tranche shares and returns the corresponding amount of underlying asset, including accrued interest. The owner must be the shares holder; receiver is where the underlying asset is sent.

NameTypeReqDescription
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
ownerstringyesAddress that owns the tranche shares being burned. Normally the signer's own wallet.
receiverstringyesAddress that receives the underlying asset. Usually the owner's own wallet.
sharesstringyesAmount of tranche shares to burn, in raw units. To redeem everything, use the owner's full share balance.
tranche_addressstringyesTranche contract address (ERC-4626 vault). Get this from read_pool_list: each pool's `tranches[0].address`.
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_wallet_approve ~231

Build an unsigned approval transaction. For ERC20 tokens: generates approve(spender, amount). For ERC721/ERC1155 NFTs (e.g. LP positions): generates setApprovalForAll(operator, true). Required before write_account_deposit or write_account_add_liquidity (when depositing from wallet). Tip: call read_wallet_allowances first to check if approval already exists: skip this if the current allowance is sufficient.

NameTypeReqDescription
amountstring–ERC20 only: amount in raw units, or 'max_uint256' for unlimited. Ignored for NFTs.
asset_typestring–Token type: 'erc20' (default) for fungible tokens, 'erc721' or 'erc1155' for NFTs (LP positions)
chain_idnumber–Chain ID: 8453 (Base), 130 (Unichain), 10 (Optimism), or 4663 (Robinhood)
spender_addressstringyesAddress being approved — use the Arcadia account address for deposits
token_addressstringyesToken contract address to approve
NameTypeReqDescription
descriptionstringyes–
predicted_account_addressstring––
transactionobjectyes–

No examples provided.

write_wallet_upgrade_velo ~225

Upgrade VELO held in a wallet on Optimism to the new AERO on Base: ordered unsigned wallet transactions from owner_address, an approve when the allowance is short, then depositLiquid on the Velodrome migration with the Hyperlane fee as value. 0.044 new AERO per VELO arrives at the same address on Base once the message lands. VELO inside an Arcadia account must be withdrawn to the wallet first (write_account_withdraw). VELO stays usable, so this is optional. Optimism (chain_id 10) only. 'upgrade unavailable' names the contract's reason: not_open (with the opening time), paused, budget_exhausted, recipient_not_deployed (a contract wallet with no code on Base).

NameTypeReqDescription
amountstring–Raw units (18 decimals). Omit for the wallet's full VELO balance.
chain_idnumber–Chain ID: 10 (Optimism)
owner_addressstringyesWallet holding the VELO on Optimism; receives the AERO on Base
NameTypeReqDescription
amount_instringyes–
descriptionstringyes–
destination_chain_idnumberyes–
expected_amount_outstringyes–
fee_weistringyes–
new_tokenstringyes–
old_tokenstringyes–
recipientstringyes–
transactionsarrayyes–

No examples provided.

Install

How do I install the Arcadia Finance MCP server?

Arcadia Finance is a hosted endpoint at https://mcp.arcadia.finance/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.arcadia.finance

# add to Claude Code
claude mcp add --transport http arcadia-finance-mcp-server 'https://mcp.arcadia.finance/mcp'
Common questions

What is the Arcadia Finance MCP server?

Arcadia Finance is an MCP server listed in the public MCP registry as io.github.arcadia-finance/mcp-server. Concentrated liquidity on Uniswap/Aero (rebalance, compound, leverage) or single-sided lending. This page covers its hosted endpoint (https://mcp.arcadia.finance/mcp).

Is the Arcadia Finance MCP server safe to use?

Arcadia Finance scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Arcadia Finance MCP server expose?

Arcadia Finance exposes 38 tools: read_account_info, read_account_history, read_account_pnl, read_pool_list, read_pool_info, and 33 more. Their descriptions and schemas cost roughly 10,118 tokens of context every time the server is loaded.

Does the Arcadia Finance MCP server require authentication?

No. We connected to Arcadia Finance without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Arcadia Finance MCP server still maintained?

Arcadia Finance is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.