High-risk tools in VaultPilot MCP
32 of the 189 tools in VaultPilot MCP are classified as high risk. This page profiles those tools specifically, with recommended policy actions and the attack patterns that target them.
Every operation listed below is an action PolicyLayer recommends controlling at the transport layer. Open any tool to see the full profile, risk score, and YAML policy snippet.
Tools at high risk
-
combine_btc_psbtsExecuteMerge 2-15 partial PSBTs from multi-sig cosigners into one whose inputs carry every cosigner's signature. Each entry must be a base64-encoded PSBT v0 sharing the same unsigned t...
-
pair_ledger_btcExecutePair the host's directly-connected Ledger device for Bitcoin signing. REQUIREMENTS: Ledger plugged in over USB, device unlocked, the 'Bitcoin' app open on-screen. Ledger Live's ...
-
prepare_aave_repayExecuteBuild an unsigned Aave V3 repay transaction. If an ERC-20 approve() is required first, it is returned as the outer tx and repay is in `.next`. Pass `amount: "max"` to repay the ...
-
prepare_btc_multisig_sendExecuteInitiator flow — build a tx FROM a registered multi-sig wallet, sign it with our Ledger key in the same call, return the partial PSBT for cosigners to sign. Pipeline: (1) fetch ...
-
prepare_compound_repayExecuteBuild an unsigned Compound V3 repay transaction — encoded as supply(baseToken) against an outstanding borrow. Includes an approve step if needed. Pass `amount: "max"` for a full...
-
prepare_compound_supplyExecuteBuild an unsigned Compound V3 supply transaction (base token or collateral). If an ERC-20 approve() is required first, it is returned as the outer tx with supply in `.next`.
-
prepare_curve_swapExecuteBuild an unsigned Curve swap on Ethereum. Issue #615. Supports the canonical legacy stETH/ETH pool (0xDC24316b9AE028F1497c275EB9192a3Ea0f67022 — historically the tightest-spread...
-
prepare_custom_callExecuteESCAPE HATCH for arbitrary EVM contract calls — Timelock proposals, governance hooks, DAO ops, anything not covered by a protocol-specific `prepare_*`. BYPASSES the canonical-di...
-
prepare_kamino_init_userExecuteFirst-time Kamino setup. Creates the user lookup table + userMetadata PDA + obligation PDA (VanillaObligation, tag 0) on Kamino's main market in a single tx. ONE-TIME — required...
-
prepare_kamino_supplyExecuteBuild a Kamino deposit (supply) tx. Refuses if the wallet doesn't have Kamino userMetadata + obligation already initialized — run prepare_kamino_init_user first. Validates that ...
-
prepare_lido_unstakeExecuteBuild an unsigned Lido withdrawal request transaction. Wraps `requestWithdrawals` on the Lido Withdrawal Queue and includes an approve step if needed.
-
prepare_lido_unwrapExecuteBuild an unsigned wstETH.unwrap transaction that converts wstETH (non-rebasing) back into stETH (rebasing). No approval needed — burns wstETH from the caller's balance.
-
prepare_lido_wrapExecuteBuild an unsigned wstETH.wrap transaction that converts stETH (rebasing) into wstETH (non-rebasing). 1:1 by share count, no DEX fee. Includes an stETH approve step to the wstETH...
-
prepare_native_stake_deactivateExecuteBuild an unsigned native-stake deactivate tx. Initiates the one-epoch (~2-3 days) cooldown after which the stake becomes withdrawable; the stake earns no rewards during deactiva...
-
prepare_native_stake_delegateExecuteBuild an unsigned native-stake-program tx that creates a fresh stake account at a deterministic address (derived per (wallet, validator) via createAccountWithSeed) and delegates...
-
prepare_rocketpool_unstakeExecuteBuild an unsigned Rocket Pool unstake transaction (rETH.burn(uint256), redeems rETH for ETH from on-protocol collateral). No approval needed — burn operates on caller's balance....
-
prepare_safe_tx_executeExecuteBuild the final on-chain `execTransaction` UnsignedTx that lands a Safe (Gnosis Safe) multisig payload. The executor doesn't need to have pre-approved on-chain — when `msg.sende...
-
prepare_solana_lifi_swapExecuteBuild an unsigned LiFi-routed swap or bridge with Solana as the source chain. Returns a Solana v0 tx the user signs on Ledger. Two flows share this surface: (1) IN-CHAIN swap wh...
-
prepare_solana_nonce_initExecuteExplicit one-time setup of a per-wallet durable-nonce account at the deterministic PDA `PublicKey.createWithSeed(wallet, 'vaultpilot-nonce-v1', SystemProgram.programId)`. MOST U...
-
prepare_solana_swapExecuteBuild an unsigned Jupiter-routed swap DRAFT. Takes the `quote` object returned by `get_solana_swap_quote` and calls Jupiter's /swap-instructions endpoint to get the deconstructe...
-
prepare_swapExecutePrepare an unsigned swap or bridge transaction via LiFi aggregator. Same-chain swaps use the best DEX route; cross-chain swaps use a bridge + DEX combo. Default is exact-in (`am...
-
prepare_tron_freezeExecuteBuild an unsigned TRON Stake 2.0 FreezeBalanceV2 transaction. Locks TRX to earn `bandwidth` (fuels plain transfers) or `energy` (fuels smart-contract calls) and gains proportion...
-
prepare_tron_unfreezeExecuteBuild an unsigned TRON Stake 2.0 UnfreezeBalanceV2 transaction — begins the 14-day cooldown on a previously-frozen slice. The `amount` must not exceed what's currently frozen fo...
-
prepare_tron_voteExecuteBuild an unsigned TRON VoteWitnessContract transaction — casts votes for Super Representatives to earn voting rewards on frozen TRX. IMPORTANT: VoteWitness REPLACES the wallet's...
-
prepare_uniswap_v3_decrease_liquidityExecuteBuild an unsigned Uniswap V3 LP decreaseLiquidity transaction — removes liquidity from an existing position by tokenId. Pass `liquidityPct: 100` for a full close-out (typical fo...
-
prepare_uniswap_v3_increase_liquidityExecuteBuild an unsigned Uniswap V3 LP increaseLiquidity transaction — adds liquidity to an existing position identified by `tokenId`. Reads the position's (token0, token1, fee, tickLo...
-
prepare_uniswap_v3_rebalanceExecuteBuild an unsigned Uniswap V3 LP rebalance transaction — moves a position from its current tick range to a new one in a single multicall. Composes (in order): decreaseLiquidity(1...
-
prepare_weth_unwrapExecuteBuild an unsigned WETH → native ETH unwrap transaction via a direct `WETH.withdraw(uint256)` call on the canonical WETH9 contract for the target chain. Supported chains: ethereu...
-
preview_solana_sendExecuteSolana-only: finalize a prepared Solana tx for signing by fetching a FRESH recent blockhash, serializing the message bytes, and computing the base58(sha256(...)) Message Hash th...
-
sign_message_btcExecuteSign a UTF-8 message with a paired Bitcoin address using the Bitcoin Signed Message format (BIP-137). Returns a base64-encoded compact signature with a header byte that matches ...
-
sign_message_ltcExecuteSign a UTF-8 message with a paired Litecoin address using the BIP-137 compact-signature scheme (with Litecoin's `\x19Litecoin Signed Message:\n` prefix). Returns the signature p...
-
simulate_transactionExecuteRun an eth_call against the chain's RPC to simulate a transaction without signing or broadcasting it. Returns `{ ok, returnData?, revertReason? }`. Use this BEFORE prepare_*/sen...
Attacks that target this class
High-risk tools in any server share these documented attack patterns. Each links to the full case and the defensive policy.