# VaultPilot MCP MCP server

Agent View of the PolicyLayer registry record for VaultPilot MCP: identity, probed posture, risk grade, and all 189 tools classified. HTML page: https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp

## Facts

- Server id: `vaultpilot-mcp`
- Install: `npx -y vaultpilot-mcp`
- Homepage: https://github.com/szhygulin/vaultpilot-mcp
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 189 (173 with introspected schema)
- Tool categories present: Destructive, Execute, Financial, Read, Write
- Context-window cost: 82778 tokens per request — https://policylayer.com/token-cost/io-github-szhygulin-vaultpilot-mcp
- Tags: io github szhygulin vaultpilot mcp, payments, admin, automation
- Record last modified: 2026-08-06T11:20:49.682Z

## Tools (189)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `prepare_btc_lifi_swap` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-btc-lifi-swap.md |
| `prepare_btc_rbf_bump` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-btc-rbf-bump.md |
| `prepare_jito_stake` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-jito-stake.md |
| `prepare_marginfi_init` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marginfi-init.md |
| `prepare_solana_nonce_close` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-nonce-close.md |
| `prepare_sunswap_swap` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-sunswap-swap.md |
| `prepare_uniswap_v3_burn` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-burn.md |
| `prepare_uniswap_v3_mint` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-mint.md |
| `remove_contact` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/remove-contact.md |
| `unregister_btc_multisig_wallet` | Destructive | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/unregister-btc-multisig-wallet.md |
| `combine_btc_psbts` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/combine-btc-psbts.md |
| `pair_ledger_btc` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/pair-ledger-btc.md |
| `prepare_aave_repay` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-aave-repay.md |
| `prepare_btc_multisig_send` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-btc-multisig-send.md |
| `prepare_compound_repay` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-compound-repay.md |
| `prepare_compound_supply` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-compound-supply.md |
| `prepare_curve_swap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-curve-swap.md |
| `prepare_custom_call` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-custom-call.md |
| `prepare_kamino_init_user` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-kamino-init-user.md |
| `prepare_kamino_supply` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-kamino-supply.md |
| `prepare_lido_unstake` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-lido-unstake.md |
| `prepare_lido_unwrap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-lido-unwrap.md |
| `prepare_lido_wrap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-lido-wrap.md |
| `prepare_native_stake_deactivate` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-native-stake-deactivate.md |
| `prepare_native_stake_delegate` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-native-stake-delegate.md |
| `prepare_rocketpool_unstake` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-rocketpool-unstake.md |
| `prepare_safe_tx_execute` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-safe-tx-execute.md |
| `prepare_solana_lifi_swap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-lifi-swap.md |
| `prepare_solana_nonce_init` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-nonce-init.md |
| `prepare_solana_swap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-swap.md |
| `prepare_swap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-swap.md |
| `prepare_tron_freeze` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-freeze.md |
| `prepare_tron_unfreeze` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-unfreeze.md |
| `prepare_tron_vote` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-vote.md |
| `prepare_uniswap_v3_decrease_liquidity` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-decrease-liquidity.md |
| `prepare_uniswap_v3_increase_liquidity` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-increase-liquidity.md |
| `prepare_uniswap_v3_rebalance` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-rebalance.md |
| `prepare_weth_unwrap` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-weth-unwrap.md |
| `preview_solana_send` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/preview-solana-send.md |
| `sign_message_btc` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/sign-message-btc.md |
| `sign_message_ltc` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/sign-message-ltc.md |
| `simulate_transaction` | Execute | High | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/simulate-transaction.md |
| `finalize_btc_psbt` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/finalize-btc-psbt.md |
| `prepare_aave_borrow` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-aave-borrow.md |
| `prepare_aave_supply` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-aave-supply.md |
| `prepare_aave_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-aave-withdraw.md |
| `prepare_btc_send` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-btc-send.md |
| `prepare_compound_borrow` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-compound-borrow.md |
| `prepare_compound_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-compound-withdraw.md |
| `prepare_eigenlayer_deposit` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-eigenlayer-deposit.md |
| `prepare_kamino_borrow` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-kamino-borrow.md |
| `prepare_kamino_repay` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-kamino-repay.md |
| `prepare_kamino_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-kamino-withdraw.md |
| `prepare_lido_stake` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-lido-stake.md |
| `prepare_marginfi_borrow` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marginfi-borrow.md |
| `prepare_marginfi_repay` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marginfi-repay.md |
| `prepare_marginfi_supply` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marginfi-supply.md |
| `prepare_marginfi_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marginfi-withdraw.md |
| `prepare_marinade_stake` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marinade-stake.md |
| `prepare_marinade_unstake_immediate` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-marinade-unstake-immediate.md |
| `prepare_morpho_borrow` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-borrow.md |
| `prepare_morpho_repay` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-repay.md |
| `prepare_morpho_supply` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-supply.md |
| `prepare_morpho_supply_collateral` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-supply-collateral.md |
| `prepare_morpho_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-withdraw.md |
| `prepare_morpho_withdraw_collateral` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-morpho-withdraw-collateral.md |
| `prepare_native_send` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-native-send.md |
| `prepare_native_stake_withdraw` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-native-stake-withdraw.md |
| `prepare_rocketpool_stake` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-rocketpool-stake.md |
| `prepare_safe_tx_propose` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-safe-tx-propose.md |
| `prepare_tron_claim_rewards` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-claim-rewards.md |
| `prepare_tron_lifi_swap` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-lifi-swap.md |
| `prepare_tron_native_send` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-native-send.md |
| `prepare_tron_withdraw_expire_unfreeze` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-withdraw-expire-unfreeze.md |
| `prepare_uniswap_swap` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-swap.md |
| `prepare_uniswap_v3_collect` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-uniswap-v3-collect.md |
| `send_transaction` | Financial | Critical | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/send-transaction.md |
| `build_incident_report` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/build-incident-report.md |
| `check_contract_security` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/check-contract-security.md |
| `check_permission_risks` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/check-permission-risks.md |
| `compare_yields` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/compare-yields.md |
| `estimate_staking_yield` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/estimate-staking-yield.md |
| `exit_demo_mode` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/exit-demo-mode.md |
| `explain_tx` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/explain-tx.md |
| `get_btc_account_balance` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-account-balance.md |
| `get_btc_balance` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-balance.md |
| `get_btc_balances` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-balances.md |
| `get_btc_block_stats` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-block-stats.md |
| `get_btc_block_tip` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-block-tip.md |
| `get_btc_blocks_recent` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-blocks-recent.md |
| `get_btc_chain_tips` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-chain-tips.md |
| `get_btc_fee_estimates` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-fee-estimates.md |
| `get_btc_mempool_summary` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-mempool-summary.md |
| `get_btc_multisig_balance` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-multisig-balance.md |
| `get_btc_multisig_utxos` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-multisig-utxos.md |
| `get_btc_tx_history` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-btc-tx-history.md |
| `get_coin_price` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-coin-price.md |
| `get_compound_market_info` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-compound-market-info.md |
| `get_compound_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-compound-positions.md |
| `get_contract_abi` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-contract-abi.md |
| `get_curve_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-curve-positions.md |
| `get_daily_briefing` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-daily-briefing.md |
| `get_demo_wallet` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-demo-wallet.md |
| `get_health_alerts` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-health-alerts.md |
| `get_kamino_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-kamino-positions.md |
| `get_ledger_device_info` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ledger-device-info.md |
| `get_ledger_status` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ledger-status.md |
| `get_lending_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-lending-positions.md |
| `get_lp_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-lp-positions.md |
| `get_ltc_balance` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-balance.md |
| `get_ltc_block_stats` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-block-stats.md |
| `get_ltc_block_tip` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-block-tip.md |
| `get_ltc_blocks_recent` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-blocks-recent.md |
| `get_ltc_chain_tips` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-chain-tips.md |
| `get_ltc_mempool_summary` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-ltc-mempool-summary.md |
| `get_marginfi_diagnostics` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-marginfi-diagnostics.md |
| `get_marginfi_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-marginfi-positions.md |
| `get_market_incident_status` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-market-incident-status.md |
| `get_morpho_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-morpho-positions.md |
| `get_nft_collection` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-nft-collection.md |
| `get_nft_history` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-nft-history.md |
| `get_nft_listings` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-nft-listings.md |
| `get_nft_portfolio` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-nft-portfolio.md |
| `get_pnl_summary` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-pnl-summary.md |
| `get_portfolio_diff` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-portfolio-diff.md |
| `get_portfolio_summary` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-portfolio-summary.md |
| `get_protocol_risk_score` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-protocol-risk-score.md |
| `get_safe_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-safe-positions.md |
| `get_solana_setup_status` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-solana-setup-status.md |
| `get_solana_staking_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-solana-staking-positions.md |
| `get_solana_swap_quote` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-solana-swap-quote.md |
| `get_staking_positions` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-staking-positions.md |
| `get_staking_rewards` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-staking-rewards.md |
| `get_swap_quote` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-swap-quote.md |
| `get_token_allowances` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-token-allowances.md |
| `get_token_balance` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-token-balance.md |
| `get_token_metadata` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-token-metadata.md |
| `get_token_price` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-token-price.md |
| `get_transaction_history` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-transaction-history.md |
| `get_transaction_status` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-transaction-status.md |
| `get_tron_staking` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-tron-staking.md |
| `get_tx_verification` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-tx-verification.md |
| `get_update_command` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-update-command.md |
| `get_vaultpilot_config_status` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-vaultpilot-config-status.md |
| `get_verification_artifact` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/get-verification-artifact.md |
| `import_readonly_token` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/import-readonly-token.md |
| `list_contacts` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/list-contacts.md |
| `list_readonly_invites` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/list-readonly-invites.md |
| `list_solana_validators` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/list-solana-validators.md |
| `list_tron_witnesses` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/list-tron-witnesses.md |
| `pair_ledger_live` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/pair-ledger-live.md |
| `pair_ledger_ltc` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/pair-ledger-ltc.md |
| `pair_ledger_solana` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/pair-ledger-solana.md |
| `pair_ledger_tron` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/pair-ledger-tron.md |
| `read_contract` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/read-contract.md |
| `rescan_btc_account` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/rescan-btc-account.md |
| `rescan_ltc_account` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/rescan-ltc-account.md |
| `resolve_ens_name` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/resolve-ens-name.md |
| `resolve_token` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/resolve-token.md |
| `reverse_resolve_ens` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/reverse-resolve-ens.md |
| `share_strategy` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/share-strategy.md |
| `sign_btc_multisig_psbt` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/sign-btc-multisig-psbt.md |
| `simulate_position_change` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/simulate-position-change.md |
| `verify_contacts` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/verify-contacts.md |
| `verify_ledger_attestation` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/verify-ledger-attestation.md |
| `verify_ledger_firmware` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/verify-ledger-firmware.md |
| `verify_ledger_live_codesign` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/verify-ledger-live-codesign.md |
| `verify_tx_decode` | Read | Low | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/verify-tx-decode.md |
| `add_contact` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/add-contact.md |
| `generate_readonly_link` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/generate-readonly-link.md |
| `import_strategy` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/import-strategy.md |
| `prepare_curve_add_liquidity` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-curve-add-liquidity.md |
| `prepare_litecoin_native_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-litecoin-native-send.md |
| `prepare_revoke_approval` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-revoke-approval.md |
| `prepare_safe_tx_approve` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-safe-tx-approve.md |
| `prepare_solana_native_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-native-send.md |
| `prepare_solana_spl_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-spl-send.md |
| `prepare_token_approve` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-token-approve.md |
| `prepare_token_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-token-send.md |
| `prepare_tron_token_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-token-send.md |
| `prepare_tron_trc20_approve` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/prepare-tron-trc20-approve.md |
| `preview_send` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/preview-send.md |
| `register_btc_multisig_wallet` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/register-btc-multisig-wallet.md |
| `request_capability` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/request-capability.md |
| `revoke_readonly_invite` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/revoke-readonly-invite.md |
| `set_demo_wallet` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/set-demo-wallet.md |
| `set_etherscan_api_key` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/set-etherscan-api-key.md |
| `set_helius_api_key` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/set-helius-api-key.md |
| `submit_safe_tx_signature` | Write | Medium | https://policylayer.com/tools/io-github-szhygulin-vaultpilot-mcp/submit-safe-tx-signature.md |

## Tool descriptions

- `prepare_btc_lifi_swap` — Build an unsigned Bitcoin PSBT-v0 that bridges native BTC to a token on another chain via LiFi's aggregator. LiFi auctions the route across intent solvers (NEAR Intents, Garden, Thorswap, Chainflip, Symbiosis, …) and returns a PSBT depos…
- `prepare_btc_rbf_bump` — Build a BIP-125 Replace-By-Fee replacement for a stuck mempool BTC tx. Reuses the original tx's exact input set, preserves every recipient verbatim, and shrinks the change output to absorb the fee bump. Sequence stays at 0xFFFFFFFD so th…
- `prepare_jito_stake` — Build an unsigned Jito stake-pool deposit tx: deposit amountSol SOL into Jito's stake pool and receive jitoSOL (Jito's liquid-staking token). Uses the SPL stake-pool program's raw DepositSol instruction with the user's wallet as the on-c…
- `prepare_marginfi_init` — One-time setup: build a tx that creates a deterministic MarginfiAccount PDA under the user's wallet on MarginFi mainnet. Uses marginfi_account_initialize_pda so only the wallet (authority + fee_payer) signs — no ephemeral keypair require…
- `prepare_solana_nonce_close` — Tear down a previously-initialized durable-nonce account and return its full balance (~0.00144 SOL) to the main wallet. ix[0] = SystemProgram.nonceAdvance (self-protecting, same pattern as any durable-nonce-protected send — so this close…
- `prepare_sunswap_swap` — Build an unsigned SunSwap V2 same-chain swap on TRON. SunSwap V2 is a Uniswap-V2 fork; this tool routes through the V2 router (TNJVzGqKBWkJxJB5XYSqGAwUTV15U24pPq) using the standard swapExactETHForTokens / swapExactTokensForETH / swapExa…
- `prepare_uniswap_v3_burn` — Build an unsigned Uniswap V3 LP burn transaction — destroys the position NFT (irreversible). Hard-refuses unless the position is fully drained: liquidity == 0 AND tokensOwed{0,1} == 0. Standard close-out sequence: prepare_uniswap_v3_decr…
- `prepare_uniswap_v3_mint` — Build an unsigned Uniswap V3 LP mint transaction — opens a new concentrated-liquidity position on the (tokenA, tokenB, feeTier) pool, bounded by [tickLower, tickUpper]. Up to two ERC-20 approvals are chained ahead of the mint() call (one…
- `remove_contact` — Remove a labeled contact. Without chain, removes the label from EVERY chain that has it (one device interaction per chain when removing a signed entry). With chain, removes only that chain's entry — the label can survive on other chains.…
- `unregister_btc_multisig_wallet` — Drop a registered multi-sig wallet from the local cache. The Ledger device retains the policy HMAC indefinitely (no on-device unregister API), so re-registering with the SAME descriptor + cosigners returns the same HMAC the device alread…
- `combine_btc_psbts` — Merge 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 tx body (same inputs/outputs/sequences/locktime); only per-co…
- `pair_ledger_btc` — Pair 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 WalletConnect relay does NOT expose bip122 accounts to dApps…
- `prepare_aave_repay` — Build 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 full debt.
- `prepare_btc_multisig_send` — Initiator 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 UTXOs across the wallet's gap-limit window, (2) coin-select …
- `prepare_compound_repay` — Build 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 repay.
- `prepare_compound_supply` — Build 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_swap` — Build an unsigned Curve swap on Ethereum. Issue #615. Supports the canonical legacy stETH/ETH pool (0xDC24316b9AE028F1497c275EB9192a3Ea0f67022 — historically the tightest-spread venue for stETH↔ETH) and any plain pool registered with the…
- `prepare_custom_call` — ESCAPE HATCH for arbitrary EVM contract calls — Timelock proposals, governance hooks, DAO ops, anything not covered by a protocol-specific prepare_*. BYPASSES the canonical-dispatch allowlist by design; the schema's acknowledgeNonProtoco…
- `prepare_kamino_init_user` — First-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 prerequisite before prepare_kamino_supply / borrow / withdr…
- `prepare_kamino_supply` — Build 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 the mint is listed on Kamino's main market; resolves decimal…
- `prepare_lido_unstake` — Build an unsigned Lido withdrawal request transaction. Wraps requestWithdrawals on the Lido Withdrawal Queue and includes an approve step if needed.
- `prepare_lido_unwrap` — Build 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_wrap` — Build 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 contract if needed.
- `prepare_native_stake_deactivate` — Build 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 deactivation. Wallet must be the stake account's staker authority. A…
- `prepare_native_stake_delegate` — Build an unsigned native-stake-program tx that creates a fresh stake account at a deterministic address (derived per (wallet, validator) via createAccountWithSeed) and delegates it to the given validator vote account. Funds the stake acc…
- `prepare_rocketpool_unstake` — Build 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. Preflights wallet rETH balance and rETH contract collateral…
- `prepare_safe_tx_execute` — Build 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.sender is an owner, the Safe contract treats their inline (r=msg.sen…
- `prepare_solana_lifi_swap` — Build 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 when toChain="solana" — LiFi internally routes through Jupiter…
- `prepare_solana_nonce_init` — Explicit one-time setup of a per-wallet durable-nonce account at the deterministic PDA PublicKey.createWithSeed(wallet, 'vaultpilot-nonce-v1', SystemProgram.programId). MOST USERS DO NOT NEED TO CALL THIS DIRECTLY — prepare_solana_native…
- `prepare_solana_swap` — Build 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 deconstructed instruction list, then composes the final v0 tx: [nonceAdvance…
- `prepare_swap` — Prepare 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 (amount = fromToken); set amountSide: "to" for exact-out (amount…
- `prepare_tron_freeze` — Build an unsigned TRON Stake 2.0 FreezeBalanceV2 transaction. Locks TRX to earn bandwidth (fuels plain transfers) or energy (fuels smart-contract calls) and gains proportional voting power. IMPORTANT: freezing alone does NOT accrue TRX r…
- `prepare_tron_unfreeze` — Build 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 for that resource (query get_tron_staking first; TronGrid reject…
- `prepare_tron_vote` — Build an unsigned TRON VoteWitnessContract transaction — casts votes for Super Representatives to earn voting rewards on frozen TRX. IMPORTANT: VoteWitness REPLACES the wallet's entire prior vote allocation atomically. Pass every SR you …
- `prepare_uniswap_v3_decrease_liquidity` — Build an unsigned Uniswap V3 LP decreaseLiquidity transaction — removes liquidity from an existing position by tokenId. Pass liquidityPct: 100 for a full close-out (typical follow-up: prepare_uniswap_v3_collect, then optionally prepare_u…
- `prepare_uniswap_v3_increase_liquidity` — Build an unsigned Uniswap V3 LP increaseLiquidity transaction — adds liquidity to an existing position identified by tokenId. Reads the position's (token0, token1, fee, tickLower, tickUpper) on-chain via positions(tokenId), so the caller…
- `prepare_uniswap_v3_rebalance` — Build 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(100%) + collect + (optional) burn + mint(new range). The posi…
- `prepare_weth_unwrap` — Build 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: ethereum, arbitrum, polygon, base, optimism. Pass an explicit decimal…
- `preview_solana_send` — Solana-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 the Ledger Solana app will display on blind-sign. MUST be call…
- `sign_message_btc` — Sign 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 the address-type convention (legacy / P2SH-wrapped / native …
- `sign_message_ltc` — Sign 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 plus messageSha256 — lowercase hex SHA-256 of the exact UTF-8 b…
- `simulate_transaction` — Run 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_*/send_transaction to verify a contract call does what you expect —…
- `finalize_btc_psbt` — Finalize a fully-signed multi-sig PSBT (typically the output of combine_btc_psbts once the threshold is met) and extract the broadcast-ready tx hex. Refuses with a per-input breakdown when any input is below its threshold (e.g. "input 0:…
- `prepare_aave_borrow` — Build an unsigned Aave V3 borrow transaction (variable rate — stable rate is deprecated and reverts on production markets). The borrower must already have sufficient collateral supplied.
- `prepare_aave_supply` — Build an unsigned Aave V3 supply transaction. If an ERC-20 approve() is required first, it is returned as the outer tx and the supply tx is embedded in .next. Both must be signed for the supply to succeed.
- `prepare_aave_withdraw` — Build an unsigned Aave V3 withdraw transaction. Pass amount: "max" to withdraw the entire aToken balance.
- `prepare_btc_send` — Build an unsigned Bitcoin native-send PSBT (segwit/taproot only in Phase 1). Returns a 15-min handle the agent forwards to send_transaction; the Ledger BTC app clear-signs every output (address + amount) + fee on-screen, so there is NO b…
- `prepare_compound_borrow` — Build an unsigned Compound V3 borrow transaction. Compound V3 encodes a borrow as withdraw(baseToken) drawn beyond the wallet's supplied balance — the base token is resolved on-chain from the Comet market so you only pass the market addr…
- `prepare_compound_withdraw` — Build an unsigned Compound V3 withdraw transaction. Pass amount: "max" to withdraw the full supplied balance.
- `prepare_eigenlayer_deposit` — Build an unsigned EigenLayer StrategyManager.depositIntoStrategy transaction. Includes an ERC-20 approve step if needed.
- `prepare_kamino_borrow` — Build a Kamino borrow tx — pulls liquidity from a reserve as debt against the obligation's existing collateral. Refuses if the wallet hasn't run prepare_kamino_init_user; refuses if the mint isn't listed on Kamino's main market. On-chain…
- `prepare_kamino_repay` — Build a Kamino repay tx — pays down outstanding debt in the named reserve. Refuses with a clear error if the wallet has no debt in the reserve. The on-chain program clamps repayment at outstanding debt, so over-repaying just doesn't burn…
- `prepare_kamino_withdraw` — Build a Kamino withdraw tx — pulls liquidity out of a previously-supplied reserve. Refuses with a clear error if the wallet has no deposit in the named reserve. Health-factor gated on-chain: withdraws that would leave the obligation unde…
- `prepare_lido_stake` — Build an unsigned Lido stake transaction (wraps ETH into stETH via stETH.submit). The tx's value field is the ETH amount to stake.
- `prepare_marginfi_borrow` — Build an unsigned MarginFi BORROW tx against the user's supplied collateral. Pre-flight refuses if the account has zero free collateral. The SDK computes the required oracle-refresh instructions and the health-factor gate is enforced on-…
- `prepare_marginfi_repay` — Build an unsigned MarginFi REPAY tx against outstanding debt in the named bank. Pass repayAll: true to repay the full outstanding debt (also clears the balance slot). DURABLE NONCE + prepare_marginfi_init prerequisites identical to prepa…
- `prepare_marginfi_supply` — Build an unsigned MarginFi SUPPLY tx for a given bank (by symbol or mint). Supplies the specified amount of the underlying token into the user's MarginfiAccount position in that bank, earning the bank's supply APY. DURABLE NONCE REQUIRED…
- `prepare_marginfi_withdraw` — Build an unsigned MarginFi WITHDRAW tx. Withdraws the specified amount (or ALL, via withdrawAll: true) from the user's supplied position in the named bank. Pre-flight refuses if the account has zero free collateral (the withdraw would pu…
- `prepare_marinade_stake` — Build an unsigned Marinade stake tx: deposit amountSol SOL into Marinade and receive mSOL (Marinade's liquid-staking token). Uses the Marinade SDK's marinade.deposit so the on-chain Authorized signer is the user's wallet — no ephemeral k…
- `prepare_marinade_unstake_immediate` — Build an unsigned Marinade IMMEDIATE liquid-unstake tx: burn amountMSol mSOL and receive SOL in the same tx via Marinade's liquidity pool (NOT delayed-unstake / OrderUnstake — that flow returns full SOL after one epoch but requires an ep…
- `prepare_morpho_borrow` — Build an unsigned Morpho Blue borrow transaction. Requires pre-existing collateral in the market.
- `prepare_morpho_repay` — Build an unsigned Morpho Blue repay transaction. Includes an approve step if needed. Explicit amount only — "max" is not supported.
- `prepare_morpho_supply` — Build an unsigned Morpho Blue supply transaction — deposits the market's loan token to earn lending yield. Market params (loan/collateral tokens, oracle, IRM, LLTV) are resolved on-chain from the market id, so only wallet/marketId/amount…
- `prepare_morpho_supply_collateral` — Build an unsigned Morpho Blue supplyCollateral transaction — adds collateral to a market. Includes an approve step if needed.
- `prepare_morpho_withdraw` — Build an unsigned Morpho Blue withdraw transaction (withdraws supplied loan token). Explicit amount only — "max" is not supported; query your position first.
- `prepare_morpho_withdraw_collateral` — Build an unsigned Morpho Blue withdrawCollateral transaction — removes collateral from a market to send back to the wallet. Only withdraws the exact amount specified; "max" is NOT supported because Morpho's isolated-market accounting doe…
- `prepare_native_send` — Build an unsigned native-coin send transaction (ETH on Ethereum/Arbitrum). Pass a human-readable amount like "0.5".
- `prepare_native_stake_withdraw` — Build an unsigned native-stake withdraw tx. Pulls amountSol SOL (or 'max' for the full lamport balance) from an inactive stake account back into the wallet. 'max' closes the account and reclaims the rent-exempt seed; partial-withdraw lea…
- `prepare_rocketpool_stake` — Build an unsigned Rocket Pool stake transaction (RocketDepositPool.deposit() payable, mints rETH at the current exchange rate). Ethereum mainnet only — rETH on L2s is bridged and cannot be deposit-and-mint. Preflights getMaximumDepositAm…
- `prepare_safe_tx_propose` — Propose a new Safe (Gnosis Safe) multisig transaction. Wraps an inner action — either a previous prepare_*'s handle (recommended; pulls to/value/data from server-side state) OR raw to / value / data — into a SafeTx, computes its EIP-712 …
- `prepare_tron_claim_rewards` — Build an unsigned TRON WithdrawBalance transaction that claims accumulated voting rewards to the owner's balance. TRON enforces a 24-hour cooldown between claims — TronGrid will reject (surfaced as an error) if the previous claim was ins…
- `prepare_tron_lifi_swap` — Build an unsigned LiFi-routed cross-chain bridge with TRON as the source chain. User signs a TRON tx via Ledger over USB; the bridge protocol delivers tokens on the destination (any EVM chain or Solana) after the source confirms (typical…
- `prepare_tron_native_send` — Build an unsigned TRON native TRX send transaction via TronGrid's /wallet/createtransaction. Returns a human-readable preview + opaque handle. Forward the handle via send_transaction to sign on the directly-connected Ledger (USB HID via …
- `prepare_tron_withdraw_expire_unfreeze` — Build an unsigned TRON WithdrawExpireUnfreeze transaction — sweeps every matured unfreeze slice (those whose 14-day cooldown elapsed) back to liquid TRX. No amount needed; the chain drains all eligible slices in one call. Inspect pending…
- `prepare_uniswap_swap` — Prepare a direct Uniswap V3 swap (bypasses LiFi aggregator). Use this ONLY when the user explicitly asks for Uniswap — otherwise default to prepare_swap which compares routes across venues. Same-chain only (Uniswap V3 is not a bridge). A…
- `prepare_uniswap_v3_collect` — Build an unsigned Uniswap V3 LP collect transaction — harvests every token the position is owed (decreased liquidity from prior prepare_uniswap_v3_decrease_liquidity calls + accrued swap fees) up to uint128.max per side. Hard-refuses whe…
- `send_transaction` — Forward an already-prepared transaction to the Ledger device for user signing. Routes on the handle's origin: EVM handles (prepare_aave_*, prepare_compound_*, prepare_swap, prepare_native_send, ...) go through Ledger Live via WalletConne…
- `build_incident_report` — Build a forensic incident-report bundle for a security review or disclosure. Read-only — gathers evidence already available to the server (demo-mode state, paired Ledger summary, skill / pin-drift notice flags) and, if you supply wallet …
- `check_contract_security` — Check Etherscan verification status, EIP-1967 proxy pattern, implementation/admin slots, and the presence of dangerous admin functions (mint, pause, upgradeTo, etc.) for a given contract. SCOPE: surfaces verification + admin-surface find…
- `check_permission_risks` — Enumerate privileged roles on a contract (Ownable.owner, AccessControl hints) and classify holders as EOA, Gnosis Safe multisig, or TimelockController. SCOPE: surfaces governance posture (who controls the contract, how hard would it be t…
- `compare_yields` — READ-ONLY — return a ranked table of supply-side yield opportunities for a given asset across every integrated lending / staking protocol. v1 covers Aave V3 (5 EVM chains), Compound V3 (5 EVM chains, multi-market per chain), and Lido stE…
- `estimate_staking_yield` — Project annual yield on a hypothetical staking amount for Lido or EigenLayer using current APRs. Use this for 'what would I earn if I staked X ETH?' questions before the user commits capital. Returns the protocol, input amount, APR used,…
- `exit_demo_mode` — Build a step-by-step guide for the user to exit demo mode and switch to operational (real signing) mode. The MCP server CANNOT actually unset VAULTPILOT_DEMO or invoke the setup wizard — both require user action outside the MCP. This too…
- `explain_tx` — Narrative analysis of a single confirmed transaction. AGENT BEHAVIOR: when the user pastes a tx hash (or an Etherscan / Arbiscan / Polygonscan / Basescan / Optimistic-Etherscan / Tronscan / Solscan URL containing one) and asks 'why did t…
- `get_btc_account_balance` — READ-ONLY — sum the on-chain balance across every cached USED address (txCount > 0 at last scan) for one Ledger Bitcoin account index. Walks the pairing cache populated by pair_ledger_btc's BIP44 gap-limit scan, fans out to the indexer f…
- `get_btc_balance` — READ-ONLY — fetch the confirmed + mempool balance for a single Bitcoin mainnet address. Returns sats (raw) and BTC (formatted), separated into confirmed and mempool components, plus the address type (legacy / P2SH / native segwit / tapro…
- `get_btc_balances` — READ-ONLY — multi-address Bitcoin balance fetch (1-20 addresses). Per-address indexer errors are surfaced as errored entries instead of failing the whole call (mirrors how EVM portfolio enumeration handles flaky RPCs). Each successful en…
- `get_btc_block_stats` — READ-ONLY — bitcoind getblockstats(hashOrHeight) output: fee distribution (min / max / avg / 10/25/50/75/90 percentile feerates in sat/vB), tx count, block size, total fees. RPC-only — Esplora exposes block size + tx count but NOT fee pe…
- `get_btc_block_tip` — READ-ONLY — current Bitcoin mainnet chain tip. Returns block height, 64-hex block hash, header timestamp (unix seconds), server-computed ageSeconds (now − timestamp), and — when the indexer exposes them — BIP-113 median time past + diffi…
- `get_btc_blocks_recent` — READ-ONLY — recent Bitcoin block headers, newest-first (default 144 ≈ one day; capped at 200). Each entry: height, 64-hex hash, header timestamp, tx count, size, weight (when exposed), and — on indexers that surface it (mempool.space) — …
- `get_btc_chain_tips` — READ-ONLY — bitcoind getchaintips output: every fork the node knows about, with branchlen and status (active / valid-fork / valid-headers / headers-only / invalid). THE primitive for fork / deep-reorg detection — Esplora indexers cannot …
- `get_btc_fee_estimates` — READ-ONLY — current Bitcoin fee-rate recommendations in sat/vB. Returns five labels: fastestFee (~next block), halfHourFee (~3 blocks), hourFee (~6 blocks), economyFee (~144 blocks / 1 day), and minimumFee (mempool floor). Sourced from m…
- `get_btc_mempool_summary` — READ-ONLY — bitcoind getmempoolinfo output: tx count in mempool, total bytes, memory usage, current minimum admission feerate, total fees of mempool txs. RPC-only — Esplora's mempool view is whatever that one node sees; ours gives us the…
- `get_btc_multisig_balance` — Watch-only balance read for a registered multi-sig wallet. Walks both BIP-32 chains (chain=0 receive, chain=1 change) up to a gap-limit window (default 20, BIP-44 standard), queries each derived address via the configured Esplora indexer…
- `get_btc_multisig_utxos` — Return the UTXO set for a registered multi-sig wallet. Same gap-limit walk as get_btc_multisig_balance; each UTXO carries the witnessScript + cosigner pubkeys needed to build a multi-sig PSBT input. Used internally by prepare_btc_multisi…
- `get_btc_tx_history` — READ-ONLY — recent Bitcoin transaction history for a single address (newest-first). Each entry surfaces txid, received/sent sats from this address's perspective, the network fee, block height + time (when confirmed), and an RBF-eligible …
- `get_coin_price` — Fetch the USD price of any well-known cryptocurrency by ticker symbol or CoinGecko ID — no contract address required. Sister tool to get_token_price; use this for non-EVM natives (BTC, LTC, SOL, TRX, XMR, DOGE, etc.) and any asset that d…
- `get_compound_market_info` — Fetch structured market info for a single Compound V3 (Comet) market — no wallet required. Returns base-token metadata, totalSupply/totalBorrow, utilization, supply+borrow APR, current pause flags, and the full collateral-asset list with…
- `get_compound_positions` — Fetch Compound V3 (Comet) positions for a wallet across all known markets on the selected chains (cUSDCv3, cUSDTv3, cWETHv3, etc.). For each market the wallet touches, returns the base-token supply or borrow balance, per-asset collateral…
- `get_contract_abi` — READ-ONLY — fetch a verified contract's ABI on any Etherscan-V2-supported EVM chain (Ethereum, Arbitrum, Polygon, Base, Optimism). Wraps the same getsourcecode path prepare_custom_call and check_contract_security use, so the call carries…
- `get_curve_positions` — READ-ONLY — Curve LP positions on Ethereum stable_ng plain pools. v0.1 scope (per claude-work/plan-curve-v1.md): Ethereum mainnet only, stable_ng factory only, plain pools only (meta pools rejected — different ABI, separate follow-up). R…
- `get_daily_briefing` — One-paragraph 'what's going on with my portfolio right now' briefing — composed from existing tools, not new on-chain reads. Section coverage: (1) current portfolio total + window USD/% delta, (2) top 3 movers by absolute USD change acro…
- `get_demo_wallet` — Report the active demo wallet (live mode), confirm default demo mode (no wallet set), or report why demo mode isn't active when the env var is missing or misconfigured. ALWAYS enumerates the available personas + their addresses + descrip…
- `get_health_alerts` — READ-ONLY — across-protocol liquidation-risk check. Fans out in parallel to Aave V3 / Compound V3 / Morpho Blue (EVM, via wallet) and MarginFi / Kamino (Solana, via solanaWallet); returns every position whose health factor is below thres…
- `get_kamino_positions` — READ-ONLY — enumerate a Solana wallet's Kamino lending position on the main market. Returns the obligation PDA, per-reserve deposits + borrows (with USD values), totalSuppliedUsd / totalBorrowedUsd / netValueUsd, and a health factor (bor…
- `get_ledger_device_info` — READ-ONLY — probe the connected Ledger device over USB HID and report which app is currently open (name + version), plus an actionable hint for the agent to relay. Uses the dashboard-level GET_APP_AND_VERSION APDU so it works whether the…
- `get_ledger_status` — Report whether a WalletConnect session with Ledger Live is active (EVM chains) AND whether any TRON or Solana Ledger pairings are cached (USB HID — see pair_ledger_tron / pair_ledger_solana). Returns accounts: 0x…[] — the list of EVM wal…
- `get_lending_positions` — Fetch all Aave V3 lending/borrowing positions for a wallet. Returns collateral, debt (both in USD and per-asset), health factor, LTV, and liquidation threshold across Ethereum and Arbitrum.
- `get_lp_positions` — Fetch all Uniswap V3 liquidity-provider positions for a wallet. Returns token pair, current token amounts, fee tier, in-range status, uncollected fees (lower bound), and an approximate impermanent-loss estimate.
- `get_ltc_balance` — Return the on-chain balance for one Litecoin mainnet address via the Esplora indexer (litecoinspace.org by default; override via LITECOIN_INDEXER_URL env var or userConfig.litecoinIndexerUrl). Returns confirmed + mempool litoshis and an …
- `get_ltc_block_stats` — READ-ONLY — litecoind getblockstats output. Mirror of get_btc_block_stats for LTC. Requires LITECOIN_RPC_URL configured. Issue #248 / #233 v2.
- `get_ltc_block_tip` — READ-ONLY — current Litecoin mainnet chain tip. Mirror of get_btc_block_tip for Litecoin: height, 64-hex hash, timestamp, ageSeconds, optional MTP + difficulty. Backed by the configured indexer (litecoinspace.org default; LITECOIN_INDEXE…
- `get_ltc_blocks_recent` — READ-ONLY — recent Litecoin block headers, newest-first (default 144 ≈ 6h at 2.5-min blocks; capped at 200). Mirror of get_btc_blocks_recent for LTC. Used internally by get_market_incident_status({ protocol: 'litecoin' }) to compute hash…
- `get_ltc_chain_tips` — READ-ONLY — litecoind getchaintips output. Mirror of get_btc_chain_tips for LTC. Requires LITECOIN_RPC_URL configured. Self-hosting litecoind -prune=5000 is much cheaper than self-hosting bitcoind (~5GB on disk + ~6h IBD on a residential…
- `get_ltc_mempool_summary` — READ-ONLY — litecoind getmempoolinfo output. Mirror of get_btc_mempool_summary for LTC. Requires LITECOIN_RPC_URL configured. Issue #248 / #236 v2.
- `get_marginfi_diagnostics` — READ-ONLY — diagnostic surface for the hardened MarginFi client load. Returns the list of banks the bundled SDK (v6.4.1, IDL 0.1.7) had to skip while fetching the production group, with each record carrying the bank address, best-effort …
- `get_marginfi_positions` — READ-ONLY — enumerate a Solana wallet's MarginFi lending positions. Probes the first 4 MarginfiAccount PDAs under the wallet (accountIndex 0..3) and returns one entry per existing account. Each entry reports the supplied and borrowed bal…
- `get_market_incident_status` — Return an 'is anything on fire' snapshot across every registered market for a protocol + chain. For Compound V3, returns per-market pause flags, utilization, totalSupply, totalBorrow. For Aave V3, returns per-reserve isActive/isFrozen/is…
- `get_morpho_positions` — Fetch Morpho Blue positions for a wallet. If marketIds is omitted, the server auto-discovers the wallet's markets by scanning Morpho Blue event logs (may take several seconds on a cold call). Pass explicit marketIds (bytes32 each, keccak…
- `get_nft_collection` — Wallet-less NFT collection metadata: name, symbol, image, description, current floor ask + top bid (in native asset and USD), volume by 24h / 7d / 30d / all-time windows, owner count, total supply, secondary-sale royalty (basis points + …
- `get_nft_history` — Recent NFT activity for a wallet across one or more supported EVM chains: mints, sales, transfers, listings (asks), bids, and cancels. Source: Reservoir's /users/{user}/activity/v6. Multi-chain results are merged + sorted by timestamp de…
- `get_nft_listings` — Issue #569. Ranked individual listings (currently active asks) for a single EVM NFT collection on a single chain, sorted floor-ascending. Distinct from get_nft_collection, which exposes only collection-level metadata (floor / volume / ho…
- `get_nft_portfolio` — List the NFT collections a wallet owns across EVM chains and/or Solana, with per-collection floor price (EVM only in v1) and a rolled-up total floor value. EVM source: Reservoir. Multi-chain fan-out via Promise.allSettled so a per-chain …
- `get_pnl_summary` — Wallet-level net PnL over a preset time window across EVM (Ethereum/Arbitrum/Polygon/Base/Optimism), TRON, and Solana. Returns the headline pnlUsd (= ending value − starting value − net user contribution), with per-chain and per-asset br…
- `get_portfolio_diff` — Decompose what changed in the user's portfolio over a time window — the AI version of an account statement. Returns the top-level USD change, broken down by chain and per-asset into: price moves (USD impact of price change on what was he…
- `get_portfolio_summary` — One-shot cross-chain portfolio aggregation for one or more wallets. Fans out across Ethereum/Arbitrum/Polygon/Base/Optimism (unless chains narrows it) and assembles: native ETH/MATIC balances, top ERC-20 holdings, Aave V3 and Compound V3…
- `get_protocol_risk_score` — Return a 0-100 risk score for a DeFi protocol, combining TVL size, 30-day TVL trend, contract age, audit count (DefiLlama), and Immunefi bug-bounty status. Higher = safer. The protocol argument is the DefiLlama slug — works for any chain…
- `get_safe_positions` — Fetch Safe (Gnosis Safe) multisig accounts for an EVM owner address and/or by Safe address. Returns per-Safe threshold, owners, contract version, native balance, pending and recently-executed transactions, and risk notes (single-signer t…
- `get_solana_setup_status` — READ-ONLY — probe which one-time setup pieces are already in place for a Solana wallet: the durable-nonce account (exists / address / current nonce value / authority) and the set of MarginfiAccount PDAs (index + address). Call this BEFOR…
- `get_solana_staking_positions` — READ-ONLY — enumerate a Solana wallet's liquid-staking (Marinade mSOL, Jito jitoSOL) and native stake-account positions. Returns three sections: (1) Marinade — mSOL balance + SOL-equivalent via the on-chain mSolPrice field; (2) Jito — ji…
- `get_solana_swap_quote` — READ-ONLY — fetch a Jupiter v6 swap quote for previewing the route, expected output, slippage, and price impact before committing to a transaction. Parallel to EVM's get_swap_quote (which uses LiFi). Calls the Jupiter aggregator at lite-…
- `get_staking_positions` — Fetch Lido (stETH/wstETH) and EigenLayer staking positions for a wallet across supported chains. Returns per-protocol staked amounts, USD value, APR, and EigenLayer delegation target.
- `get_staking_rewards` — Estimate staking rewards earned over a given period (7d/30d/90d/1y) using the current APR as a proxy. This is an estimate, not an on-chain rewards query.
- `get_swap_quote` — Get a LiFi aggregator quote for a token swap (same-chain) or bridge (cross-chain). Returns expected output, fees, execution time, and the underlying tool selected. Default is exact-in (amount = fromToken); set amountSide: "to" for exact-…
- `get_token_allowances` — Enumerate every spender that currently holds a non-zero allowance over the wallet's balance of a specific ERC-20 token on a single EVM chain. Pulls Approval events from Etherscan's logs API filtered to the wallet as owner, dedups by spen…
- `get_token_balance` — Fetch a wallet's balance of any ERC-20 token or the chain's native coin. Pass token: "native" for ETH (or chain-native asset) or an ERC-20 contract address. Returns amount, decimals, symbol, and USD value. For TRON, pass chain: "tron" wi…
- `get_token_metadata` — Fetch on-chain ERC-20 metadata (symbol, name, decimals) for any token address on an EVM chain — no wallet or balance required. Also detects EIP-1967 transparent proxies and returns the current implementation address when present. Prefer …
- `get_token_price` — Fetch the USD price of a token via DefiLlama. Pass token: "native" for the chain's native asset (ETH on ethereum/arbitrum, MATIC on polygon) or an ERC-20 contract address. Prefer this over get_swap_quote for pure price lookups — no walle…
- `get_transaction_history` — Fetch a wallet's recent on-chain transaction history on a single chain, merged across external (user-initiated) txs, ERC-20/TRC-20 token transfers, and internal (contract-initiated) txs. Results are sorted newest-first, capped at limit (…
- `get_transaction_status` — Poll a transaction's status via the chain's RPC (EVM / Solana) or TronGrid (TRON). Returns pending / success / failed, plus 'dropped' on Solana when the tx is mathematically unable to land. Pass chain='tron' with the bare hex txID for TR…
- `get_tron_staking` — Read TRON staking state for a base58 address: claimable voting rewards (WithdrawBalance-ready), frozen TRX under Stake 2.0 (bandwidth + energy), pending unfreezes with unlock timestamps, the live account-resource meter (resources) showin…
- `get_tx_verification` — Re-emit the prepared-tx JSON and VERIFY-BEFORE-SIGNING block for a known handle. Use this when the original prepare_* tool output has dropped out of your context (compaction, long sessions). The response shape and verification block matc…
- `get_update_command` — READ-ONLY — return the recommended upgrade flow for the running install path. Combines (1) process.argv/process.execPath heuristics that classify the install as one of npm-global / npx / bundled-binary / from-source / unknown with (2) ca…
- `get_vaultpilot_config_status` — READ-ONLY — report what the server knows about its local config without revealing any secret values. Returns the config-file path + existence, server version, per-chain RPC URL source classification (env-var / provider-key / custom-url /…
- `get_verification_artifact` — Return a sparse verification artifact for a prepared tx — raw calldata (or TRON rawDataHex), chain, to/value, payloadHash, preSignHash if preview_send has pinned gas, plus a static prompt instructing a second LLM on how to decode the byt…
- `import_readonly_token` — Decode a vp1.… read-only share token (generated by someone else's generate_readonly_link) into the embedded wallet bundle. Accepts either the raw token or an http(s) URL containing a ?t=vp1.… / #t=vp1.… parameter. Returns { wallets, scop…
- `list_contacts` — Return the joined per-label view across chains. Each row contains the label, addresses keyed by chain, optional notes / tags, the earliest addedAt across the joined entries, and an optional unsigned: true flag (issue #428) when at least …
- `list_readonly_invites` — List the read-only share tokens the user has generated. By default returns only ACTIVE invites (not revoked, not expired); pass includeInactive: true to see history. Each entry returns { id, name, scope, issuedAt, expiresAt, revokedAt, e…
- `list_solana_validators` — Read-only validator-ranking helper for prepare_native_stake_delegate. Pulls the stakewiz.com public feed (no API key required) and returns a filtered + sorted list of Solana validators with the columns most relevant to delegation: compos…
- `list_tron_witnesses` — List TRON Super Representatives (SRs) + SR candidates, ranked by total vote count. Active SRs (rank ≤ 27, isActive: true) produce blocks and distribute the 160 TRX/block voter-reward pool pro-rata to their voters; every witness in the to…
- `pair_ledger_live` — Initiate a WalletConnect v2 pairing session with Ledger Live. Returns a URI and ASCII QR code — paste into Ledger Live's WalletConnect screen to complete pairing. The session persists for future transactions. EVM chains only; for TRON us…
- `pair_ledger_ltc` — Pair the host's directly-connected Ledger device for Litecoin signing. REQUIREMENTS: Ledger plugged in over USB, device unlocked, the 'Litecoin' app open on-screen. Ledger Live's WalletConnect relay does not expose Litecoin accounts to d…
- `pair_ledger_solana` — Pair the host's directly-connected Ledger device for Solana signing. REQUIREMENTS: Ledger plugged into the machine running this MCP (USB, not WalletConnect), device unlocked, and the 'Solana' app open on-screen. Ledger Live's WalletConne…
- `pair_ledger_tron` — Pair the host's directly-connected Ledger device for TRON signing. REQUIREMENTS: Ledger plugged into the machine running this MCP (USB, not WalletConnect), device unlocked, and the 'Tron' app open on-screen. Ledger Live's WalletConnect r…
- `read_contract` — READ-ONLY — call any view/pure function on any verified-ABI EVM contract. Mirrors Etherscan's "Read Contract" tab and the symmetric counterpart of prepare_custom_call. Use for the long tail of on-chain reads no protocol-specific tool cov…
- `rescan_btc_account` — READ-ONLY — refresh the cached on-chain txCount for every paired Bitcoin address under one Ledger account by re-querying the indexer. Pure indexer-side: NO Ledger / USB interaction. Use this after the user has received funds (so a previo…
- `rescan_ltc_account` — READ-ONLY — refresh the cached on-chain txCount for every paired Litecoin address under one Ledger account by re-querying the indexer. Pure indexer-side: NO Ledger / USB interaction. Use this after the user has received funds (so a previ…
- `resolve_ens_name` — Resolve an ENS name (e.g. vitalik.eth) to an Ethereum address via mainnet ENS resolver. Returns null if unregistered.
- `resolve_token` — Resolve a (chain, symbol) pair to its canonical contract address + decimals from the curated registry. Supports EVM chains (ethereum, arbitrum, polygon, base, optimism), Solana, and TRON. Surfaces native-vs-bridged ambiguity verbatim — e…
- `reverse_resolve_ens` — Reverse-resolve an Ethereum address to its primary ENS name. Returns null if no primary name is set.
- `share_strategy` — Generate a shareable, anonymized JSON snapshot of the user's portfolio STRUCTURE — protocol + asset + percentage of total — with NO addresses, NO absolute USD values, NO transaction hashes. Use this when the user wants to share their set…
- `sign_btc_multisig_psbt` — Co-signer flow — adds OUR Ledger signature to a multi-sig PSBT produced by an external initiator (Sparrow / Specter / Caravan / a peer running this server). Looks up the registered wallet by name, decodes the PSBT, validates every input …
- `simulate_position_change` — Simulate the effect of adding or removing collateral, or borrowing/repaying debt on a lending position. Returns the projected health factor and collateral/debt totals. Supports Aave V3 (default), Compound V3 (pass protocol: "compound-v3"…
- `verify_contacts` — Explicit re-verify. Returns one row per requested chain: { chain, ok, anchorAddress?, version?, entryCount?, reason?, unsignedEntryCount? }. Useful for periodic integrity checks or after a suspected tamper event. Does NOT throw on per-ch…
- `verify_ledger_attestation` — READ-ONLY Secure Element attestation challenge (issue #325 P1). INTENDED behavior: issue a fresh nonce APDU to the device, receive the SE's attestation signature, verify locally against Ledger's published attestation root CA. CURRENT beh…
- `verify_ledger_firmware` — READ-ONLY firmware-pinning check (issue #325 P3). Reads the connected Ledger's Secure Element firmware version + MCU bootloader version + device target_id via the dashboard-level getDeviceInfo APDU (CLA=0xE0 INS=0x01), asserts them again…
- `verify_ledger_live_codesign` — READ-ONLY codesign verification of the on-disk Ledger Live binary (issue #325 P4). Per-platform: macOS uses codesign --verify --deep --strict + Apple Team ID match; Windows uses PowerShell Get-AuthenticodeSignature + Subject substring ma…
- `verify_tx_decode` — Independent server-side cross-check of a prepared EVM tx's calldata. Fetches the function signature(s) registered for the 4-byte selector on 4byte.directory (a public registry), re-decodes the calldata via viem against each candidate, an…
- `add_contact` — Save a label → address binding to the address book. Production mode + Ledger paired: blob is signed with the user's paired Ledger key on that chain (BIP-137 for BTC, EIP-191 for EVM in v1.0; Solana / TRON support deferred to v1.5). Persi…
- `generate_readonly_link` — Generate a time-bound, revocable token that lets someone else read a specific subset of the user's wallets via their own VaultPilot instance. The classic use case: hand the token to a financial advisor or experienced friend so they can l…
- `import_strategy` — Parse and validate a shared-strategy JSON produced by share_strategy (someone else's, or one the user generated earlier). Pass either the stringified form or the parsed object via json. Returns the validated SharedStrategy for read-only …
- `prepare_curve_add_liquidity` — Build an unsigned Curve add_liquidity transaction for a stable_ng plain pool on Ethereum. Bundles ERC-20 approvals (one per non-zero deposit slot) before the action call via chainApproval. Pass amounts as a decimal-string array matching …
- `prepare_litecoin_native_send` — Build an unsigned Litecoin native-send PSBT. Same pipeline as prepare_btc_send: fetch UTXOs + fee rate, run coin-selection, build a PSBT v0 with nonWitnessUtxo populated on every input (Ledger app 2.x requirement). Initial release: sourc…
- `prepare_revoke_approval` — Build an unsigned approve(spender, 0) transaction that revokes the allowance the wallet previously granted to spender on token. Pre-flight check refuses when the live allowance is already 0 — that call would burn gas for nothing, and alm…
- `prepare_safe_tx_approve` — Add an additional approveHash signature to a Safe (Gnosis Safe) transaction that's ALREADY in the queue (proposed elsewhere — Safe Web UI, another VaultPilot install, or a co-signer). Returns an UnsignedTx that calls Safe.approveHash(saf…
- `prepare_solana_native_send` — Build an unsigned SOL native-transfer DRAFT via SystemProgram.transfer. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash (those happen in preview_solana_send, called right before sen…
- `prepare_solana_spl_send` — Build an unsigned SPL token transfer DRAFT via Token.TransferChecked. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash. When the user says 'send', call preview_solana_send(handle) to…
- `prepare_token_approve` — Build an unsigned approve(spender, amount) transaction that raises (or sets) an ERC-20 allowance — the structured inverse of prepare_revoke_approval. amount is a decimal in token units (e.g. "10" for 10 USDC) or the literal "max" for unl…
- `prepare_token_send` — Build an unsigned ERC-20 transfer transaction. Pass amount: "max" to send the full balance (resolved at build time). If the user named the token by symbol, call resolve_token first to disambiguate native-vs-bridged variants (USDC vs USDC…
- `prepare_tron_token_send` — Build an unsigned TRC-20 transfer transaction (canonical set only: USDT, USDC, USDD, TUSD) via TronGrid's /wallet/triggersmartcontract. Decimals are resolved from the canonical table — unknown TRC-20s are rejected with an explicit error.…
- `prepare_tron_trc20_approve` — Build an unsigned TRC-20 approve(spender, amount) tx — sets allowance so a third party can pull tokens via transferFrom. Primary use: authorize the LiFi Diamond on TRON (TU3ymitEKCWQFtASkEeHaPb8NfZcJtCHLt) before running prepare_tron_lif…
- `preview_send` — EVM-only: finalize an already-prepared transaction for signing by pinning the nonce, EIP-1559 fees (maxFeePerGas, maxPriorityFeePerGas), and gas limit server-side, then computing the EIP-1559 pre-sign RLP hash Ledger will display in blin…
- `register_btc_multisig_wallet` — One-time registration of a multi-sig Bitcoin wallet policy with the Ledger BTC app (BIP-388 wallet policies). REQUIREMENTS: Ledger plugged in over USB, device unlocked, the 'Bitcoin' app open on-screen. Constructs a wsh(sortedmulti(M,@0/…
- `request_capability` — File a capability request against the vaultpilot-mcp GitHub repository when the user asks for something this server cannot do (e.g. an unsupported protocol, chain, token, or missing tool). USE ONLY AFTER confirming no existing tool can a…
- `revoke_readonly_invite` — Revoke a previously-generated read-only share invite by name. Marks the issuer-side record as revoked at the current time. Important caveat (Model A): this is issuer-side BOOKKEEPING — it does NOT recall the token already in the recipien…
- `set_demo_wallet` — DEMO MODE ONLY — switch the active demo wallet via one of three input shapes. Once a wallet is set, demo mode upgrades from default (signing-class tools refuse) to live mode (prepare_*, simulate_*, preview_send run REAL against the walle…
- `set_etherscan_api_key` — Set an Etherscan V2 API key for EVM transaction-history / allowance-enumeration / tx-explanation reads at runtime — no restart required. Takes precedence over ETHERSCAN_API_KEY env var and userConfig. One key works across all 5 supported…
- `set_helius_api_key` — Set a Helius API key for Solana RPC reads at runtime — no restart required. The server constructs the canonical Helius mainnet URL (https://mainnet.helius-rpc.com/?api-key=<KEY>) internally and uses it for every subsequent Solana call un…
- `submit_safe_tx_signature` — After the on-chain approveHash tx has been mined (broadcast via send_transaction from the receipt of prepare_safe_tx_propose or prepare_safe_tx_approve), post the signature to Safe Transaction Service. Verifies on-chain that approvedHash…

## Related servers

- Delx Mcp A2a (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- GoCreative Agent API (647 tools) — https://policylayer.com/tools/io-github-colinhughes2121-gocreative-agent-api.md
- Yaver (645 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- GoHighLevel MCP Server (559 tools) — https://policylayer.com/tools/busybee3333-go-high-level-mcp-2026-complete.md
- Allmcp (501 tools) — https://policylayer.com/tools/allmcp.md
- Claude Flow (496 tools) — https://policylayer.com/tools/io-github-ruvnet-claude-flow.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-szhygulin-vaultpilot-mcp · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/io-github-szhygulin-vaultpilot-mcp
