Arcadia Finance

io.github.arcadia-finance由 GitHub 帳號 arcadia-finance 發布v0.6.1更新於 Nov 1, 2026

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

發布方自己的服務:Finance Foundation

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

Arcadia Finance 伺服器:讀取鏈上借貸與集中流動性資料,並在 Base、Unichain、Optimism、Robinhood 上建構未簽章 DeFi 交易。

可以做什麼
  • 讀取帳戶、錢包與部位:健康因子、抵押品、債務、歷史淨值、損益、餘額、授權額度、點數與 Aero 升級狀態
  • 讀取協議資料:借貸池與 APY 歷史、抵押資產與美元價格、LP 策略、再平衡建議、自動化意圖與指南
  • 建構帳戶類未簽章交易:建立、存入、提領、借款、還款、增加或移除流動性、兌換、去槓桿、平倉、質押與升級至 Aero
  • 建構錢包與資金池類未簽章交易:代幣授權、VELO 升級為 AERO、ERC-4626 份額存入或贖回
  • 可透過僅供開發使用的工具以本機私鑰簽章並廣播交易
適用情境
適合讓助理分析或管理 Arcadia 部位:檢視帳戶健康度與收益、比較借貸池與 LP 策略,或準備由獨立錢包簽章的 DeFi 交易。若只需一般行情資料或非 Arcadia 協議則無需使用。
執行需求
可作為遠端端點使用,也可透過 npm 套件在本機執行,需要 Node.js 22 或以上版本。可選設定 RPC_URL_BASE、RPC_URL_UNICHAIN、RPC_URL_OPTIMISM、RPC_URL_ROBINHOOD 覆寫公用 RPC。HTTP 模式使用 TRANSPORT、PORT、ALLOWED_ORIGINS、RATE_LIMIT_RPM。僅供開發的簽章工具需要 PK 私鑰變數。
安裝前請注意
寫入類工具回傳的是會動用真實資金的未簽章交易,伺服器本身不簽章也不廣播,需謹慎搭配錢包或簽章器。dev_send 工具會以 PK 私鑰簽章並廣播,明確不適用於正式環境。授權與存入會把代幣花費權限授予合約。HTTP 模式下可選擇啟用 PostHog 分析。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Arcadia Finance,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.arcadia-finance%2Fmcp-server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "arcadia-finance": {
      "type": "http",
      "url": "https://mcp.arcadia.finance/mcp"
    }
  }
}

README

Arcadia Finance MCP Server

[npm] [npm downloads] [License: AGPL-3.0] [TypeScript] [MCP] [Smithery] [MCP Badge] [arcadia-finance-mcp-server MCP server]

MCP server for Arcadia Finance, a platform for concentrated liquidity on Uniswap and Aero with automated rebalancing, compounding, yield optimization, and leverage, or single-sided liquidity into lending pools. Read protocol data and build unsigned transactions for LP management, borrowing, deposits, and more.

Designed for AI agents (Claude, Cursor, etc.) to interact with Arcadia onchain.

Install

[Install in VS Code] [Install in Cursor]

Tools

Read Tools

ToolDescription
read_account_infoAccount overview: health factor, collateral, debt, positions, liquidation price, automation status.
read_account_historyHistorical account value over time.
read_account_pnlPnL and yield data for an account.
read_wallet_accountsList all Arcadia accounts owned by a wallet address.
read_account_aero_upgradeWhat a wallet's accounts (or one account) have to upgrade to Aero: status and counts, no calldata.
read_wallet_balancesOn-chain ERC20 balances and native ETH for a wallet address.
read_wallet_allowancesCheck ERC20 token allowances for a spender. Use before write_wallet_approve to avoid redundant approvals.
read_wallet_pointsPoints balance for a specific wallet address.
read_asset_listSupported collateral assets with addresses, types, decimals.
read_asset_pricesUSD prices for one or more asset addresses.
read_pool_listAll lending pools: TVL, APY, utilization, liquidity.
read_pool_infoSingle pool detail with APY history over time.
read_point_leaderboardPaginated Arcadia points leaderboard.
read_strategy_listLP strategies with APY, underlyings, pool info. Supports featured filter and pagination.
read_strategy_infoFull detail for a specific LP strategy: APY per range width, pool config.
read_strategy_recommendationRebalancing recommendation for an account.
read_guidesReference guides: automation setup, strategy selection, strategy templates.
read_asset_manager_intentsAutomation intents and their params; add account_address for live per-account availability.
read_asset_manager_currentAutomations enabled on an account: decoded config, mapped intents, Merkl state, superseded managers.

Write Tools

All write tools return unsigned transactions as { to, data, value, chainId }.

ToolDescription
write_wallet_approveApprove an ERC20 token for spending. Required before depositing into an account. Call read_wallet_allowances first to check if already approved.
write_wallet_upgrade_veloUpgrade wallet VELO on Optimism to the new AERO on Base (approve, then the payable deposit).
write_pool_depositLend the pool's underlying asset into an ERC-4626 tranche to earn interest. Mints tranche shares to the receiver.
write_pool_redeemRedeem tranche shares back into the underlying asset (lender exit).
write_account_createCreate a new Arcadia account via Factory.
write_account_depositDeposit ERC20 tokens into an account.
write_account_withdrawWithdraw assets from an account.
write_account_borrowBorrow from a lending pool.
write_account_repayRepay debt to a lending pool from wallet.
write_account_add_liquidityFlash-action: deposit + swap + mint LP + optional leverage, atomically.
write_account_remove_liquidityRemove/decrease LP position liquidity.
write_account_swapSwap assets within an account (backend-routed).
write_account_deleverageRepay debt by selling collateral (swap + repay in one tx).
write_account_closeAtomic close: burn LP + swap + repay debt in one tx.
write_account_stakeStake, unstake, or claim rewards for LP positions.
write_account_aero_upgradeUpgrade an account to Aero: its Slipstream positions move to Aero CL and its old AERO becomes the new AERO, in one flashAction.
write_account_automationsConfigure automations from an intents array (full desired state). Returns the unsigned setAssetManagers tx.
write_account_automations_deltaEnable/disable individual automations, leaving the rest untouched.

Dev Tools

Always registered but requires PK env var to function.

ToolDescription
dev_sendSign and broadcast an unsigned transaction using a local private key (PK env var). Not for production: use a dedicated wallet MCP server instead.

Transaction Signing

All write tools return unsigned transactions as { to, data, value, chainId }. This server does NOT sign or broadcast — your agent or application is responsible for that.

Options

Wallet MCP servers (recommended for production): Pair this server with a wallet MCP server that handles signing:

Wallet MCPProviderModel
MCP Wallet SignerCommunityNon-custodial, routes to browser wallet (MetaMask, Rabby)
Coinbase AgentKitCoinbaseWallet-agnostic, supports multiple providers
Phantom MCPPhantomEmbedded wallet
Privy MCPPrivyWallet infrastructure
Safe MCPCommunityMulti-sig via Safe

Or use your existing wallet setup (Fireblocks, Dfns, Turnkey, Biconomy, Dynamic) and pass the unsigned tx object to your provider's signing method.

viem/ethers in your agent:

typescript
import { createWalletClient, http } from "viem";import { privateKeyToAccount } from "viem/accounts";import { base } from "viem/chains";
const account = privateKeyToAccount("0x...");const client = createWalletClient({ account, chain: base, transport: http() });
// tx = result from any write_* toolconst hash = await client.sendTransaction(tx);

Built-in dev_send tool (development only): The server includes a dev-only signing tool that reads a private key from the PK environment variable. Set PK via a .env file or your MCP client config:

bash
# .env in the server directory (never commit — already gitignored)PK=0xYourPrivateKeyHexRPC_URL_BASE=https://base-mainnet.g.alchemy.com/v2/your-key

The server loads .env automatically on startup. Works with any MCP client (Claude Desktop, Claude Code, VSCode, Cursor). MCP client env block settings take precedence if both are set.

Not for production — use a dedicated wallet MCP server (Fireblocks, Turnkey, Safe) instead.

Setup

Prerequisites: Node.js >= 22

bash
yarn installyarn build

Environment variables:

VariableRequiredDefaultTransportDescription
RPC_URL_BASENoPublic RPCBothRPC URL for Base (8453).
RPC_URL_UNICHAINNoPublic RPCBothRPC URL for Unichain (130).
RPC_URL_OPTIMISMNoPublic RPCBothRPC URL for Optimism (10).
RPC_URL_ROBINHOODNoPublic RPCBothRPC URL for Robinhood (4663).
PKNononeBothPrivate key (hex) for dev-only dev_send tool.
TRANSPORTNostdio—Transport mode: stdio or http.
PORTNo3000HTTPListen port for HTTP transport.
ALLOWED_ORIGINSNohttps://mcp.arcadia.financeHTTPComma-separated allowed Origin headers (CORS / DNS rebinding).
RATE_LIMIT_RPMNo600HTTPMax requests per minute per client IP.
POSTHOG_KEYNononeHTTPPostHog project key. Unset = no analytics are sent.
POSTHOG_HOSTNohttps://eu.i.posthog.comHTTPPostHog ingestion host.

Supported chains: Base (8453), Unichain (130), Optimism (10), Robinhood (4663)

MCP Client Configuration

Remote (no install needed):

json
{  "mcpServers": {    "arcadia-finance": {      "url": "https://mcp.arcadia.finance/mcp"    }  }}

Via npx (local stdio):

json
{  "mcpServers": {    "arcadia-finance": {      "command": "npx",      "args": ["-y", "@arcadia-finance/mcp-server"],      "env": {        "RPC_URL_BASE": "https://base-mainnet.g.alchemy.com/v2/your-key"      }    }  }}

Claude Code:

bash
# Remoteclaude mcp add arcadia-finance --transport http https://mcp.arcadia.finance/mcp
# Localclaude mcp add arcadia-finance -- npx -y @arcadia-finance/mcp-server

From source (local development):

json
{  "mcpServers": {    "arcadia-finance": {      "command": "node",      "args": ["/absolute/path/to/mcp-server/dist/index.js"],      "env": {        "RPC_URL_BASE": "https://base-mainnet.g.alchemy.com/v2/your-key"      }    }  }}

Skills

The skills/ directory contains Claude Code skills that teach AI agents how to use this MCP server effectively. To install a skill, symlink it into your Claude skills directory:

bash
ln -s /path/to/mcp-server/skills/clamm-liquidity ~/.claude/skills/clamm-liquidity

Available skills:

SkillDescription
clamm-liquidityConcentrated liquidity management: concepts, intent-based automation, and step-by-step workflows.

Reporting Issues

Found a bug, missing feature, or unclear documentation while using this server? Open an issue: https://github.com/arcadia-finance/mcp-server/issues

For AI agents: If you hit a gap during task execution, open an issue with:

  • Tool name and parameters you used
  • What you expected vs what happened
  • The strategy or goal you were trying to execute

Pull requests for documentation fixes are welcome from agents and humans alike. All PRs require human review before merging.

Where to Find Us

Development

bash
yarn dev          # Run with tsx (hot reload)yarn build        # Compile TypeScriptyarn test         # Run testsyarn lint         # Lint with ESLintyarn format       # Check formatting with Prettier

來源:README.md,提交 c60283f

工具

38

read_account_info

Get Account Info

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.

輸入參數chain_idaccount_address必填

read_account_history

Get Account History

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.

輸入參數dayschain_idaccount_address必填

read_account_pnl

Get Account PnL

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.

輸入參數chain_idaccount_address必填

read_pool_list

List Lending Pools

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.

輸入參數chain_id

read_pool_info

Get Pool Info

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.

輸入參數dayschain_idpool_address必填

read_asset_list

List Supported Assets

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.

輸入參數searchchain_id

read_asset_prices

Get Asset Prices

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

輸入參數chain_idasset_addresses必填

read_strategy_list

Get Strategies

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.

輸入參數limitoffsetchain_idfeatured_only

read_strategy_info

Get Strategy Info

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

輸入參數chain_idstrategy_id必填

read_strategy_recommendation

Get Recommendation

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.

輸入參數chain_idaccount_address必填

read_point_leaderboard

Get Points Leaderboard

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

輸入參數limitoffset

read_guides

Get Guide

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

輸入參數topic

read_wallet_balances

Get Wallet Balances

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.

輸入參數chain_idwallet_address必填token_addresses必填

read_wallet_allowances

Get Token Allowances

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.

輸入參數chain_idowner_address必填spender_address必填token_addresses必填

read_wallet_accounts

List Wallet Accounts

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.

輸入參數chain_idwallet_address必填

read_wallet_points

Get Wallet Points

Get Arcadia points balance for a specific wallet address.

輸入參數wallet_address必填

read_asset_manager_intents

List Available Automations

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.

輸入參數chain_idposition_idaccount_address

read_asset_manager_current

Read Current Account Automations

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.

輸入參數chain_idaccount_address必填

read_account_aero_upgrade

Check Aero Upgrade Candidates

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.

輸入參數chain_idwallet_addressaccount_address

write_account_create

Build Create Account Transaction

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

輸入參數salt必填chain_idcreditorwallet_address必填account_version

write_account_deposit

Build Deposit Transaction

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

輸入參數chain_idasset_idsasset_typesasset_amounts必填account_address必填account_versionasset_addresses必填

write_account_withdraw

Build Withdraw Transaction

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

輸入參數chain_idasset_idsasset_typesasset_amounts必填account_address必填account_versionasset_addresses必填

write_account_borrow

Build Borrow Transaction

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.

輸入參數to必填amount必填chain_idpool_address必填account_address必填

write_account_repay

Build Repay Transaction

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.

輸入參數amount必填chain_idpool_address必填account_address必填

write_account_add_liquidity

Build Add Liquidity Transaction

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.

輸入參數chain_iddepositsleverageslippagepositions必填wallet_address必填account_address必填use_account_assetsaccept_price_checks

write_account_remove_liquidity

Build Remove Liquidity Transaction

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.

輸入參數asset_id必填chain_idadjustment必填asset_address必填account_address必填

write_account_swap

Build Swap Transaction

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.

輸入參數asset_to必填chain_idslippageamount_in必填asset_from必填account_address必填

write_account_deleverage

Build Deleverage Transaction

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.

輸入參數chain_idcreditor必填slippageamount_in必填numeraire必填asset_from必填account_address必填

write_account_stake

Build Position Action Transaction

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.

輸入參數action必填asset_id必填chain_idasset_address必填account_address必填

write_account_close

Build Close Position Transaction

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.

輸入參數assets必填chain_idslippageclose_lp_onlyreceive_assetsaccount_address必填

write_account_aero_upgrade

Build Aero Upgrade Transaction

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 h

輸入參數choicesaccountschain_idslippagemin_blockaccount_address

write_wallet_approve

Build Approve Transaction

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.

輸入參數amountchain_idasset_typetoken_address必填spender_address必填

write_wallet_upgrade_velo

Build VELO Upgrade Transactions

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

輸入參數amountchain_idowner_address必填

write_pool_deposit

Build Pool Deposit Transaction

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.

輸入參數assets必填chain_idreceiver必填tranche_address必填

write_pool_redeem

Build Pool Redeem Transaction

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.

輸入參數owner必填shares必填chain_idreceiver必填tranche_address必填

write_account_automations

Configure Account Automations

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

輸入參數modeownertoken0token1intents必填chain_idprotocolis_stakedposition_idreward_tokensaccount_address必填

write_account_automations_delta

Change Account Automations (Delta)

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

輸入參數ownerenabletoken0token1disablechain_idprotocolis_stakedposition_idreward_tokensaccount_address必填

dev_send

Sign and Send Transaction

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.

輸入參數to必填data必填valuechain_id

版本歷史

3
  1. v0.6.1最新Oct 25, 2026
  2. v0.6.0Oct 22, 2026
  3. v0.5.1Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Finance 整合