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

Arcadia Finance

REMOTE · MCP.ARCADIA.FINANCE · 2 COMPONENTS · SCANNED AUG 3

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

+5 this week 70 Trust /100
Trust breakdown (6 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 →

Endpoint Security66
Transport & Reachability100
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 8495 tokens (~193/item across 44 items; 40 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 Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.arcadia.finance

# add to Claude Code
claude mcp add --transport http arcadia-finance-mcp-server https://mcp.arcadia.finance/mcp
# ~/.codex/config.toml
[mcp_servers.arcadia-finance-mcp-server]
url = "https://mcp.arcadia.finance/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arcadia-finance-mcp-server": {
      "type": "remote",
      "url": "https://mcp.arcadia.finance/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add arcadia-finance-mcp-server --url https://mcp.arcadia.finance/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  arcadia-finance-mcp-server:
    url: "https://mcp.arcadia.finance/mcp"
// mcp.json
{
  "mcpServers": {
    "arcadia-finance-mcp-server": {
      "type": "http",
      "url": "https://mcp.arcadia.finance/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

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.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 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
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 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
  • 26 Jul 26 65

    First indexed and scored.

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 3 Aug 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 18 Jun 2026 16 Sept 2026 ECDSA 256 ECDSA-SHA256 74b682a88d859c2a0ea69d1dcfffd4ce
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
DNSSEC secure

Validation of mcp.arcadia.finance. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
finance. present 28624 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=()
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 — 40 exposed · ~8,393 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.

Tool Tokens
dev_send ~134

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
datastringyesEncoded calldata (hex)
tostringyesTarget contract address
valuestringValue in wei (default '0')
NameTypeReqDescription
blockNumbernumberyes
gasLimitnumberyes
gasUsednumberyes
signerstringyes
statusstringyes
txHashstringyes

No examples provided.

read_account_history ~127

Get historical collateral and debt values for an Arcadia account over time. Returns a time series of snapshots (timestamp, collateral_value, debt_value, net_value). Each value is the account's net value in USD (human-readable, not raw units). Useful for charting account performance over a period.

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
daysnumberNumber of days of history (default 14)
NameTypeReqDescription
historyarrayyes

No examples provided.

read_account_info ~520

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. On all supported chains returns an `automation` object showing which asset managers are enabled (rebalancer, compounder, yield_claimer, merkl_operator, gas_relayer, cow_swapper). Automation detection spans every asset-manager version deployed on the selected chain, so registrations made on older versions are still reported as active; the returned value is the user-facing dex_protocol (e.g. 'slipstream') with no version suffix. LP positions in assets[] include a dex_protocol field (slipstream, slipstream_v2, slipstream_v3, staked_slipstream, staked_slipstream_v2, staked_slipstream_v3, uniV3, uniV4) — use this as the dex_protocol param for write_asset_manager.* tools. Slipstream V2 is Base-only. V3 is available on Base and Optimism. Unichain supports only Slipstream V1, uniV3, and uniV4. The automation object uses internal AM key names (slipstreamV1, slipstreamV2, slipstreamV3, uniV3, uniV4): map slipstreamV1 → 'slipstream'/'staked_slipstream', slipstreamV2 → 'slipstream_v2'/'staked_slipstream_v2', slipstreamV3 → 'slipstream_v3'/'staked_slipstream_v3', uniV3 → 'uniV3', uniV4 → 'uniV4'. 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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
account_versionnumber|nullyes
automationobject
context_notesarray
liquidation_priceyes
overviewyes

No examples provided.

read_account_pnl ~136

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
pnl_cost_basisobjectyes
yield_earnedobjectyes

No examples provided.

read_asset_list ~93

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
searchstringFilter assets by symbol (case-insensitive substring match)
NameTypeReqDescription
assetsarrayyes
totalnumberyes

No examples provided.

read_asset_manager_intents ~133

List all available automation intents with their tool names, required parameters, and supported chains. Use this to discover which automations can be configured and what each one does. Each intent has a corresponding write_asset_manager.{id} tool that returns encoded args. To apply automations, call the intent tools then pass the combined result to write_account_set_asset_managers. All intent tools accept enabled=false to disable. Multiple intents can be combined by merging their returned arrays into a single set_asset_managers call.

NameTypeReqDescription
chain_idnumberFilter to automations available on this chain. Omit to see all.
NameTypeReqDescription
automationsarrayyes
shared_paramsarrayyes
usagestringyes

No examples provided.

read_asset_prices ~83

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
pricesobjectyes

No examples provided.

read_guides ~127

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 (rebalancer/compounder setup), strategies (step-by-step templates), selection (how to evaluate and parameterize strategies).

NameTypeReqDescription
topicstringoverview = addresses + tool catalog, automation = rebalancer/compounder/claimer 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
limitnumberMax leaderboard entries to return (default 25)
offsetnumberSkip first N leaderboard entries for pagination
NameTypeReqDescription
leaderboardarrayyes
limitnumberyes
offsetnumberyes
totalnumberyes

No examples provided.

read_pool_info ~96

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
daysnumberNumber of days of APY history
pool_addressstringyesPool address
NameTypeReqDescription
apy_historyarrayyes
poolobjectyes

No examples provided.

read_pool_list ~106

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
context_notesarray
poolsarrayyes

No examples provided.

read_strategy_info ~123

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
strategy_idnumberyesStrategy ID

Structured output declared, but exposes no named fields.

No examples provided.

read_strategy_list ~172

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
featured_onlybooleanReturn only featured/curated strategies (recommended)
limitnumberMax strategies to return (default 25)
offsetnumberSkip first N strategies for pagination
NameTypeReqDescription
context_notesarray
limitnumberyes
offsetnumberyes
strategiesarrayyes
totalnumberyes

No examples provided.

read_strategy_recommendation ~120

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)

Structured output declared, but exposes no named fields.

No examples provided.

read_wallet_accounts ~96

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
wallet_addressstringyesWallet address to list accounts for
NameTypeReqDescription
accountsarrayyes

No examples provided.

read_wallet_allowances ~125

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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 ~132

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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 ~426

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

NameTypeReqDescription
account_addressstringyesArcadia account address
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
depositsarrayWallet tokens to deposit. Approve each token first (write.wallet.approve). Omit to use only account collateral.
leveragenumber0 = no borrow, 2 = 2x leverage. Margin accounts only.
positionsarrayyesLP positions to mint. For a single position, pass one entry.
slippagenumberBasis points, 100 = 1%
use_account_assetsbooleanIf 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
tenderly_sim_statusstring
tenderly_sim_urlstring
transactionobjectyes

No examples provided.

write_account_borrow ~271

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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 ~494

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 to…
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
close_lp_onlybooleantrue = only burn LP positions, leave underlying tokens in account. false = full close (burn + swap + repay).
receive_assetsarrayTarget assets to receive after closing. For a single target, pass one entry. Required when close_lp_only=false. Omit for close_lp_only=true.
slippagenumberBasis points, 100 = 1%
NameTypeReqDescription
afterobject
beforeobject
descriptionstring
expected_value_changestring
tenderly_sim_statusstring
tenderly_sim_urlstring
transactionobjectyes

No examples provided.

write_account_create ~216

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_versionnumberAccount version: 0 = latest (V4 spot), 3 = margin (can borrow). 1/2 = legacy.
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
creditorstringLending 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 ~270

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
creditorstringyesLending pool address
numerairestringyesDebt token address
slippagenumberBasis points, 100 = 1%
NameTypeReqDescription
afterobject
beforeobject
descriptionstring
expected_value_changestring
tenderly_sim_statusstring
tenderly_sim_urlstring
transactionobjectyes

No examples provided.

write_account_deposit ~265

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_versionnumberOverride 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_idsarrayToken IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarrayV4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
descriptionstringyes
predicted_account_addressstring
transactionobjectyes

No examples provided.

write_account_remove_liquidity ~222

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
afterobject
beforeobject
descriptionstring
expected_value_changestring
tenderly_sim_statusstring
tenderly_sim_urlstring
transactionobjectyes

No examples provided.

write_account_repay ~252

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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_set_asset_managers ~216

Build an unsigned setAssetManagers transaction from encoded intent args. Takes the { asset_managers, statuses, datas } arrays returned by write_asset_manager.* intent tools and builds a single unsigned tx targeting the account. To combine multiple automations in one tx, concatenate the arrays from multiple intent tool calls before passing them here. Example: to enable rebalancer + merkl_operator, call both intent tools, merge their arrays, then pass the merged arrays to this tool. Returns { transaction: { to, data, value, chainId } }.

NameTypeReqDescription
account_addressstringyesArcadia account address (V3 or V4)
asset_managersarrayyesAsset manager addresses from intent tools
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
datasarrayyesEncoded callback data from intent tools (hex strings)
statusesarrayyesEnable/disable flags from intent tools
NameTypeReqDescription
descriptionstringyes
predicted_account_addressstring
transactionobjectyes

No examples provided.

write_account_stake ~211

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.

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

No examples provided.

write_account_swap ~234

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
slippagenumberBasis points, 100 = 1%
NameTypeReqDescription
afterobject
beforeobject
descriptionstring
expected_value_changestring
tenderly_sim_statusstring
tenderly_sim_urlstring
transactionobjectyes

No examples provided.

write_account_withdraw ~253

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_versionnumberOverride 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_idsarrayToken IDs: 0 for ERC20, NFT token ID for ERC721
asset_typesarrayV4 only. Asset types per asset: 1=ERC20, 2=ERC721, 3=ERC1155. If omitted, inferred from asset_ids (non-zero → ERC721).
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
NameTypeReqDescription
descriptionstringyes
predicted_account_addressstring
transactionobjectyes

No examples provided.

write_asset_manager_compounder ~198

Encode args for the standalone compounder automation. Claims accumulated LP trading fees and reinvests them back into the position (compound interest). LP fees only — does NOT claim staking rewards like AERO; use write_asset_manager_compounder_staked for staked positions earning emission tokens. When paired with a rebalancer, the rebalancer compounds at rebalance time — adding a compounder also compounds between rebalances for higher effective APY. Returns { asset_managers, statuses, datas } — pass to write_account_set_asset_managers. Combinable with other intent tools.

NameTypeReqDescription
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
dex_protocolstringyesDEX protocol of the LP position — used to resolve the correct asset manager address.
enabledbooleanTrue to enable, false to disable
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_compounder_staked ~306

Encode args for compounder coupled with CowSwap for staked LP positions (e.g. staked Slipstream/Aerodrome). Staked positions earn staking emission rewards (e.g. AERO on Aerodrome) — not LP fees. Claims these staking rewards, swaps them to a target token via CowSwap batch auctions (MEV-protected), then compounds back into the LP position. Sets metadata on BOTH the CowSwapper and the Compounder in a single call. sell_tokens is the list of reward token addresses (e.g. [AERO_address]). buy_token should be a major token in the pair (USDC, WETH, cbBTC). Returns { asset_managers, statuses, datas } with 2 entries (cowswapper + compounder). Base only. Combinable with other intent tools.

NameTypeReqDescription
buy_tokenstringyesToken address to buy — should be a major token in the pair (USDC, WETH, cbBTC)
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
dex_protocolstringyesDEX protocol of the LP position — used to resolve the correct asset manager address.
enabledbooleanTrue to enable, false to disable
sell_tokensarrayyesToken addresses to sell via CowSwap (typically [AERO] for staked positions)
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_cow_swapper ~161

Encode args for standalone direct CowSwap mode. Enables the CowSwapper to swap any ERC20 → ERC20 via CoW Protocol batch auctions (MEV-protected). Unlike compounder_staked or yield_claimer_cowswap, this is NOT coupled to any other automation — each swap requires an additional signature from the account owner. Only available on Base (8453). Returns { asset_managers, statuses, datas } — pass to write_account_set_asset_managers. Combinable with other intent tools.

NameTypeReqDescription
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
enabledbooleanTrue to enable, false to disable
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_merkl_operator ~175

Encode args for the Merkl operator automation. Claims external Merkl protocol incentive rewards into the account — additional rewards paid by token teams on top of regular LP fees. Enable when the pool has active Merkl campaigns (check APY breakdown in read_strategy_list). Always combine with rebalancer when both are relevant — no conflict, extra free yield. Available on all supported chains. Returns { asset_managers, statuses, datas } — pass to write_account_set_asset_managers. Combinable with other intent tools.

NameTypeReqDescription
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
enabledbooleanTrue to enable, false to disable
reward_recipientstringyesAddress to receive Merkl rewards
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_rebalancer ~697

Encode args for the rebalancer automation. When the LP position goes out of range, Arcadia's bot repositions it centered on the current price. All pending fees and staking rewards are claimed and compounded into the new position. Strategy config: 'default' (all params at defaults) uses when_out_of_range — rebalances exactly when price exits range. 'custom' (any param differs) uses time_and_price_based_triggers — adds configurable trigger offsets, cooldowns, and token composition. Returns { asset_managers, statuses, datas } — pass to write_account_set_asset_managers to build the unsigned tx. Combinable: merge arrays from multiple intent tools to configure several automations in one tx. trigger_lower_ratio and trigger_upper_ratio are independent — asymmetric configs are valid (e.g. trigger_lower_ratio=-50000, trigger_upper_ratio=0 means: trigger 5% of the tick range before the lower boundary is hit, but only trigger exactly at the upper boundary). Ratios represent tick distance, not price: a ratio of 50000 shifts the trigger by 5% of (tick_upper − tick_lower) ticks, which is not the same as 5% of price.

NameTypeReqDescription
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
compound_leftoversstringWhat to reinvest after rebalance (default "all" = compound both)
dex_protocolstringyesDEX protocol of the LP position — used to resolve the correct asset manager address.
enabledbooleanTrue to enable, false to disable
max_rebalance_timeintegerMax seconds before forced rebalance (default 1e12 = effectively disabled)
min_rebalance_timeintegerMin seconds between rebalances (default 3600 = 1 hour)
optimal_token0_ratiointegerTarget token0 composition scaled by 1e6: 500000 = 50%, 750000 = 75%
strategy_hookstringStrategy hook address. Defaults to minimal hook. Only override for custom hooks.
trigger_lower_ratiointegerOffset from tick_lower, as a fraction of the position's tick range, scaled by 1e6. trigger_tick_lower = tick_lower - tick_range * ratio. 0 = trigger at the boundary. Positive (e.g. 50000 = 5% of tick…
trigger_upper_ratiointegerOffset from tick_upper, as a fraction of the position's tick range, scaled by 1e6. trigger_tick_upper = tick_upper + tick_range * ratio. 0 = trigger at the boundary. Positive (e.g. 50000 = 5% of tick…
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_yield_claimer ~164

Encode args for the standalone yield claimer automation. Periodically claims pending fees/emissions and sends them to a designated recipient (wallet, another account, or any address). Returns { asset_managers, statuses, datas } — pass to write_account_set_asset_managers. Combinable with other intent tools.

NameTypeReqDescription
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
dex_protocolstringyesDEX protocol of the LP position — used to resolve the correct asset manager address.
enabledbooleanTrue to enable, false to disable
fee_recipientstringyesAddress to receive claimed fees (wallet address or any destination)
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_asset_manager_yield_claimer_cowswap ~308

Encode args for yield claimer coupled with CowSwap. Claims LP fees, then swaps the claimed tokens to a target token via CowSwap batch auctions (MEV-protected). For staked LPs, sell_tokens is the staking reward token list (e.g. [AERO_address]). For non-staked LPs, sell_tokens is all LP fee tokens except the buy_token — e.g. for a WETH/USDC LP claiming fees as USDC, use sell_tokens: [WETH_address], buy_token: USDC_address. Sets metadata on BOTH the CowSwapper and the Yield Claimer. Returns { asset_managers, statuses, datas } with 2 entries (cowswapper + yield_claimer). Base only. Combinable with other intent tools.

NameTypeReqDescription
buy_tokenstringyesToken address to receive after swap
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
dex_protocolstringyesDEX protocol of the LP position — used to resolve the correct asset manager address.
enabledbooleanTrue to enable, false to disable
fee_recipientstringyesAddress to receive claimed fees
sell_tokensarrayyesToken addresses to sell. Staked LP: [AERO]. Non-staked: [token0, token1] minus buy_token.
NameTypeReqDescription
asset_managersarrayyes
datasarrayyes
descriptionstring
statusesarrayyes
strategy_namestring

No examples provided.

write_pool_deposit ~211

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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 ~198

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_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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 ~224

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
amountstringERC20 only: amount in raw units, or 'max_uint256' for unlimited. Ignored for NFTs.
asset_typestringToken type: 'erc20' (default) for fungible tokens, 'erc721' or 'erc1155' for NFTs (LP positions)
chain_idnumberChain ID: 8453 (Base), 130 (Unichain), or 10 (Optimism)
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.