FortFi Treasury MCP

io.github.rebelArtistsPublished by GitHub account rebelArtistsv1.0.0Updated Nov 3, 2026

Policy-gated MCP treasury for AI agents — x402 subscribe, 50+ tools, multi-chain.

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringAI & ML

Overview

AI-generated overview

A remote, policy-gated treasury MCP server that lets AI agents subscribe via x402 and use 50+ multi-chain tools.

What you can do
FortFi Treasury MCP is a remote MCP server for agent treasury operations. The registry description says it is policy-gated, supports x402 subscription, exposes 50+ tools, and works across multiple chains. The manifest does not list individual tools, so the exact tool set must be confirmed from the provider's documentation.
When to use it
Consider it when an assistant needs to manage or operate an agent treasury, handle x402-based subscriptions, or work with multi-chain financial operations under policy controls. It is less suitable if you only need read-only market data or do not want to make on-chain payments. Check the provider documentation first to confirm the available tools match your workflow.
Requirements
A remote streamable HTTP endpoint at Authentication is required: a bearer token in the Authorization header, obtained by onboarding through POST /api/mcp/onboard, which the manifest says uses x402 USDC on Base. No packages or environment variables are declared. Network access to the endpoint is needed.
Before you install
The bearer token (Authorization header, frtfi_ag_* format) is a secret and must be kept out of logs and shared configs. Onboarding involves an x402 USDC payment on Base, so real funds may be spent; verify the amount and recipient before paying. The server is described as policy-gated and multi-chain, so confirm which chains and spending policies apply to your agent before granting access.

Installation

In SourceWeft

  1. Open FortFi Treasury MCP in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.rebelArtists%2Ffortfi-treasury-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "fortfi-treasury": {
      "type": "http",
      "url": "https://fortfiapp.com/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

This repository has no README.

Tools

137

get_mcp_guide

FortFi MCP capability guide: onboarding paths, pricing, limits, workflows, and full tool catalog. Call first when unsure which tool to use (e.g. market research → discover_tokens, not the Explore UI REST route).

Parameterstopic

get_treasury_context

Who am I? Returns treasury email, user id, credential kind/scopes, vault summary, and policy limits for this API key. Call first to confirm you are on the correct account before money-moving tools.

Takes no parameters.

list_wallets

List FortFi wallets for this account: chain, address, nickname, metadata tags, and default flag. Optional metadataKey/metadataValue filter (exact match). Pass cursor and/or limit to page through large fleets — response becomes { items, nextCursor } when either is set; omit both for the plain array of all wallets.

ParameterslimitcursormetadataKeymetadataValue

list_recipients

List all allowlisted recipients. Includes cooldown status: `cooldownActive: true` means the recipient cannot yet receive funds (24-hour gate).

Takes no parameters.

list_audit_log

Recent account activity: one row per money move (sends, swaps, bridges), blocked attempt, or account change (keys, recipients). Money rows and blocked rows carry a confirmationNumber (FF-XXXX-XXXX) the owner can quote to FortFi support. Blocked rows carry the reasons. Pass view: 'full' for every internal step. Optional walletId filters to one vault's history. Pass cursor (from a previous page's nextCursor, even as an empty string on the first call) to switch the response to { items, nextCursor } and page back through full history instead of only the most recent entries.

ParametersviewlimitcursorwalletId

list_activity_report

Treasury activity timeline (JSON) for reconciliation: normalized labels, USD hints, vault scope, and categories. Optional walletId narrows to one vault. Requires reporting:read (or account:read).

ParameterscategorywalletId

get_fusion_order_status

Track an owned Fusion+ cross-chain order by orderHash. Returns authoritative settlement/refund status, source and destination transactions, receiver, and the real destination token contract.

ParametersorderHashrequired

get_policy_limits

Current policy limits: per-tx/daily/monthly caps (USDC smallest units). Agent accounts also include agent cap tier limits, maxWallets, and credential access expiry.

Takes no parameters.

get_usage_balance

Monthly UpTo product balance: cap, used, remaining, and period bounds. Billable writes consume this pool; unused budget is refunded at period end.

Takes no parameters.

list_funding_wallet_agents

List all FortFi agent accounts funded by the same payment wallet as this agent. Use to discover agentLabel / userId when renewing or spawning siblings (treasury multi-agent setups).

Takes no parameters.

list_cosigner_memberships

Active co-signers on this account.

Takes no parameters.

get_cosigner_rules

Amount-banded cosigner quorum rules for sends and swaps. Below-band amounts auto-execute; matching bands require N cosigner votes.

Takes no parameters.

update_cosigner_rules

Set cosigner quorum rules (send + swap USD bands). Tightening rules works with the agent key alone. WEAKENING them (lower required cosigners / raise the amount floor) is a GOVERN action: sign a challenge with your funding wallet (challengeId + walletSignature); applies immediately once signed (same as passkey in the UI). Amounts use USDC micro-units (1 USDC = 1000000).

ParametersrulesrequiredchallengeIdwalletSignature

list_pending_cosigner_approvals

Pending actions that require this account's co-signer approval. Use when this agent is a co-signer on another account.

Parameterslimit

add_recipient

Add a payout address to the allowlist. Human developer key (frtfi_hu_* + DA): added with 24h cooldown (no Assist passkey). Agent key (frtfi_ag_*): GOVERN — funding-wallet signature required; then approved immediately.

ParametersaddressrequiredchainIdrequirednicknamechallengeIdfromWalletIdwalletSignature

remove_recipient

Remove a recipient from the FortFi allowlist (tightening policy — no funding-wallet GOVERN). Human developer key, session, or agent treasury key. Re-sync Turnkey policies in the app so the enclave matches.

ParametersrecipientIdrequired

approve_recipient

Approve a recipient still in cooldown (early release). Active cosigners may approve directly. Human passkey owners: use the FortFi app (passkey) or the approval email link; owner bearer keys cannot self-clear. Agent-owned accounts: owner self-approval is GOVERN (funding-wallet signature).

ParameterschallengeIdrecipientIdrequiredwalletSignature

validate_recipient_manifest

Preview a batch recipient import (max 50 rows). Each row: { address, chainId, nickname? }. Returns ready_new, already_exists, or invalid per line. Read-only.

Parametersrecipientsrequired

propose_recipient_manifest

Apply a validated recipient manifest (human/developer key). Adds new allowlist rows with normal 24h cooldown. Agent keys: use add_recipient per row (GOVERN).

Parametersrecipientsrequired

validate_payout_manifest

Preview batch payroll/payout (max 50 lines). Each line: { recipientId, amountUsdc, memo? }. All recipients must be allowlisted, same chain as fromWalletId, and past cooldown.

ParameterslinesrequiredfromWalletIdrequired

propose_payout_manifest

Execute a validated payout manifest sequentially (one ActionIntent per line). Requires Delegated Access or agent wallet. Set dryRun:true to validate only.

ParameterslinesrequireddryRunfromWalletIdrequired

propose_transfer

Transfer USDC to an allowlisted recipient, OR pay a FortFi invoice by public pid (paymentRequestPid + fromWalletId — amount optional for partial pay). Recipient path requires allowlist approval. Invoice path binds settlement to the pid (Delegated Access / agent accounts execute server-side when configured).

ParametersmemoamountUsdcrecipientIdfromWalletIdrequirednetworkChainIdpaymentRequestPid

invite_agent_cosigner

Invite a co-signer. Agents: pass cosignerUserId (GOVERN / funding-wallet sign when using an agent API key). Humans: pass email — opens instructions for Security UI passkey provision (Turnkey dual-control with MCP DA).

ParametersemailnicknamechallengeIdcosignerUserIdwalletSignature

invite_cosigner

Alias of invite_agent_cosigner. Humans: email → Security UI. Agents: cosignerUserId.

ParametersemailnicknamechallengeIdcosignerUserIdwalletSignature

approve_cosigner_action

Approve a pending action as co-signer. Use with list_pending_cosigner_approvals.

ParameterspendingApprovalIdrequired

reject_cosigner_action

Reject a pending action as co-signer.

ParametersreasonpendingApprovalIdrequired

get_portfolio

Full portfolio summary across all wallets: token balances with USD values, 24h change, and total net worth.

Takes no parameters.

get_account_holdings

Token holdings for a specific wallet, with USD values and 24h change.

ParameterswalletIdrequired

review_portfolio

Read-only treasury review: allocation buckets (cash, yield, tokens), top holdings, and optional drift vs target weights. Safe for cron — no proposals created.

ParameterstargetsminLegUsddriftThresholdPercent

plan_rebalance

Read-only rebalance planner toward target weights. Returns suggested legs (swap, yield_deposit, yield_withdraw) without executing. Use propose_* + confirm_proposal to act.

ParameterstargetsrequiredminLegUsddriftThresholdPercent

discover_tokens

Market-wide token discovery on a FortFi chain (USD). Use for trending/gainers/losers/volume/mcap — NOT the browser Explore REST route. Sorts: gainers_1d, gainers_30d, gainers_90d, gainers_365d, losers_1d, losers_30d, losers_90d, losers_365d, market_cap, volume_1d. No 7d or 30d-volume sort exists upstream — closest available gainers granularity to '1 week' is gainers_1d or gainers_30d; say so explicitly rather than silently picking one. Returns contract addresses for propose_swap / propose_bridge.

ParameterssortlimitquerychainIdrequiredverifiedOnly

get_token_chart

Fetch a compact Zerion chart summary plus deterministic EMA, RSI, MACD, Bollinger, return, max-drawdown, and data-quality analysis. Raw points are omitted by default; set includePoints:true only for visual charting or external analysis. Discontinuous pre-migration/launch samples are excluded from TA.

ParametersperiodaddresschainIdrequiredfungibleIdindicatorsincludePoints

screen_tokens

Batch cheap-screen tokens across requested chains. Defaults to verified assets, $5M market cap, $50K daily volume, top 30-day performers plus volume leaders, stablecoin removal, and cross-chain deduplication. Returns no proposal.

ParametersmodesortschainsrequireddeepOptInverifiedOnlycandidateLimitminVolume1dUsdminMarketCapUsdincludeUnverified

rank_tokens

Two-stage token ranking: run the cheap screen, then concurrently fetch deterministic chart evidence only for the strongest candidates. Quick charts 5 candidates over month+3months; standard charts 10 over day+month+3months+year; deep charts 20 and requires explicit opt-in. Returns evidence for user review and never creates a proposal.

ParametersmodesortschainsrequiredperiodsdeepOptInverifiedOnlycandidateLimitminVolume1dUsdminMarketCapUsdincludeUnverifiedchartCandidateLimit

get_swap_routing_guide

Returns which swap/bridge tool to use for a given from→to chain pair, with notes on protocols supported.

ParameterstoChainIdrequiredfromChainIdrequired

list_token_spender_grants

List active ERC-20 token approvals (spender grants) on this account. Useful before proposing a swap to confirm the CoW vault is approved.

Takes no parameters.

list_incoming_cosigner_invites

List pending co-signer invites sent TO this account (where this account is the invitee). Use to discover accounts you can become a co-signer for.

Takes no parameters.

accept_cosigner_invite

Accept a pending co-signer invite. After accepting, you will be able to approve/reject pending actions for that account.

ParametersinviteIdrequired

remove_cosigner

Remove an active co-signer from this account. GOVERN action (it shrinks the approver set): via an agent key, sign a challenge with your funding wallet (challengeId + walletSignature); applies immediately once signed.

ParameterschallengeIdmembershipIdrequiredwalletSignature

register_backup_governance_wallet

Register (or replace) a single backup governance wallet — the agentic equivalent of a backup passkey. Either the funding wallet or this backup can authorize future governance. GOVERN action: sign the challenge with your CURRENT funding wallet (challengeId + walletSignature); applies immediately once signed. Max one backup.

ParameterschallengeIdwalletAddressrequiredwalletSignature

remove_backup_governance_wallet

Remove the registered backup governance wallet. GOVERN action: sign with your funding wallet (challengeId + walletSignature); applies immediately once signed. After removal, only the funding wallet may authorize governance.

ParameterschallengeIdwalletSignature

list_governance_requests

List open governance requests on this account: pending (awaiting signature) and legacy scheduled rows. Use to monitor for unexpected loosening attempts.

Takes no parameters.

cancel_governance_change

Veto/cancel a pending governance challenge before it is signed and applied. Cancelling TIGHTENS security, so it needs only the agent key (no signature). Also cancels legacy scheduled rows from before immediate-apply parity.

ParameterschallengeIdrequired

revoke_cosigner_invite

Revoke a pending outbound co-signer invite before it is accepted.

ParametersinviteIdrequired

cancel_pending_action

Cancel a pending approval that you (the account owner) initiated.

ParameterspendingApprovalIdrequired

propose_rename_account

Rename a wallet (account nickname), then call confirm_proposal with the returned proposalId.

ParametersnicknamerequiredaccountIdrequired

propose_create_account

Create a new wallet on a supported chain. Optional metadata tags (e.g. customer_id). Then call confirm_proposal with the returned proposalId. Agent accounts execute server-side when no cosigners are configured.

ParameterschainIdrequiredmetadatawalletNamerequired

confirm_proposal

Confirm a pending proposal returned by a propose_* tool. Reuses the same policy, risk, allowlist, vault-grant, delegated-authority, and cosign checks as POST /api/mcp/confirm. Returns executed, pending-approval, or passkey-required status.

ParametersproposalIdrequiredconfirmToken

update_wallet_metadata

Propose updating wallet metadata tags (flat string key/value pairs; replaces existing tags on confirm). Returns proposalId; call confirm_proposal to apply. Not a money-moving action.

ParametersmetadatarequiredaccountIdrequired

preview_swap_quote

Optional advanced step: fetch a same-chain swap quote (CoW on EVM, Jupiter on Solana) and return previewQuoteId. Omit previewQuoteId on propose_* to bundle quote+proposal in one call. Does not execute or move funds.

ParametersbuyMintsellMintamountUsdrequiredbuySymbolrequiredsellSymbolrequiredtoWalletIdfromWalletIdrequiredbuyTokenAddressslippagePercentsellTokenAddress

preview_bridge_quote

Optional advanced step: fetch a cross-chain bridge quote (Fusion+ or deBridge) and return previewQuoteId. Omit previewQuoteId on propose_bridge to bundle quote+proposal in one call.

ParametersamountUsdrequiredbuySymbolrequiredsellSymbolrequiredtoWalletIdrequiredfromWalletIdrequired

check_trade_allowance

Check ERC-20 allowance for an upcoming CoW swap (cow_swap) or Fusion bridge (fusion_bridge). Call before propose_swap / propose_bridge; if insufficient, use propose_token_approve then confirm.

ParametersflowrequiredfromWalletIdrequiredtokenAddressrequiredrequiredAmountSmallestrequired

propose_token_approve

Propose max ERC-20 approval for CoW or Fusion spenders. Returns proposalId: call confirm_proposal before swap/bridge. API keys on a passkey account cannot approve the Fusion (bridge) spender: fusion_bridge returns OWNER_PASSKEY_REQUIRED.

ParametersflowrequiredfromWalletIdrequiredtokenAddressrequired

propose_swap

Propose an EVM CoW swap. Autonomous agents: fetches and binds a quote inline (default), or pass previewQuoteId from preview_swap_quote for a two-step review. confirm always signs the bound quote — same principle as FortFi Assist. Human session MCP: confirm requires passkey in the app.

ParametersamountUsdrequiredbuySymbolrequiredsellSymbolrequiredfromWalletIdrequiredpreviewQuoteIdbuyTokenAddressrequiredslippagePercentsellTokenAddressrequired

propose_solana_swap

Propose a Solana Jupiter swap. Autonomous agents: inline quote by default, or previewQuoteId for two-step review. confirm signs the bound quote.

ParametersbuyMintrequiredsellMintrequiredamountUsdrequiredbuySymbolrequiredsellSymbolrequiredtoWalletIdrequiredfromWalletIdrequiredpreviewQuoteIdslippagePercent

propose_bridge

Propose a Fusion+ or deBridge cross-chain swap. FortFi resolves chain-specific verified token contracts from sellSymbol/buySymbol; optional token addresses are mismatch assertions, never routing overrides. Inline quote by default, or use previewQuoteId for two-step review. Agent wallets execute on confirm_proposal. API keys on a passkey account cannot bridge: this returns OWNER_PASSKEY_REQUIRED, and the owner bridges in the FortFi app with their passkey (preview_bridge_quote still works).

ParametersamountUsdrequiredbuySymbolrequiredsellSymbolrequiredtoWalletIdrequiredfromWalletIdrequiredpreviewQuoteIdbuyTokenAddresssellTokenAddress

list_yield_markets

Open Morpho yield discovery by chain with discovered, policyEligible, manuallyCurated, executionReady, and eligibilityReasons. Default minimum TVL is $500K everywhere (listing, policy, Turnkey). executionReady means TVL qualifies and you have a wallet on that chain; POLICY_SYNC_RECOMMENDED is advisory only.

ParametersassetlimitsortBychainIdminTvlUsdverifiedOnly

list_yield_positions

Active Morpho yield positions with per-vault valueUsd, earnedUsd (Morpho pnlUsd), netApy, and a summary block. summary.cumulativeEarnedUsd matches Morpho pnl on the open vaults when the ledger cannot explain the balance. A deposit missing from the ledger is principal, not earnings. Use at the start of every yield desk run to report standing P&L.

Takes no parameters.

get_yield_market_detail

Evidence for one Morpho vault: current net APY/TVL, historical APY and TVL series, period statistics, quality flags, allocation, instant-withdrawal liquidity, separated eligibility/readiness status, and timestamp. Rank on evidence.apy.medianPercent: the raw series contains upstream artifacts (points above 3000% APY) so averagePercent is filtered and medianPercent is the robust level. Check evidence.liquidity.redeemableUsd before sizing, since vaults typically run near 90% utilization and only unborrowed supply can be withdrawn on demand. Use before recommending or proposing a deposit.

ParametersapyDayschainIdrequiredtvlDaysvaultAddressrequired

rank_yield_markets

Batch-rank Morpho markets using current net APY, APY median/average/range/volatility, TVL trend/drawdown, vault age, curation, instant-withdrawal liquidity, warnings, and current-user execution eligibility. Results are ordered by current net APY, which is a spot rate that spikes: re-rank on evidence.apy.medianPercent before acting, since a vault printing 12% today commonly pays under 5% tomorrow. Runs evidence requests concurrently and never creates a proposal.

ParametersassetlimitapyDayschainIdtvlDaysminTvlUsd

propose_yield_deposit

Propose Morpho vault deposit, then call confirm_proposal. With Delegated Access / agent key this executes server-side when policy permits. Use list_yield_markets for vaultAddress.

ParametersamountUsdrequiredassetSymbolfromWalletIdvaultAddressrequiredfromAccountQuery

propose_yield_withdraw

Propose Morpho vault withdraw, then call confirm_proposal. With Delegated Access this executes server-side when policy permits. Use list_yield_positions for vaultAddress.

ParametersvaultNameassetSymbolfromWalletIdvaultAddressrequiredamountDisplayrequiredfromAccountQuery

list_polymarket_markets

List active Polymarket prediction markets on Polygon with volume, liquidity, and outcome prices.

ParameterslimitsearchsortByafterCursorsortDirectionminLiquidityUsd

search_polymarket_markets

Search Polymarket markets by question text.

Parameterslimitqueryrequired

rank_polymarket_markets

Rank Polymarket markets by volume, liquidity, or 24h volume.

ParameterslimitsortBy

get_polymarket_market

Get a Polymarket market by conditionId with optional outcome price history from the public CLOB API.

ParameterstokenIdintervalconditionIdrequired

list_polymarket_positions

List Polymarket outcome token positions for a Polygon wallet. walletId is required.

ParameterswalletIdrequired

propose_polymarket_buy

Propose buying Polymarket outcome shares, then call confirm_proposal. Requires Polygon wallet.

ParameterspricerequiredconditionIdrequiredsizeDisplayrequiredfromWalletIdoutcomeIndexrequiredfromAccountQuery

propose_polymarket_sell

Propose selling Polymarket outcome shares (redeem collateral), then call confirm_proposal.

ParameterspricerequiredconditionIdrequiredsizeDisplayrequiredfromWalletIdoutcomeIndexrequiredfromAccountQuery

propose_polymarket_redeem

Propose redeeming winning shares from a resolved Polymarket market (CTF on Polygon), then call confirm_proposal.

ParametersconditionIdrequiredfromWalletIdoutcomeIndexfromAccountQuery

list_hyperliquid_markets

List Hyperliquid perpetual markets with live mark/mid/oracle prices, funding, open interest, and 24h volume. Public data; no proposal.

Parameterslimitoffsetsearch

get_hyperliquid_market

Get a Hyperliquid perp market by symbol with mark/funding context and optional candle history.

Parameterssymbolrequiredinterval

list_hyperliquid_symbol_master

Security master for Hyperliquid perps: symbol, dex, desk label, short symbol, display name, asset class (crypto/equity/commodity/fx/index/pre_ipo), plus live volume and funding. Default scope=core; pass scope=all for HIP-3.

ParametersdexlimitscopeassetClassincludeAllDesks

rank_hyperliquid_markets

Rank Hyperliquid perp markets by 24h volume, pctChange, or funding. Returns dex + assetClass tags. Default scope=core; pass scope=all for HIP-3. Cheap filter only — use screen_hyperliquid_markets for breakout TA.

ParametersdexsortlimitscopedirectionassetClassincludeAllDesks

screen_hyperliquid_markets

Breakout screener for Hyperliquid perps: min volume filter, rank, HL candle TA (RSI, MACD, Bollinger). Returns dex + assetClass tags and long/short/neutral bias. Default scope=core; scope=all for HIP-3. Never creates proposals.

ParametersdexsortlimitscopeintervalsideBiasdirectionassetClasschartLimitindicatorsincludeChartsincludeAllDesks+1 more

get_hyperliquid_cross_section

Rank a Hyperliquid perp universe by trailing return in one call, for a dollar-neutral long/short book. Returns dex, assetClass, trailing returns, realized vol, funding, rank, percentile, and long/short/hold buckets. Default scope=core (validated trend desk); pass scope=all for HIP-3 cross-asset books. Read-only; never creates proposals.

ParametersdexbandlimitscopeassetClasslegsPerSidelookbackDaysincludeAllDesksminDayVolumeUsd

run_hyperliquid_research_backtest

Run an out-of-sample backtest on Hyperliquid perp OHLCV stored in FortFi research Postgres (hl_research_candles). Returns IS/OOS metrics and a pass/fail verdict. Read-only; uses synced historical data, not live HL API for bars. Strategies: momentum_cross (default).

ParameterscoinsholdBarsintervalstrategylegsPerSideoosFractionlookbackBarsminDayVolumeUsd

run_hyperliquid_research_backtest_spec

Run an out-of-sample backtest from a Strategy Spec JSON (universe + rank factor or named pattern + portfolio rules). Deterministic; reads hl_research_* Postgres. Agent should translate natural-language strategy ideas into the spec object before calling. Pass presetId instead of spec to get a FortFi house preset (crypto-majors, core-momentum, mag7, semis, memory, ai-compute, pre-ipo, ...) with its frozen spec and published OOS, walk-forward, drawdown and leverage scenarios; add rerun:true to recompute it live.

ParametersprodspecrerunpresetId

get_hyperliquid_history

Long price history for one Hyperliquid perp, with no gap up to now: FortFi's stored candles (years for most markets, synced daily) plus live candles since the last sync. Returns the latest `limit` candles in the window, oldest first, as {t,o,h,l,c,v}. When older candles exist, olderEndTime is set: pass it as endTime to page back. includeFunding adds hourly funding rates for the same window. Use get_hyperliquid_market for a quick recent look, this for research.

ParameterslimitsymbolrequiredendTimeintervalstartTimeincludeFunding

get_wallet_loss_cap

Read the loss cap on a Hyperliquid wallet: the max loss in percent, whether it is armed or tripped, the balance it was set at, and (live) how much the wallet has lost or made since. Deposits and withdrawals do not count as gains or losses. Returns lossCap null when none is set.

ParameterswalletIdrequired

set_wallet_loss_cap

Add a loss cap to a Hyperliquid wallet, or lower the one it has. If the wallet loses maxLossPct from the balance at the moment the cap is set, FortFi cancels its open orders, closes its positions and blocks new trades on it until the owner resets the cap in the app. An API key can only add or tighten a cap: raising, removing or resetting it needs the owner's passkey in the app. The cap is also measured from when it is set, so set it before trading.

ParameterswalletIdrequiredmaxLossPctrequired

get_wallet_scoreboard

Scoreboard for a Hyperliquid wallet from Hyperliquid's public data: balance, P&L in dollars and percent, win rate (closed trades that beat their fees), trades, fees, volume, worst drop, the loss cap, and BTC buy-and-hold over the same window (no leverage) as the bar to beat. Same numbers anyone can check on the Hyperliquid explorer (explorerUrl). Use it to review how your trading is going before changing anything.

ParametersperiodwalletIdrequiredincludeHistory

get_hyperliquid_research_data_stats

Row counts and last ingest time for hl_research_* tables (candles, funding, symbols). Use before backtests to confirm data freshness.

Takes no parameters.

list_strategy_presets

List FortFi autonomous Hyperliquid strategies (house presets) with their published backtest: out-of-sample return, Sharpe and drawdown at 1x, walk-forward windows, every leverage scenario, tested leverage (start_strategy accepts these), high-risk leverage (owner passkey only), and the minimum account size per leverage. Read-only.

Takes no parameters.

list_strategies

List strategies running on your Hyperliquid accounts (presets and copy trades): status, leverage, cap, next rebalance, and whether an API key started it. Stopped strategies are hidden unless includeStopped is true.

ParameterswalletIdincludeStopped

get_strategy

Get one strategy with its last 20 runs (each run lists the orders it placed and their result).

ParametersidrequiredwalletIdrequired

list_copy_trade_leaders

Top Hyperliquid accounts by profit over a window (week, month, allTime), from Hyperliquid's public leaderboard. Only accounts over $25k that traded this month and are profitable all-time. Use get_copy_trade_wallet before copying one.

ParameterspagequerywindowpageSize

get_copy_trade_wallet

Deep dive on any Hyperliquid address: account value, leverage, open positions with share of book, PnL and volume for day, week, month and all time, and a copy preview per leverage cap (which positions would be copied, coverage, and the minimum account size so each copied position is at least $10).

Parametersaddressrequired

start_strategy

Start a house preset on a hyperliquid-mainnet wallet and place its first orders. Leverage must be one of the preset's testedLeverage or highRiskLeverage levels; high-risk levels need acceptHighRisk: true. Requires the owner to have turned on autonomous trading and confirmed perps eligibility. One strategy per wallet. Every order is an ActionIntent under this key's caps and co-sign rules; the key is re-checked every run and the strategy pauses if it is revoked.

ParametersleveragerequiredpresetIdrequiredwalletIdrequiredmaxLossPctacceptHighRiskmaxAllocationUsd

start_copy_trade

Copy another Hyperliquid account on one of your wallets. Every hour FortFi reads their book, keeps their largest positions until 95% of their exposure is covered (at most 10 names), scales to your equity and leverage cap, and trades only when a position drifts more than 10% from target. Leverage cap 1 or 2; 3 and 5 are high risk and need acceptHighRisk: true. Same rails, caps and key re-checks as start_strategy.

ParametersaddressrequiredleveragerequiredwalletIdrequiredmaxLossPctacceptHighRiskmaxAllocationUsd

update_strategy

Resize a strategy or copy trade: raise or lower its leverage (offered levels only) or allocation cap. Moving into a high-risk level needs acceptHighRisk: true. The loss cap can be added or lowered, never raised or removed (OWNER_PASSKEY_REQUIRED).

ParametersidrequiredleveragewalletIdrequiredmaxLossPctacceptHighRiskmaxAllocationUsd

pause_strategy

Pause a strategy. Positions stay open; no more orders until resumed.

ParametersidrequiredwalletIdrequired

resume_strategy

Resume a paused strategy. An API key can only resume a strategy it started; others need the owner in the app.

ParametersidrequiredwalletIdrequired

stop_strategy

Stop a strategy and close every position it opened (cash out). Positions it did not open are left alone.

ParametersidrequiredwalletIdrequired

rebalance_strategy_now

Run a strategy's rebalance now instead of waiting for its schedule. Returns the run outcome.

ParametersidrequiredwalletIdrequired

list_hyperliquid_positions

List open Hyperliquid perp positions and margin summary for a hyperliquid-mainnet wallet (its address is used on the L1 order book).

ParameterswalletIdrequired

get_hyperliquid_balances

Get Hyperliquid wallet balances: L1 perps margin (withdrawable), HL Spot USDC (MoonPay HyperCore lands here), and HyperEVM USDC/HYPE. Also returns a `perps` aggregate over open positions: openPositionCount, unrealizedPnlUsd, entryNotionalUsd, and unrealizedPnlPct (null when nothing is open).

ParameterswalletIdrequired

get_hyperliquid_trading_desk

One-shot Hyperliquid trading desk snapshot for agent loops: margin, balances, positions, open orders, recent fills, and a `performance` block with unrealizedPnlUsd, unrealizedPnlPct, entryNotionalUsd, openPositionCount, and realizedPnlUsdRecentFills. Prefer this over many separate reads every 30-60 minutes.

ParameterswalletIdrequiredfillLimit

list_hyperliquid_open_orders

List resting Hyperliquid orders including SL/TP triggers for a wallet.

ParameterswalletIdrequired

get_hyperliquid_user_fills

Recent Hyperliquid trade fills with closedPnl per fill. Use for P&L review and trade history (up to 2000 from HL).

ParameterslimitwalletIdrequired

propose_hyperliquid_perp_open

Propose opening a Hyperliquid perp position. Runs FortFi perp policy (max leverage, max notional) and rejects non-hyperliquid-mainnet wallets. Optional marginMode picks cross or isolated margin. Returns a proposalId for confirm_proposal.

ParameterssiderequiredsizesymbolrequiredsizeUsdleveragestopLosswalletIdrequiredlimitPricemarginModetakeProfittimeInForceacknowledgePriceImpact

propose_hyperliquid_perp_close

Propose closing a Hyperliquid perp position (reduce-only). Omit size to close the whole position. Returns a proposalId for confirm_proposal.

ParameterssizesymbolrequiredwalletIdrequired

propose_hyperliquid_perp_modify

Propose modifying an open Hyperliquid perp position: its stop-loss / take-profit and/or its leverage. Only the exit you pass is replaced: changing stopLoss keeps the resting take-profit(s), and vice versa. leverage changes the open position's leverage in place (keeps its cross / isolated mode, size unchanged). Raising leverage runs FortFi perp policy (max leverage) and the wallet loss cap; lowering it needs enough margin on Hyperliquid. Returns a proposalId for confirm_proposal.

ParameterssymbolrequiredleveragestopLosswalletIdrequiredtakeProfittakeProfitSizePercent

cancel_hyperliquid_orders

Propose cancelling resting Hyperliquid orders (limit orders and SL/TP triggers) on one market. Pass oids from list_hyperliquid_open_orders, or omit oids to cancel every resting order on that symbol. Moves no money, but cancelling a stop loss removes protection, so it follows the normal confirm_proposal flow.

ParametersoidssymbolrequiredwalletIdrequired

propose_hyperliquid_deposit

Propose moving HyperEVM USDC into Hyperliquid perp margin (top up). Set perpDex for HIP-3 desks (xyz, io, para). Returns proposalId; execute with confirm_proposal (server-side when Delegated Access or agent credential).

ParametersperpDexwalletIdrequiredamountUsdrequired

propose_hyperliquid_withdraw

Propose moving Hyperliquid perp USDC to the owner's own HyperEVM wallet (same address; perp to HL Spot, then sendAsset to the USDC system address). Funds cannot go to any other recipient. Returns proposalId; human confirms with passkey via Perps Withdraw to HyperEVM or confirm_proposal.

ParameterswalletIdrequiredamountUsdrequired

propose_hyperliquid_spot_to_perp

Propose moving USDC from HL Spot into core perps margin (required after MoonPay HyperCore on-ramp). Returns proposalId; human confirms via Perps Deposit to tradable balance or confirm_proposal.

ParameterswalletIdrequiredamountUsdrequired

propose_hyperliquid_send_asset

Move USDC between Hyperliquid margin desks without HyperEVM (any perp book: core, xyz, io, para, mkts, …, or spot → any perp desk). Use list_hyperliquid_balances perpDesks[].dex for valid dex ids.

ParameterswalletIdrequiredamountUsdrequiredsourceDexrequireddestinationDexrequired

list_hyperliquid_outcome_markets

List Hyperliquid HIP-4 outcome markets on the same account as perps. Prices are quote-micro (650000 = $0.65) from exchange mids. volumeUsd is 0 because outcomeMeta does not publish volume.

Parametersqlimitcursor

get_hyperliquid_outcome_market

One HIP-4 outcome market. id is the numeric outcome id. Optional walletId reads that Hyperliquid account's share balance.

ParametersidrequiredwalletId

propose_hyperliquid_outcome_order

Propose a HIP-4 buy or sell on the Hyperliquid account. size is micro-USDC collateral (10000000 = $10). limitPrice is quote-micro. Runs outcome policy (no leverage, max notional) before any signature. Confirm with confirm_proposal.

ParameterssiderequiredsizerequiredmarketIdrequiredwalletIdrequiredorderTyperequiredoutcomeIdrequiredlimitPrice

create_checkout_session

Create a per-customer checkout session: resolves (or provisions) the customer's own vault from your externalCustomerId, mints a payment request that settles into it, and returns checkoutUrl + x402Url. The paid webhook then carries customer identity. Price from productSlug or ad-hoc amountUsd.

ParameterschainIdcustomerrequiredmetadataamountUsdreferencedescriptionproductSlugidempotencyKeyexpiresInMinutesamountSmallestUnit

create_payment_request

Create a shareable payment request for a vault. Returns pid, paymentUrl, and qrPayload for humans or agents.

ParametersmetadataamountUsdexpiryDaysdescriptionwalletMappingIdrequiredexternalReferenceamountSmallestUnit

get_payment_request

Get a payment request by internal id or public pid, including settlement attempts.

ParametersidOrPidrequired

list_payment_requests

List payment requests for the authenticated account.

ParametersstatuswalletMappingId

cancel_payment_request

Cancel an open payment request with no verified settlement.

ParametersidOrPidrequired

extend_payment_request

Extend an open payment request expiry (default extension window in days).

ParametersidOrPidrequiredexpiryDaysrequired

pay_payment_request_x402

Pay an open FortFi invoice via x402 EIP-3009 from a governed Turnkey vault. Requires Delegated Access on human developer keys or an agent account. Base mainnet first.

ParametersfromWalletIdrequiredpaymentRequestPidrequired

list_payment_sales

Merchant view: paid and partially paid invoices on your collection vaults (what you sold). Includes payer, method, and settlement details.

ParameterswalletMappingId

list_payment_purchases

Buyer view: FortFi checkouts your vaults paid (what you bought). Matches settlements by payer wallet address across your fleet.

ParameterslimitwalletMappingId

create_payment_product

Create a persistent product checkout link (/pay/p/{slug}). Each visit mints a fresh payment request. One webhook endpoint receives paid events for all products.

ParametersnamerequiredslugimageUrlamountUsddescriptionmerchantSiteUrlwalletMappingIdrequiredamountSmallestUnitsuccessRedirectUrl

list_payment_products

List persistent product checkout links for the account.

Takes no parameters.

get_payment_product

Get a payment product by internal id or public slug.

Parametersidslug

create_merchant_webhook

Register a webhook URL. FortFi generates a signing secret (returned once) for the merchant to verify HMAC on incoming POSTs. Not per-product — one endpoint receives all paid events.

Parametersurlrequireddescription

list_merchant_webhooks

List registered webhook endpoints (secrets are never returned).

Takes no parameters.

list_merchant_webhook_deliveries

List webhook delivery log. Use status=failed for dead-letter queue rows. Filter by paymentRequestId to find deliveries for one checkout.

ParameterslimitstatusendpointIdpaymentRequestId

replay_merchant_webhook_delivery

Replay a dead-lettered or failed webhook delivery after fixing your endpoint. Re-sends the same event id and body for idempotent handlers.

ParametersdeliveryIdrequired

send_merchant_webhook_test

Send a signed webhook.test event to an endpoint.

ParametersendpointIdrequired

search_vaults

Parent-treasury vault inventory search (treasury credential + keys:manage + wallets:read). Matches nicknames, wallet IDs, addresses, external customer IDs, credential names, and prefixes. Never returns raw bearer keys.

ParameterslimitquerycursorchainIdmetadataKeymetadataValuecredentialAccesscredentialStatusexternalCustomerId

search_credentials

Parent-treasury key-centric credential search (treasury credential + keys:manage + wallets:read). Complements search_vaults. Never returns raw bearer keys.

ParameterslimitqueryaccesscursorstatuswalletIdmetadataKeymetadataValuecredentialKindexternalCustomerId

create_vault_credential

Mint a vault-scoped credential for an existing wallet (treasury + keys:manage). Returns bearerKey once when agentPublicKey is omitted. Requires FORTFI_VAULT_CREDENTIALS_ENABLED.

ParametersnamerequiredaccessrequiredexpiresAtvaultGrantsrequiredagentPublicKey

update_vault_credential

Atomically replace a vault credential's name, access mode, grants, and expiry (treasury + keys:manage). Revoked credentials cannot be updated.

ParametersnamerequiredaccessrequiredexpiresAtvaultGrantsrequiredcredentialIdrequired

revoke_vault_credential

Revoke a vault-scoped credential (treasury + keys:manage). Idempotent if already revoked.

ParameterscredentialIdrequired

create_provisioning_job

Bulk-provision up to 20 customer vaults per job (treasury + keys:manage + wallets:write). Requires idempotencyKey in args. Poll get_provisioning_job until terminal; bearer secrets reveal once on first terminal GET.

ParametersitemsrequiredidempotencyKeyrequired

get_provisioning_job

Poll a bulk provisioning job (treasury + keys:manage + wallets:read). bearerKey appears once when secretsDelivery is revealed.

ParametersjobIdrequired

create_customer

Create or sync one customer vault synchronously (treasury + wallets:write). Idempotent on externalCustomerId + namespace + chain. Returns wallet address immediately; Turnkey wallet creation may take a few seconds on first call.

ParameterswalletrequirednamespacecredentialclientRequestIdrequiredexternalCustomerIdrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.