FortFi Treasury MCP
이 MCP로 할 수 있는 일
Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges, trading data, approvals, and customer vaults.
도구
입력 스키마
{'type': 'object', 'required': ['inviteId'], 'properties': {'inviteId': {'type': 'string', 'description': 'Invite id from list_incoming_cosigner_invites'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['address', 'chainId'], 'properties': {'address': {'type': 'string', 'description': 'Wallet address (0x… or Solana base58)'}, 'chainId': {'type': 'string', 'description': 'FortFi chain id, e.g. base-mainnet, ethereum-mainnet, robinhood-mainnet, solana-mainnet'}, 'nickname': {'type': 'string', 'description': 'Optional display name'}, 'challengeId': {'type': 'string', 'description': 'Agent GOVERN: challengeId from the first call'}, 'walletSignature': {'type': 'string', 'description': 'Agent GOVERN: funding-wallet signature'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['pendingApprovalId'], 'properties': {'pendingApprovalId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['recipientId'], 'properties': {'challengeId': {'type': 'string', 'description': 'Governance challengeId from the first call'}, 'recipientId': {'type': 'string', 'description': 'Recipient id from list_recipients or add_recipient'}, 'walletSignature': {'type': 'string', 'description': 'Funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['challengeId'], 'properties': {'challengeId': {'type': 'string', 'description': 'The governance request id from list_governance_requests'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['idOrPid'], 'properties': {'idOrPid': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['pendingApprovalId'], 'properties': {'pendingApprovalId': {'type': 'string', 'description': 'Pending approval id from list_pending_cosigner_approvals or list_audit_log'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'tokenAddress', 'requiredAmountSmallest', 'flow'], 'properties': {'flow': {'enum': ['cow_swap', 'fusion_bridge'], 'type': 'string', 'description': 'cow_swap = CoW VaultRelayer; fusion_bridge = 1inch Limit Order'}, 'fromWalletId': {'type': 'string', 'description': 'Source EVM wallet id'}, 'tokenAddress': {'type': 'string', 'description': 'Sell token contract (0x…)'}, 'requiredAmountSmallest': {'type': 'string', 'description': 'Required allowance in token smallest units (e.g. USDC 6 decimals)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['proposalId'], 'properties': {'proposalId': {'type': 'string', 'description': 'Proposal UUID returned by a propose_* tool'}, 'confirmToken': {'type': 'string', 'description': 'Optional proposal-bound confirmation token when one was returned'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['customer'], 'properties': {'chainId': {'type': 'string', 'description': 'Chain for ad-hoc sessions (default base-mainnet)'}, 'customer': {'type': 'object', 'required': ['externalId'], 'properties': {'namespace': {'type': 'string', 'description': "Mapping namespace (default 'default')"}, 'externalId': {'type': 'string', 'description': 'Your customer id (e.g. platform-customer-42)'}}, 'description': 'Your customer identity — vault is resolved per (namespace, externalId)', 'additionalProperties': False}, 'metadata': {'type': 'object', 'description': 'Optional metadata object'}, 'amountUsd': {'type': 'number', 'description': 'Ad-hoc price in USD (alternative to productSlug)'}, 'reference': {'type': 'string', 'description': 'Your order/session id, echoed on every webhook'}, 'description': {'type': 'string', 'description': 'Optional checkout note'}, 'productSlug': {'type': 'string', 'description': 'Price from an existing payment product (SKU)'}, 'idempotencyKey': {'type': 'string', 'description': 'Safe retries — same key returns the same session'}, 'expiresInMinutes': {'type': 'number', 'description': 'Session TTL (default 60, product default wins if set)'}, 'amountSmallestUnit': {'type': 'string', 'description': 'Ad-hoc USDC amount in smallest units'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['clientRequestId', 'externalCustomerId', 'wallet'], 'properties': {'wallet': {'type': 'object', 'required': ['chainId', 'nickname'], 'properties': {'chainId': {'type': 'string', 'description': 'e.g. base, ethereum, solana'}, 'metadata': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'nickname': {'type': 'string'}, 'spendingPolicy': {'type': 'object'}}, 'description': 'Wallet to create or reuse for this customer'}, 'namespace': {'type': 'string', 'description': 'Optional mapping namespace (default: default)'}, 'credential': {'type': 'object', 'description': 'Optional vault-scoped credential to issue for this wallet'}, 'clientRequestId': {'type': 'string', 'description': 'Caller idempotency id (unique per provisioning attempt)'}, 'externalCustomerId': {'type': 'string', 'description': 'Your platform customer id (stable across retries)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': "HTTPS callback URL on the merchant's server"}, 'description': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletMappingId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Product display name'}, 'slug': {'type': 'string', 'description': 'Optional URL slug (auto-generated if omitted)'}, 'imageUrl': {'type': 'string', 'description': 'HTTPS product image URL for checkout branding'}, 'amountUsd': {'type': 'number', 'description': 'Price in USD/USDC'}, 'description': {'type': 'string', 'description': 'Checkout subtitle shown to buyers'}, 'merchantSiteUrl': {'type': 'string', 'description': 'Merchant homepage for checkout branding (optional)'}, 'walletMappingId': {'type': 'string', 'description': 'USDC collection vault id'}, 'amountSmallestUnit': {'type': 'string', 'description': 'Alternative: amount in token smallest units'}, 'successRedirectUrl': {'type': 'string', 'description': 'HTTPS buyer redirect after pay (optional)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletMappingId'], 'properties': {'metadata': {'type': 'object', 'description': 'Optional metadata object'}, 'amountUsd': {'type': 'number', 'description': 'Invoice amount in USD (1 USD = 1 USDC)'}, 'expiryDays': {'type': 'number', 'description': 'Days until expiry (default 30)'}, 'description': {'type': 'string', 'description': 'Optional invoice note'}, 'walletMappingId': {'type': 'string', 'description': 'Target collection vault id'}, 'externalReference': {'type': 'string', 'description': 'Optional external invoice id'}, 'amountSmallestUnit': {'type': 'string', 'description': 'USDC amount in smallest units (alternative to amountUsd)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['idempotencyKey', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Up to 20 provisioning items'}, 'idempotencyKey': {'type': 'string', 'description': 'Unique key (8–200 chars) — same key + body replays the job'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'access', 'vaultGrants'], 'properties': {'name': {'type': 'string', 'description': 'Credential label (2–100 chars)'}, 'access': {'enum': ['read_only', 'read_write'], 'type': 'string'}, 'expiresAt': {'type': 'string', 'description': 'ISO-8601 expiry (optional)'}, 'vaultGrants': {'type': 'array', 'items': {'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string'}, 'dailyCapUsdMicros': {'type': 'string'}, 'perTxCapUsdMicros': {'type': 'string'}, 'monthlyCapUsdMicros': {'type': 'string'}, 'maxTransactionsPerDay': {'type': 'number'}}}, 'description': 'Explicit wallet grants with optional USD micro caps'}, 'agentPublicKey': {'type': 'string', 'description': 'Optional uncompressed P-256 public key (04… hex) for ECDSA auth'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chainId'], 'properties': {'sort': {'type': 'string', 'description': 'gainers_1d, gainers_30d, gainers_90d, gainers_365d, losers_1d, losers_30d, losers_90d, losers_365d, market_cap, volume_1d (default market_cap)'}, 'limit': {'type': 'number', 'description': 'Max results (default 10, max 25)'}, 'query': {'type': 'string', 'description': "Optional name/symbol filter, e.g. 'USDC' or 'wrapped'"}, 'chainId': {'type': 'string', 'description': 'FortFi chain id, e.g. base-mainnet, ethereum-mainnet'}, 'verifiedOnly': {'type': 'boolean', 'description': 'Only verified tokens'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['idOrPid', 'expiryDays'], 'properties': {'idOrPid': {'type': 'string'}, 'expiryDays': {'type': 'number', 'description': 'New expiry horizon from now (1-365)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string', 'description': 'Wallet id from list_wallets'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['orderHash'], 'properties': {'orderHash': {'type': 'string', 'description': 'Fusion+ order hash (0x…)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string', 'description': 'FortFi wallet id on hyperliquid-mainnet'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'dex': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}], 'description': 'Filter dex ids. Comma-separated string or array.'}, 'band': {'type': 'number', 'description': 'Hysteresis band, default 1.0. A held name stays eligible while inside the top legsPerSide*(1+band); surfaced as hold_long / hold_short.'}, 'limit': {'type': 'number', 'description': 'Max symbols ranked by volume, default 60'}, 'scope': {'enum': ['core', 'all'], 'type': 'string', 'description': 'Default core'}, 'assetClass': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'enum': ['crypto', 'equity', 'commodity', 'fx', 'index', 'pre_ipo', 'other'], 'type': 'string'}}], 'description': 'Filter asset classes. Comma-separated string or array.'}, 'legsPerSide': {'type': 'number', 'description': 'Legs per side, default 6'}, 'lookbackDays': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Trailing return windows in days. FIRST entry is the ranking signal. Default [14,7,30].'}, 'includeAllDesks': {'type': 'boolean', 'description': 'When true, same as scope=all'}, 'minDayVolumeUsd': {'type': 'number', 'description': 'Liquidity floor, default 2000000'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': 'Coin symbol, e.g. BTC'}, 'interval': {'enum': ['1m', '5m', '15m', '1h', '4h', '1d'], 'type': 'string', 'description': 'Candle interval (default 1h)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string', 'description': 'FortFi wallet id on hyperliquid-mainnet'}, 'fillLimit': {'type': 'number', 'description': 'Recent fills to include (default 100, max 500)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'limit': {'type': 'number', 'description': 'Max fills to return (default 200, max 2000)'}, 'walletId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'topic': {'enum': ['overview', 'tools', 'workflows', 'limits', 'pricing', 'all'], 'type': 'string', 'description': 'Default overview'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['idOrPid'], 'properties': {'idOrPid': {'type': 'string', 'description': 'Internal id or public pid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['conditionId'], 'properties': {'tokenId': {'type': 'string', 'description': 'Outcome token id for history (defaults to first outcome)'}, 'interval': {'enum': ['1h', '6h', '1d', '1w', 'max'], 'type': 'string', 'description': 'Price history window (default 1w)'}, 'conditionId': {'type': 'string', 'description': 'Market condition id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'Job id from create_provisioning_job'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromChainId', 'toChainId'], 'properties': {'toChainId': {'type': 'string', 'description': 'Destination chain id'}, 'fromChainId': {'type': 'string', 'description': 'Source chain id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chainId'], 'properties': {'period': {'enum': ['hour', 'day', 'week', 'month', '3months', '6months', 'year', '5years', 'max'], 'type': 'string', 'description': 'Chart window (default day)'}, 'address': {'type': 'string', 'description': 'Token contract address or Solana mint (fallback)'}, 'chainId': {'type': 'string', 'description': 'FortFi chain id, e.g. base-mainnet, ethereum-mainnet'}, 'fungibleId': {'type': 'string', 'description': 'Zerion fungible id returned by discover_tokens (preferred)'}, 'indicators': {'type': 'array', 'items': {'enum': ['return', 'drawdown', 'ema', 'rsi', 'macd', 'bollinger'], 'type': 'string'}, 'description': 'Optional indicators to return; defaults to all. REST callers may pass a comma-separated value.'}, 'includePoints': {'type': 'boolean', 'description': 'Include the raw chart points array. Default false.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chainId', 'vaultAddress'], 'properties': {'apyDays': {'type': 'number', 'description': 'APY history window, 7–365 days; default 30'}, 'chainId': {'type': 'string', 'description': 'FortFi yield-supported chain id'}, 'tvlDays': {'type': 'number', 'description': 'TVL history window, 7–365 days; default 90'}, 'vaultAddress': {'type': 'string', 'description': 'Vault address from list_yield_markets'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'email': {'type': 'string', 'description': 'Human path: invitee email for Security UI co-signer provision'}, 'nickname': {'type': 'string', 'description': 'Optional nickname for this co-signer'}, 'challengeId': {'type': 'string', 'description': 'Governance challengeId from the first call'}, 'cosignerUserId': {'type': 'string', 'description': 'Agent path: FortFi userId of the agent to invite as co-signer'}, 'walletSignature': {'type': 'string', 'description': 'Funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'email': {'type': 'string'}, 'nickname': {'type': 'string'}, 'challengeId': {'type': 'string'}, 'cosignerUserId': {'type': 'string'}, 'walletSignature': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'category': {'enum': ['all', 'money', 'security', 'account'], 'type': 'string', 'description': 'Filter timeline category (default all)'}, 'walletId': {'type': 'string', 'description': 'Filter to one wallet mapping id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max entries to return (default 20, max 100)'}, 'cursor': {'type': 'string', 'description': "Opaque cursor from a previous page's nextCursor. Passing this key (even as '') switches the response to { items, nextCursor }."}, 'walletId': {'type': 'string', 'description': 'Filter to audit entries for one wallet id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size (default 30, max 100)'}, 'offset': {'type': 'number', 'description': 'Pagination offset (default 0)'}, 'search': {'type': 'string', 'description': 'Filter by coin symbol'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string', 'description': 'FortFi wallet id on hyperliquid-mainnet'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'dex': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}], 'description': 'Filter dex ids (core, xyz, io, para). Comma-separated string or array.'}, 'limit': {'type': 'number', 'description': 'Max rows by 24h volume (default all, max 500)'}, 'scope': {'enum': ['core', 'all'], 'type': 'string', 'description': 'Default core'}, 'assetClass': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'enum': ['crypto', 'equity', 'commodity', 'fx', 'index', 'pre_ipo', 'other'], 'type': 'string'}}], 'description': 'Filter asset classes. Comma-separated string or array.'}, 'includeAllDesks': {'type': 'boolean', 'description': 'When true, same as scope=all'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max rows (default 50, max 200)'}, 'status': {'enum': ['pending', 'delivered', 'failed'], 'type': 'string'}, 'endpointId': {'type': 'string'}, 'paymentRequestId': {'type': 'string', 'description': 'Internal payment request UUID'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max rows (default 200, max 500)'}, 'walletMappingId': {'type': 'string', 'description': 'Optional payer vault filter'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'status': {'enum': ['open', 'processing', 'partially_paid', 'paid', 'expired', 'cancelled'], 'type': 'string'}, 'walletMappingId': {'type': 'string', 'description': 'Optional vault filter'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'walletMappingId': {'type': 'string', 'description': 'Optional collection vault filter'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max entries (default 10)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max markets (default 25)'}, 'search': {'type': 'string', 'description': 'Optional question/slug filter'}, 'sortBy': {'type': 'string', 'description': 'volume_24hr (default), volume, liquidity, or end_date'}, 'afterCursor': {'type': 'string', 'description': 'Pagination cursor from a prior list response'}, 'sortDirection': {'enum': ['asc', 'desc'], 'type': 'string'}, 'minLiquidityUsd': {'type': 'number', 'description': 'Minimum liquidity USD (default 10000)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string', 'description': 'FortFi Polygon wallet id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size when paginating (default 50, max 200)'}, 'cursor': {'type': 'string', 'description': "Opaque cursor from a previous page's nextCursor. Passing this (even empty) switches the response to { items, nextCursor }."}, 'metadataKey': {'type': 'string', 'description': 'Filter wallets that include this metadata key (optional)'}, 'metadataValue': {'type': 'string', 'description': 'When set with metadataKey, require an exact value match'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'asset': {'type': 'string', 'description': 'Asset symbol filter, default USDC'}, 'limit': {'type': 'number', 'description': 'Max vaults (default 15, max 25)'}, 'sortBy': {'type': 'string', 'description': 'net_apy (default) or tvl'}, 'chainId': {'type': 'string', 'description': 'FortFi chain id or omit for all yield chains'}, 'minTvlUsd': {'type': 'number', 'description': 'Minimum vault TVL in USD (default 500000)'}, 'verifiedOnly': {'type': 'boolean', 'description': 'If true, only FortFi curated vaults; default false = open discovery'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['paymentRequestPid', 'fromWalletId'], 'properties': {'fromWalletId': {'type': 'string', 'description': 'Payer vault id (must match invoice chain)'}, 'paymentRequestPid': {'type': 'string', 'description': 'Public invoice pid from checkout URL or create_payment_request'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['targets'], 'properties': {'targets': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'weightPercent', 'kind'], 'properties': {'kind': {'enum': ['cash', 'yield', 'token', 'symbol'], 'type': 'string'}, 'label': {'type': 'string'}, 'symbol': {'type': 'string'}, 'weightPercent': {'type': 'number'}}}, 'description': 'Target allocation. Each row: { label, weightPercent, kind: cash|yield|token|symbol, symbol? }. Example: 40% cash, 10% yield, 30% UNI, 20% other tokens.'}, 'minLegUsd': {'type': 'number', 'description': 'Minimum leg size in USD (default 1)'}, 'driftThresholdPercent': {'type': 'number', 'description': 'Ignore drift below this % (default 5)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'toWalletId', 'sellSymbol', 'buySymbol', 'amountUsd'], 'properties': {'amountUsd': {'type': 'string'}, 'buySymbol': {'type': 'string'}, 'sellSymbol': {'type': 'string'}, 'toWalletId': {'type': 'string'}, 'fromWalletId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'sellSymbol', 'buySymbol', 'amountUsd'], 'properties': {'buyMint': {'type': 'string', 'description': 'Solana buy mint — omit for EVM'}, 'sellMint': {'type': 'string', 'description': 'Solana sell mint — omit for EVM'}, 'amountUsd': {'type': 'string', 'description': 'Approximate sell amount in USD'}, 'buySymbol': {'type': 'string'}, 'sellSymbol': {'type': 'string'}, 'toWalletId': {'type': 'string', 'description': 'Optional Solana receive wallet'}, 'fromWalletId': {'type': 'string', 'description': 'Source wallet id'}, 'buyTokenAddress': {'type': 'string', 'description': 'EVM buy token (0x…) — omit for Solana'}, 'slippagePercent': {'type': 'number', 'description': 'Optional Jupiter slippage 0–50'}, 'sellTokenAddress': {'type': 'string', 'description': 'EVM sell token (0x…) — omit for Solana'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'toWalletId', 'sellSymbol', 'buySymbol', 'amountUsd'], 'properties': {'amountUsd': {'type': 'string', 'description': 'Bridge amount in USD'}, 'buySymbol': {'type': 'string', 'description': 'Buy token symbol'}, 'sellSymbol': {'type': 'string', 'description': 'Sell token symbol'}, 'toWalletId': {'type': 'string', 'description': 'Destination wallet id (different chain)'}, 'fromWalletId': {'type': 'string', 'description': 'Source wallet id'}, 'previewQuoteId': {'type': 'string', 'description': 'Optional — from preview_bridge_quote for explicit quote review before propose'}, 'buyTokenAddress': {'type': 'string', 'description': "Optional expected destination token contract; proposal fails if it differs from FortFi's verified chain resolution"}, 'sellTokenAddress': {'type': 'string', 'description': "Optional expected source token contract; proposal fails if it differs from FortFi's verified chain resolution"}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chainId', 'walletName'], 'properties': {'chainId': {'type': 'string', 'description': 'FortFi chain id, e.g. base-mainnet, robinhood-mainnet, solana-mainnet'}, 'metadata': {'type': 'object', 'description': 'Optional flat string tags (max 20 keys), e.g. { "customer_id": "cust_123" }', 'additionalProperties': {'type': 'string'}}, 'walletName': {'type': 'string', 'description': 'Display name for the new wallet (2–64 chars)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'amountUsd'], 'properties': {'perpDex': {'type': 'string', 'description': 'core | xyz | io | para (default core)'}, 'walletId': {'type': 'string'}, 'amountUsd': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'symbol'], 'properties': {'size': {'type': 'string', 'description': 'Optional; omit to close all'}, 'symbol': {'type': 'string'}, 'walletId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'symbol'], 'properties': {'symbol': {'type': 'string'}, 'stopLoss': {'type': 'string'}, 'walletId': {'type': 'string'}, 'takeProfit': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'symbol', 'side'], 'properties': {'side': {'enum': ['long', 'short'], 'type': 'string'}, 'size': {'type': 'string', 'description': 'Coin-unit size (string). Use sizeUsd instead for USD notional.'}, 'symbol': {'type': 'string', 'description': 'e.g. BTC, ETH, xyz:TSLA, xyz:GOLD'}, 'sizeUsd': {'type': 'string', 'description': 'USD notional target (min $10 on HL). Preferred for agents.'}, 'leverage': {'type': 'number'}, 'stopLoss': {'type': 'string'}, 'walletId': {'type': 'string'}, 'takeProfit': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'amountUsd', 'sourceDex', 'destinationDex'], 'properties': {'walletId': {'type': 'string'}, 'amountUsd': {'type': 'string'}, 'sourceDex': {'type': 'string', 'description': 'core | spot | or any HIP-3 builder dex (xyz, io, para, mkts, …)'}, 'destinationDex': {'type': 'string', 'description': 'core | or any HIP-3 builder dex (not spot)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'amountUsd'], 'properties': {'walletId': {'type': 'string'}, 'amountUsd': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletId', 'amountUsd'], 'properties': {'walletId': {'type': 'string'}, 'amountUsd': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['recipientId', 'amountUsdc'], 'properties': {'memo': {'type': 'string'}, 'amountUsdc': {'type': 'string'}, 'recipientId': {'type': 'string'}}}}, 'dryRun': {'type': 'boolean', 'description': 'If true, validate only — no sends'}, 'fromWalletId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['conditionId', 'outcomeIndex', 'price', 'sizeDisplay'], 'properties': {'price': {'type': 'string', 'description': 'Limit price 0-1 (e.g. 0.52)'}, 'conditionId': {'type': 'string', 'description': 'Market condition id from list_polymarket_markets'}, 'sizeDisplay': {'type': 'string', 'description': 'Share count (e.g. 10)'}, 'fromWalletId': {'type': 'string'}, 'outcomeIndex': {'type': 'number', 'description': '0-based outcome index'}, 'fromAccountQuery': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['conditionId'], 'properties': {'conditionId': {'type': 'string'}, 'fromWalletId': {'type': 'string'}, 'outcomeIndex': {'type': 'number'}, 'fromAccountQuery': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['conditionId', 'outcomeIndex', 'price', 'sizeDisplay'], 'properties': {'price': {'type': 'string'}, 'conditionId': {'type': 'string'}, 'sizeDisplay': {'type': 'string'}, 'fromWalletId': {'type': 'string'}, 'outcomeIndex': {'type': 'number'}, 'fromAccountQuery': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['recipients'], 'properties': {'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['address', 'chainId'], 'properties': {'address': {'type': 'string'}, 'chainId': {'type': 'string'}, 'nickname': {'type': 'string'}}}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['accountId', 'nickname'], 'properties': {'nickname': {'type': 'string', 'description': 'New nickname (2–64 characters)'}, 'accountId': {'type': 'string', 'description': 'Wallet id from list_wallets'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'toWalletId', 'sellMint', 'buyMint', 'sellSymbol', 'buySymbol', 'amountUsd'], 'properties': {'buyMint': {'type': 'string', 'description': 'Mint address of token to buy'}, 'sellMint': {'type': 'string', 'description': 'Mint address of token to sell'}, 'amountUsd': {'type': 'string', 'description': 'Sell amount in USD'}, 'buySymbol': {'type': 'string', 'description': 'Human-readable buy symbol'}, 'sellSymbol': {'type': 'string', 'description': 'Human-readable sell symbol'}, 'toWalletId': {'type': 'string', 'description': 'Solana wallet id to receive (can be same as fromWalletId)'}, 'fromWalletId': {'type': 'string', 'description': 'Solana wallet id to sell from'}, 'previewQuoteId': {'type': 'string', 'description': 'Optional — from preview_swap_quote for explicit quote review before propose'}, 'slippagePercent': {'type': 'number', 'description': 'Optional slippage tolerance 0–50 (default 0.5)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'sellTokenAddress', 'buyTokenAddress', 'sellSymbol', 'buySymbol', 'amountUsd'], 'properties': {'amountUsd': {'type': 'string', 'description': 'Sell amount in USD'}, 'buySymbol': {'type': 'string', 'description': 'Human-readable symbol of buy token, e.g. ETH'}, 'sellSymbol': {'type': 'string', 'description': 'Human-readable symbol of sell token, e.g. USDC'}, 'fromWalletId': {'type': 'string', 'description': 'Source wallet id (must be EVM, CoW-supported chain)'}, 'previewQuoteId': {'type': 'string', 'description': 'Optional — from preview_swap_quote for explicit quote review before propose'}, 'buyTokenAddress': {'type': 'string', 'description': 'Token contract address to buy (0x…)'}, 'slippagePercent': {'type': 'number', 'description': 'Optional slippage tolerance 0–50 (default 0.5)'}, 'sellTokenAddress': {'type': 'string', 'description': 'Token contract address to sell (0x…)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'tokenAddress', 'flow'], 'properties': {'flow': {'enum': ['cow_swap', 'fusion_bridge'], 'type': 'string'}, 'fromWalletId': {'type': 'string', 'description': 'EVM wallet id'}, 'tokenAddress': {'type': 'string', 'description': 'Token to approve (0x…)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId'], 'properties': {'memo': {'type': 'string', 'description': 'Optional transfer note (max 256 chars)'}, 'amountUsdc': {'type': 'string', 'description': "Amount in USDC as a decimal string, e.g. '5.00'. Required for recipient sends; optional for invoice pay (defaults to remaining balance)."}, 'recipientId': {'type': 'string', 'description': 'Allowlisted recipient id (omit when using paymentRequestPid)'}, 'fromWalletId': {'type': 'string', 'description': 'Source wallet id from list_wallets'}, 'paymentRequestPid': {'type': 'string', 'description': 'Public invoice pid from checkout URL — pays merchant vault with pid-bound settlement'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['vaultAddress', 'amountUsd'], 'properties': {'amountUsd': {'type': 'string', 'description': 'USDC amount e.g. 100.00'}, 'assetSymbol': {'enum': ['USDC', 'USDT'], 'type': 'string'}, 'fromWalletId': {'type': 'string', 'description': 'FortFi wallet id'}, 'vaultAddress': {'type': 'string', 'description': 'Morpho vault contract (0x…)'}, 'fromAccountQuery': {'type': 'string', 'description': 'Wallet nickname (alternative to fromWalletId)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['vaultAddress', 'amountDisplay'], 'properties': {'vaultName': {'type': 'string'}, 'assetSymbol': {'enum': ['USDC', 'USDT'], 'type': 'string'}, 'fromWalletId': {'type': 'string'}, 'vaultAddress': {'type': 'string'}, 'amountDisplay': {'type': 'string'}, 'fromAccountQuery': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'dex': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}], 'description': 'Filter dex ids. Comma-separated string or array.'}, 'sort': {'enum': ['volume', 'pctChange', 'funding'], 'type': 'string', 'description': 'Default volume'}, 'limit': {'type': 'number', 'description': 'Default 20'}, 'scope': {'enum': ['core', 'all'], 'type': 'string', 'description': 'Default core'}, 'direction': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default desc'}, 'assetClass': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'enum': ['crypto', 'equity', 'commodity', 'fx', 'index', 'pre_ipo', 'other'], 'type': 'string'}}], 'description': 'Filter asset classes. Comma-separated string or array.'}, 'includeAllDesks': {'type': 'boolean', 'description': 'When true, same as scope=all'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'sortBy': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chains'], 'properties': {'mode': {'enum': ['quick', 'standard', 'deep'], 'type': 'string'}, 'sorts': {'type': 'array', 'items': {'enum': ['gainers_1d', 'gainers_30d', 'gainers_90d', 'gainers_365d', 'volume_1d', 'market_cap'], 'type': 'string'}, 'description': 'Defaults to gainers_30d + volume_1d. Optional supplements: gainers_1d, gainers_90d, gainers_365d, market_cap.'}, 'chains': {'type': 'array', 'items': {'type': 'string'}}, 'periods': {'type': 'array', 'items': {'enum': ['hour', 'day', 'week', 'month', '3months', '6months', 'year', '5years', 'max'], 'type': 'string'}}, 'deepOptIn': {'type': 'boolean', 'description': 'Required when mode=deep'}, 'verifiedOnly': {'type': 'boolean', 'description': 'Default true'}, 'candidateLimit': {'type': 'number', 'description': 'Override merged candidate cap, max 100'}, 'minVolume1dUsd': {'type': 'number', 'description': 'Default 50000'}, 'minMarketCapUsd': {'type': 'number', 'description': 'Default 5000000'}, 'includeUnverified': {'type': 'boolean', 'description': 'Default false'}, 'chartCandidateLimit': {'type': 'number', 'description': 'Override chart cap, max 20'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'asset': {'type': 'string', 'description': 'Asset symbol, default USDC'}, 'limit': {'type': 'number', 'description': 'Default 10, max 25'}, 'apyDays': {'type': 'number', 'description': 'Default 30'}, 'chainId': {'type': 'string', 'description': 'FortFi chain id or all'}, 'tvlDays': {'type': 'number', 'description': 'Default 90'}, 'minTvlUsd': {'type': 'number', 'description': 'Default 500000'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['walletAddress'], 'properties': {'challengeId': {'type': 'string', 'description': 'Governance challengeId from the first call'}, 'walletAddress': {'type': 'string', 'description': 'The backup wallet address (0x…) to register'}, 'walletSignature': {'type': 'string', 'description': 'CURRENT funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['pendingApprovalId'], 'properties': {'reason': {'type': 'string', 'description': 'Optional rejection reason'}, 'pendingApprovalId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'challengeId': {'type': 'string', 'description': 'Governance challengeId from the first call'}, 'walletSignature': {'type': 'string', 'description': 'Funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['membershipId'], 'properties': {'challengeId': {'type': 'string', 'description': 'Governance challengeId from the first call'}, 'membershipId': {'type': 'string', 'description': 'Membership id from list_cosigner_memberships'}, 'walletSignature': {'type': 'string', 'description': 'Funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['recipientId'], 'properties': {'recipientId': {'type': 'string', 'description': 'Recipient id from list_recipients'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deliveryId'], 'properties': {'deliveryId': {'type': 'string', 'description': 'Delivery row id from list_merchant_webhook_deliveries'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'targets': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'weightPercent', 'kind'], 'properties': {'kind': {'enum': ['cash', 'yield', 'token', 'symbol'], 'type': 'string'}, 'label': {'type': 'string'}, 'symbol': {'type': 'string', 'description': 'Required when kind=symbol (e.g. UNI)'}, 'weightPercent': {'type': 'number'}}}, 'description': 'Optional target allocation. Each row: { label, weightPercent, kind: cash|yield|token|symbol, symbol? }. Weights must sum to 100.'}, 'minLegUsd': {'type': 'number', 'description': 'Minimum USD for rebalance legs (default 1)'}, 'driftThresholdPercent': {'type': 'number', 'description': 'Hysteresis band in percentage points (default 5)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['inviteId'], 'properties': {'inviteId': {'type': 'string', 'description': 'Invite id from the invite you sent'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['credentialId'], 'properties': {'credentialId': {'type': 'string', 'description': 'Vault credential id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'coins': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional fixed symbol list (e.g. BTC, ETH). Omit for volume-filtered universe'}, 'holdBars': {'type': 'number', 'description': 'Hold period in bars. Default 24'}, 'interval': {'enum': ['1m', '5m', '15m', '1h', '4h', '1d'], 'type': 'string', 'description': 'Candle interval in research DB. Default 1h'}, 'strategy': {'enum': ['momentum_cross', 'trailing_return_rank'], 'type': 'string', 'description': 'Default momentum_cross'}, 'legsPerSide': {'type': 'number', 'description': 'Long/short leg count. Default 6'}, 'oosFraction': {'type': 'number', 'description': 'Out-of-sample tail fraction. Default 0.35'}, 'lookbackBars': {'type': 'number', 'description': 'Trailing return lookback. Default 336 on 1h (~14d)'}, 'minDayVolumeUsd': {'type': 'number', 'description': 'Universe liquidity floor when coins omitted. Default 1000000'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'prod': {'type': 'boolean', 'description': 'Use production Supabase (default false in dev)'}, 'spec': {'type': 'object', 'description': 'Strategy Spec: name, universe {dex, minDayVolumeUsd, includeCoins, excludeCoins, maxSymbols}, interval, signal {type rank|pattern, factor|pattern, params}, portfolio, costs, validation'}}, 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'dex': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}], 'description': 'Filter dex ids. Comma-separated string or array.'}, 'sort': {'enum': ['volume', 'pctChange', 'funding'], 'type': 'string', 'description': 'Default pctChange'}, 'limit': {'type': 'number', 'description': 'Default 40'}, 'scope': {'enum': ['core', 'all'], 'type': 'string', 'description': 'Default core'}, 'interval': {'enum': ['1m', '5m', '15m', '1h', '4h', '1d'], 'type': 'string', 'description': 'Default 1h'}, 'sideBias': {'enum': ['long', 'short', 'both'], 'type': 'string'}, 'direction': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'desc=gainers, asc=losers/short ideas'}, 'assetClass': {'oneOf': [{'type': 'string'}, {'type': 'array', 'items': {'enum': ['crypto', 'equity', 'commodity', 'fx', 'index', 'pre_ipo', 'other'], 'type': 'string'}}], 'description': 'Filter asset classes. Comma-separated string or array.'}, 'chartLimit': {'type': 'number', 'description': 'TA depth, default 10'}, 'indicators': {'type': 'array', 'items': {'enum': ['return', 'drawdown', 'ema', 'rsi', 'macd', 'bollinger'], 'type': 'string'}}, 'includeCharts': {'type': 'boolean'}, 'includeAllDesks': {'type': 'boolean', 'description': 'When true, same as scope=all'}, 'minDayVolumeUsd': {'type': 'number', 'description': 'Default 1000000'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['chains'], 'properties': {'mode': {'enum': ['quick', 'standard', 'deep'], 'type': 'string'}, 'sorts': {'type': 'array', 'items': {'enum': ['gainers_1d', 'gainers_30d', 'gainers_90d', 'gainers_365d', 'volume_1d', 'market_cap'], 'type': 'string'}, 'description': 'Defaults to gainers_30d + volume_1d. Add gainers_1d, gainers_90d, gainers_365d, or market_cap when requested.'}, 'chains': {'type': 'array', 'items': {'type': 'string'}}, 'deepOptIn': {'type': 'boolean', 'description': 'Required when mode=deep'}, 'verifiedOnly': {'type': 'boolean', 'description': 'Default true'}, 'candidateLimit': {'type': 'number', 'description': 'Override merged candidate cap, max 100'}, 'minVolume1dUsd': {'type': 'number', 'description': 'Default 50000'}, 'minMarketCapUsd': {'type': 'number', 'description': 'Default 5000000'}, 'includeUnverified': {'type': 'boolean', 'description': 'Default false; unverified results are labeled and need execution opt-in'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size (default 50, max 100)'}, 'query': {'type': 'string', 'description': 'Free-text search'}, 'access': {'enum': ['read_only', 'read_write'], 'type': 'string'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'status': {'enum': ['active', 'revoked'], 'type': 'string'}, 'walletId': {'type': 'string', 'description': 'Filter by vault wallet id'}, 'metadataKey': {'type': 'string', 'description': 'Exact metadata key (requires metadataValue)'}, 'metadataValue': {'type': 'string', 'description': 'Exact metadata value (requires metadataKey)'}, 'credentialKind': {'enum': ['treasury', 'vault'], 'type': 'string'}, 'externalCustomerId': {'type': 'string', 'description': 'Exact external customer id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number'}, 'query': {'type': 'string', 'description': 'Search text'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size (default 50, max 100)'}, 'query': {'type': 'string', 'description': 'Free-text search'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from prior response'}, 'chainId': {'type': 'string', 'description': 'Exact chain filter'}, 'metadataKey': {'type': 'string', 'description': 'Exact metadata key (requires metadataValue)'}, 'metadataValue': {'type': 'string', 'description': 'Exact metadata value (requires metadataKey)'}, 'credentialAccess': {'enum': ['read_only', 'read_write'], 'type': 'string', 'description': 'Filter by linked credential access mode'}, 'credentialStatus': {'enum': ['active', 'revoked'], 'type': 'string', 'description': 'Filter by linked credential status'}, 'externalCustomerId': {'type': 'string', 'description': 'Exact external customer id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['endpointId'], 'properties': {'endpointId': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['rules'], 'properties': {'rules': {'type': 'array', 'items': {'type': 'object'}}, 'challengeId': {'type': 'string', 'description': 'Governance challengeId (only needed when weakening rules)'}, 'walletSignature': {'type': 'string', 'description': 'Funding-wallet signature over the challenge message'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['credentialId', 'name', 'access', 'vaultGrants'], 'properties': {'name': {'type': 'string'}, 'access': {'enum': ['read_only', 'read_write'], 'type': 'string'}, 'expiresAt': {'type': 'string', 'description': 'ISO-8601 expiry, or null to clear'}, 'vaultGrants': {'type': 'array', 'items': {'type': 'object', 'required': ['walletId'], 'properties': {'walletId': {'type': 'string'}, 'dailyCapUsdMicros': {'type': 'string'}, 'perTxCapUsdMicros': {'type': 'string'}, 'monthlyCapUsdMicros': {'type': 'string'}, 'maxTransactionsPerDay': {'type': 'number'}}}}, 'credentialId': {'type': 'string', 'description': 'Vault credential id'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['accountId', 'metadata'], 'properties': {'metadata': {'type': 'object', 'description': 'Full metadata object, e.g. { "customer_id": "cust_123", "agent_id": "ag_1" }', 'additionalProperties': {'type': 'string'}}, 'accountId': {'type': 'string', 'description': 'Wallet id from list_wallets'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['fromWalletId', 'lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['recipientId', 'amountUsdc'], 'properties': {'memo': {'type': 'string'}, 'amountUsdc': {'type': 'string', 'description': 'Decimal USD amount e.g. 125.50'}, 'recipientId': {'type': 'string'}}}}, 'fromWalletId': {'type': 'string', 'description': 'Wallet id from list_wallets'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['recipients'], 'properties': {'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['address', 'chainId'], 'properties': {'address': {'type': 'string'}, 'chainId': {'type': 'string'}, 'nickname': {'type': 'string'}}}}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
Gate DEX MCP
Supports wallet authentication, blockchain RPC access, token and market data, transaction construction, transfers, swaps, approva…
Tokenbooks - crypto and fiat accounting and payments
Maintains double-entry accounting for crypto and fiat portfolios, including wallet synchronization, transaction classification, c…
xrploracle
Provides XRPL intelligence for payments, accounts, DEX and AMM liquidity, escrows, NFTs, validators, issued-token compliance, and…
Liquid Agent
Provides USDC bridge quotes and tracking, cross-chain balance checks, gas sponsorship information, tokenized stock portfolio oper…
Inferventis MCP Server
Provides financial calculations, stock and cryptocurrency prices, currency conversion, banking transactions, and Stripe payment d…
Bity
Connects to Bity accounts for cryptocurrency and fiat balances, market tickers, order books, trades, open orders, executed orders…
wallet
Provides account balances, stock-token prices and quotes, USDG trade information, and on-chain payment settlement records.
SAP MCP Server
Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.