MCP server for Fuse Network: balances, tokens, staking, DeFi data, swaps and on-chain transactions.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Signs and submits a contract-deployment transaction using the server's signer. Returns the transaction hash, and the deployed contract address when `waitForReceipt: true`.
Contract ABI. Required so constructor arguments can be encoded correctly.
Contract creation bytecode as a 0x-prefixed hex string.
Constructor arguments (defaults to []).
Native FUSE to send with the deployment, in wei (payable constructors).
When true, the tool waits for the deployment to be mined and includes the deployed address in the response (default false).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Signs and submits a contract-deployment transaction using the server's signer. Returns the transaction hash, and the deployed contract address when `waitForReceipt: true`.
| Argument | Type | Description |
|---|---|---|
| abi* | array | Contract ABI. Required so constructor arguments can be encoded correctly. |
| args | array | Constructor arguments (defaults to []). |
| bytecode* | string | Contract creation bytecode as a 0x-prefixed hex string. |
| valueWei | string | Native FUSE to send with the deployment, in wei (payable constructors). |
| waitForReceipt | boolean | When true, the tool waits for the deployment to be mined and includes the deployed address in the response (default false). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"bytecode",
"abi"
],
"properties": {
"abi": {
"type": "array",
"items": {},
"description": "Contract ABI. Required so constructor arguments can be encoded correctly."
},
"args": {
"type": "array",
"items": {},
"description": "Constructor arguments (defaults to [])."
},
"bytecode": {
"type": "string",
"description": "Contract creation bytecode as a 0x-prefixed hex string."
},
"valueWei": {
"type": "string",
"description": "Native FUSE to send with the deployment, in wei (payable constructors)."
},
"waitForReceipt": {
"type": "boolean",
"description": "When true, the tool waits for the deployment to be mined and includes the deployed address in the response (default false)."
}
},
"additionalProperties": false
}Generic dispatcher for the Fusebox Explorer API (`/api/v0/explorer/`). Pass `module` + `action` + any additional query params. Covers all 40+ etherscan-compatible endpoints including balances, logs, transactions, contract ABI/source, and the five contract-verify POST routes.
| Argument | Type | Description |
|---|---|---|
| body | object | JSON body for POST verify-* actions. |
| action* | string | Action within the module — e.g. `balance`, `txlist`, `getabi`, `getLogs`, `eth_block_number`, `verify`. |
| method | string | HTTP method (default GET). Use POST only for the five `contract/verify*` actions, which also accept a JSON body. |
| module* | string | Etherscan-style API module: `account`, `block`, `contract`, `logs`, `stats`, `token`, `transaction`. |
| params | object | Additional query parameters (e.g. `address`, `fromBlock`, `toBlock`, `topic0`). Omit `module`, `action`, and `apiKey` — they're injected automatically. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"module",
"action"
],
"properties": {
"body": {
"type": "object",
"description": "JSON body for POST verify-* actions.",
"additionalProperties": {}
},
"action": {
"type": "string",
"description": "Action within the module — e.g. `balance`, `txlist`, `getabi`, `getLogs`, `eth_block_number`, `verify`."
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string",
"description": "HTTP method (default GET). Use POST only for the five `contract/verify*` actions, which also accept a JSON body."
},
"module": {
"type": "string",
"description": "Etherscan-style API module: `account`, `block`, `contract`, `logs`, `stats`, `token`, `transaction`."
},
"params": {
"type": "object",
"description": "Additional query parameters (e.g. `address`, `fromBlock`, `toBlock`, `topic0`). Omit `module`, `action`, and `apiKey` — they're injected automatically.",
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
}
},
"additionalProperties": false
}Reads ERC-4337 state for a smart account on Fuse: deployment status, EntryPoint nonce, and the account's deposit balance at the EntryPoint. Paymaster eligibility is not evaluated in v0.1.
| Argument | Type | Description |
|---|---|---|
| nonceKey | string | Optional 192-bit nonce key as a decimal or 0x-prefixed hex string (defaults to 0). |
| smartAccountAddress* | string | Smart-account (ERC-4337) address — counterfactual or deployed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"smartAccountAddress"
],
"properties": {
"nonceKey": {
"type": "string",
"description": "Optional 192-bit nonce key as a decimal or 0x-prefixed hex string (defaults to 0)."
},
"smartAccountAddress": {
"type": "string",
"description": "Smart-account (ERC-4337) address — counterfactual or deployed."
}
},
"additionalProperties": false
}Returns the native FUSE balance for an address, or an ERC-20 token balance when `tokenAddress` is supplied.
| Argument | Type | Description |
|---|---|---|
| address* | string | EOA or contract address to query (0x-prefixed, EIP-55 or lowercase). |
| tokenAddress | string | Optional ERC-20 token address. Omit to fetch the native FUSE balance. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "EOA or contract address to query (0x-prefixed, EIP-55 or lowercase)."
},
"tokenAddress": {
"type": "string",
"description": "Optional ERC-20 token address. Omit to fetch the native FUSE balance."
}
},
"additionalProperties": false
}Returns the current Fuse network gas price (in wei and gwei) along with EIP-1559 fee suggestions when available.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Fetches the receipt for a mined transaction (status, gasUsed, logs). Returns null if the transaction is pending or unknown.
| Argument | Type | Description |
|---|---|---|
| hash* | string | Transaction hash (0x-prefixed, 32 bytes). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"description": "Transaction hash (0x-prefixed, 32 bytes)."
}
},
"additionalProperties": false
}Returns the EOA address controlled by the server's configured `FUSE_PRIVATE_KEY`. Use this before any write tool to confirm which account will pay gas and send transactions.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Returns the active staking positions for a wallet — staked amount, USD value, earned rewards, and APR per position. Powered by the Fusebox SDK StakingModule.
| Argument | Type | Description |
|---|---|---|
| walletAddress* | string | Smart-wallet address whose active staking positions should be returned. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"walletAddress"
],
"properties": {
"walletAddress": {
"type": "string",
"description": "Smart-wallet address whose active staking positions should be returned."
}
},
"additionalProperties": false
}Lists every staking option supported by Fuse — token, APR, TVL, expiry, and the matching unstake token. Powered by the Fusebox SDK StakingModule.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Reads name, symbol, decimals, and totalSupply for an ERC-20 token deployed on Fuse.
| Argument | Type | Description |
|---|---|---|
| tokenAddress* | string | ERC-20 token contract address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress"
],
"properties": {
"tokenAddress": {
"type": "string",
"description": "ERC-20 token contract address."
}
},
"additionalProperties": false
}Returns the current USD price for an ERC-20 token tracked by Fusebox. Powered by the Fusebox SDK TradeModule.
| Argument | Type | Description |
|---|---|---|
| tokenAddress* | string | Address of the ERC-20 token whose USD price should be returned. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress"
],
"properties": {
"tokenAddress": {
"type": "string",
"description": "Address of the ERC-20 token whose USD price should be returned."
}
},
"additionalProperties": false
}Returns the 24-hour percentage price change for an ERC-20 token tracked by Fusebox. Powered by the Fusebox SDK TradeModule.
| Argument | Type | Description |
|---|---|---|
| tokenAddress* | string | Address of the ERC-20 token whose 24-hour price change should be returned. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress"
],
"properties": {
"tokenAddress": {
"type": "string",
"description": "Address of the ERC-20 token whose 24-hour price change should be returned."
}
},
"additionalProperties": false
}Returns OHLC / interval price stats for an ERC-20 token over a week, month, or year. Powered by the Fusebox SDK TradeModule.
| Argument | Type | Description |
|---|---|---|
| timeFrame* | string | Granularity / range for the price series. |
| tokenAddress* | string | Address of the ERC-20 token to fetch price history for. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"timeFrame"
],
"properties": {
"timeFrame": {
"enum": [
"week",
"month",
"year"
],
"type": "string",
"description": "Granularity / range for the price series."
},
"tokenAddress": {
"type": "string",
"description": "Address of the ERC-20 token to fetch price history for."
}
},
"additionalProperties": false
}Quotes a token swap on Fuse — expected output amount, route, and price impact. Read-only: returns the quote without submitting a trade. Powered by the Fusebox SDK TradeModule.
| Argument | Type | Description |
|---|---|---|
| amount* | string | Amount, expressed as a decimal string in the token's base units (wei for 18-decimal tokens). |
| exactIn | boolean | When true (default), `amount` is the sell amount. When false, `amount` is the desired buy amount. |
| inputToken* | string | Address of the token being sold. |
| outputToken* | string | Address of the token being bought. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"inputToken",
"outputToken",
"amount"
],
"properties": {
"amount": {
"type": "string",
"description": "Amount, expressed as a decimal string in the token's base units (wei for 18-decimal tokens)."
},
"exactIn": {
"type": "boolean",
"description": "When true (default), `amount` is the sell amount. When false, `amount` is the desired buy amount."
},
"inputToken": {
"type": "string",
"description": "Address of the token being sold."
},
"outputToken": {
"type": "string",
"description": "Address of the token being bought."
}
},
"additionalProperties": false
}Fetches a transaction by hash. Returns null if the transaction is not found.
| Argument | Type | Description |
|---|---|---|
| hash* | string | Transaction hash (0x-prefixed, 32 bytes). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"description": "Transaction hash (0x-prefixed, 32 bytes)."
}
},
"additionalProperties": false
}Returns the ERC-4337 UserOperation history for a smart account on Fuse, indexed via the Fusebox GraphQL service. Powered by the Fusebox SDK GraphQLModule.
| Argument | Type | Description |
|---|---|---|
| sender* | string | Smart-account address (UserOperation `sender`) to fetch history for. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sender"
],
"properties": {
"sender": {
"type": "string",
"description": "Smart-account address (UserOperation `sender`) to fetch history for."
}
},
"additionalProperties": false
}Returns the catalogue of ERC-20 tokens tracked by Fusebox (tradable, indexed, priced). Powered by the Fusebox SDK TradeModule.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Lists all NFTs (ERC-721 / ERC-1155 collectibles) owned by a wallet on Fuse. Powered by the Fusebox SDK BalancesModule.
| Argument | Type | Description |
|---|---|---|
| walletAddress* | string | Wallet address whose NFT holdings should be listed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"walletAddress"
],
"properties": {
"walletAddress": {
"type": "string",
"description": "Wallet address whose NFT holdings should be listed."
}
},
"additionalProperties": false
}Lists all ERC-20 tokens held by a wallet on Fuse, enriched with Fusebox metadata (symbol, decimals, USD value). Powered by the Fusebox SDK BalancesModule.
| Argument | Type | Description |
|---|---|---|
| walletAddress* | string | Wallet address whose ERC-20 token portfolio should be listed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"walletAddress"
],
"properties": {
"walletAddress": {
"type": "string",
"description": "Wallet address whose ERC-20 token portfolio should be listed."
}
},
"additionalProperties": false
}Add one or more EVM addresses to a webhook's listening scope. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| addresses* | array | EVM addresses to start monitoring for this webhook. |
| webhookId* | string | ID of the webhook to extend. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId",
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "EVM addresses to start monitoring for this webhook."
},
"webhookId": {
"type": "string",
"description": "ID of the webhook to extend."
}
},
"additionalProperties": false
}Create a Fusebox Notification webhook for a project. Requires `FUSEBOX_SECRET_API_KEY` (Notification API endpoints authenticate with both apiKey and API-SECRET).
| Argument | Type | Description |
|---|---|---|
| eventType* | string | Event filter. `ERC721` also covers ERC1155 events. `ALL` subscribes to every event type. |
| projectId* | string | Fuse Console project ID that owns the webhook. |
| webhookUrl* | string | HTTPS URL that Fusebox will POST event payloads to. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"webhookUrl",
"eventType"
],
"properties": {
"eventType": {
"enum": [
"ALL",
"FUSE",
"ERC20",
"ERC721"
],
"type": "string",
"description": "Event filter. `ERC721` also covers ERC1155 events. `ALL` subscribes to every event type."
},
"projectId": {
"type": "string",
"description": "Fuse Console project ID that owns the webhook."
},
"webhookUrl": {
"type": "string",
"format": "uri",
"description": "HTTPS URL that Fusebox will POST event payloads to."
}
},
"additionalProperties": false
}Permanently delete a Fusebox Notification webhook. Destructive — the webhook stops receiving events. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| webhookId* | string | ID of the webhook to delete. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId"
],
"properties": {
"webhookId": {
"type": "string",
"description": "ID of the webhook to delete."
}
},
"additionalProperties": false
}Retrieve details of a single Fusebox Notification webhook. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| webhookId* | string | Webhook ID to retrieve. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId"
],
"properties": {
"webhookId": {
"type": "string",
"description": "Webhook ID to retrieve."
}
},
"additionalProperties": false
}List every EVM address monitored by a given webhook. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| webhookId* | string | Webhook ID whose monitored addresses should be listed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId"
],
"properties": {
"webhookId": {
"type": "string",
"description": "Webhook ID whose monitored addresses should be listed."
}
},
"additionalProperties": false
}List every Fusebox Notification webhook configured for a given project. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Project ID whose webhooks should be listed. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Project ID whose webhooks should be listed."
}
},
"additionalProperties": false
}Remove EVM addresses from a webhook's listening scope. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| addresses* | array | EVM addresses to stop monitoring. |
| webhookId* | string | ID of the webhook to modify. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId",
"addresses"
],
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "EVM addresses to stop monitoring."
},
"webhookId": {
"type": "string",
"description": "ID of the webhook to modify."
}
},
"additionalProperties": false
}Update a Fusebox Notification webhook's URL or event type. Requires `FUSEBOX_SECRET_API_KEY`.
| Argument | Type | Description |
|---|---|---|
| eventType* | string | Event filter (`ERC721` also covers ERC1155). |
| webhookId* | string | ID of the webhook to update. |
| webhookUrl* | string | New webhook URL. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"webhookId",
"webhookUrl",
"eventType"
],
"properties": {
"eventType": {
"enum": [
"ALL",
"FUSE",
"ERC20",
"ERC721"
],
"type": "string",
"description": "Event filter (`ERC721` also covers ERC1155)."
},
"webhookId": {
"type": "string",
"description": "ID of the webhook to update."
},
"webhookUrl": {
"type": "string",
"format": "uri",
"description": "New webhook URL."
}
},
"additionalProperties": false
}Calls a view/pure function on a Fuse contract. ABI is auto-fetched from the verified Fuse explorer when not supplied.
| Argument | Type | Description |
|---|---|---|
| abi | array | Optional ABI override. If omitted, the verified ABI is fetched from the Fuse explorer. |
| args | array | Positional arguments for the function (defaults to []). |
| address* | string | Contract address. |
| functionName* | string | Name of the view/pure function to call. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address",
"functionName"
],
"properties": {
"abi": {
"type": "array",
"items": {},
"description": "Optional ABI override. If omitted, the verified ABI is fetched from the Fuse explorer."
},
"args": {
"type": "array",
"items": {},
"description": "Positional arguments for the function (defaults to [])."
},
"address": {
"type": "string",
"description": "Contract address."
},
"functionName": {
"type": "string",
"description": "Name of the view/pure function to call."
}
},
"additionalProperties": false
}Resolves an ENS name to its EVM address. ENS is not deployed on Fuse — resolution requires `ENS_RPC_URL` to be configured (typically pointing at Ethereum mainnet). Plain hex addresses are passed through.
| Argument | Type | Description |
|---|---|---|
| name* | string | ENS name to resolve (e.g. `vitalik.eth`). Plain addresses are returned unchanged. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "ENS name to resolve (e.g. `vitalik.eth`). Plain addresses are returned unchanged."
}
},
"additionalProperties": false
}Submits a signed `ERC20.transfer(to, amount)` from the server's signer. Decimals are auto-fetched from the token; use `unit: "base"` to skip scaling.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient address. |
| unit | string | |
| amount* | string | Amount to transfer. Default unit is the token's display unit (decimals auto-detected); pass `unit: "base"` to send raw base units. |
| tokenAddress* | string | ERC-20 token contract address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"to",
"amount"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient address."
},
"unit": {
"enum": [
"display",
"base"
],
"type": "string"
},
"amount": {
"type": "string",
"description": "Amount to transfer. Default unit is the token's display unit (decimals auto-detected); pass `unit: \"base\"` to send raw base units."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 token contract address."
}
},
"additionalProperties": false
}Submits a signed transaction transferring native FUSE from the server's signer to a recipient. Returns the transaction hash; use `fuse_get_receipt` to confirm inclusion.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient address. |
| unit | string | `display` (default) treats `amount` as FUSE; `base` treats it as wei. |
| amount* | string | Amount of FUSE to send (default unit: FUSE — pass `unit: "wei"` for raw wei). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"to",
"amount"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient address."
},
"unit": {
"enum": [
"display",
"base"
],
"type": "string",
"description": "`display` (default) treats `amount` as FUSE; `base` treats it as wei."
},
"amount": {
"type": "string",
"description": "Amount of FUSE to send (default unit: FUSE — pass `unit: \"wei\"` for raw wei)."
}
},
"additionalProperties": false
}Signs a message with the server's signer using EIP-191 (`personal_sign`). Returns the 65-byte signature as hex. No on-chain transaction is submitted.
| Argument | Type | Description |
|---|---|---|
| message* | string | Message to sign. UTF-8 by default; pass `encoding: "hex"` for raw bytes (0x-prefixed). |
| encoding | string | `utf8` (default) or `hex` for raw bytes. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "Message to sign. UTF-8 by default; pass `encoding: \"hex\"` for raw bytes (0x-prefixed)."
},
"encoding": {
"enum": [
"utf8",
"hex"
],
"type": "string",
"description": "`utf8` (default) or `hex` for raw bytes."
}
},
"additionalProperties": false
}Signs a structured EIP-712 payload with the server's signer. Returns the 65-byte signature as hex. No on-chain transaction is submitted.
| Argument | Type | Description |
|---|---|---|
| types* | object | EIP-712 types map (exclude the `EIP712Domain` entry — it's derived from `domain`). |
| domain* | object | EIP-712 domain separator object. |
| message* | object | Typed-data message conforming to `primaryType`. |
| primaryType* | string | Name of the primary type to hash. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain",
"types",
"primaryType",
"message"
],
"properties": {
"types": {
"type": "object",
"description": "EIP-712 types map (exclude the `EIP712Domain` entry — it's derived from `domain`).",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"domain": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"salt": {
"type": "string"
},
"chainId": {
"type": "integer"
},
"version": {
"type": "string"
},
"verifyingContract": {
"type": "string"
}
},
"description": "EIP-712 domain separator object.",
"additionalProperties": false
},
"message": {
"type": "object",
"description": "Typed-data message conforming to `primaryType`.",
"additionalProperties": {}
},
"primaryType": {
"type": "string",
"description": "Name of the primary type to hash."
}
},
"additionalProperties": false
}Atomically approves a token and invokes a follow-up call on the spender from the configured smart wallet. Common DeFi pattern.
| Argument | Type | Description |
|---|---|---|
| unit | string | |
| amount* | string | Allowance amount in the token's display unit (or base if `unit: "base"`). |
| spender* | string | Contract that will receive the subsequent call. |
| callData* | string | Encoded calldata to invoke on `spender` after approval (0x-prefixed hex). |
| tokenAddress* | string | ERC-20 token contract address to approve. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"spender",
"amount",
"callData"
],
"properties": {
"unit": {
"enum": [
"display",
"base"
],
"type": "string"
},
"amount": {
"type": "string",
"description": "Allowance amount in the token's display unit (or base if `unit: \"base\"`)."
},
"spender": {
"type": "string",
"description": "Contract that will receive the subsequent call."
},
"callData": {
"type": "string",
"description": "Encoded calldata to invoke on `spender` after approval (0x-prefixed hex)."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 token contract address to approve."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation calling `approve(spender, tokenId)` on an NFT contract from the configured smart wallet.
| Argument | Type | Description |
|---|---|---|
| spender* | string | Address being granted approval for the token ID. |
| tokenId* | string | NFT token ID (decimal or hex). |
| nftContractAddress* | string | ERC-721 / ERC-1155 contract address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nftContractAddress",
"spender",
"tokenId"
],
"properties": {
"spender": {
"type": "string",
"description": "Address being granted approval for the token ID."
},
"tokenId": {
"type": "string",
"description": "NFT token ID (decimal or hex)."
},
"nftContractAddress": {
"type": "string",
"description": "ERC-721 / ERC-1155 contract address."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation calling `ERC20.approve(spender, amount)` from the configured smart wallet.
| Argument | Type | Description |
|---|---|---|
| unit | string | |
| amount* | string | Allowance amount. Default unit is the token's display unit; pass `unit: "base"` for raw base units. Use `"max"` to approve the uint256 maximum. |
| spender* | string | Address being granted spending allowance. |
| tokenAddress* | string | ERC-20 token contract address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"spender",
"amount"
],
"properties": {
"unit": {
"enum": [
"display",
"base"
],
"type": "string"
},
"amount": {
"type": "string",
"description": "Allowance amount. Default unit is the token's display unit; pass `unit: \"base\"` for raw base units. Use `\"max\"` to approve the uint256 maximum."
},
"spender": {
"type": "string",
"description": "Address being granted spending allowance."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 token contract address."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation invoking arbitrary calldata on a contract from the configured smart wallet. Use when you need full control over the encoded call.
| Argument | Type | Description |
|---|---|---|
| to* | string | Target contract address. |
| data* | string | Encoded calldata (0x-prefixed hex). |
| valueWei | string | Native FUSE to send with the call, in wei (default `0`). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"to",
"data"
],
"properties": {
"to": {
"type": "string",
"description": "Target contract address."
},
"data": {
"type": "string",
"description": "Encoded calldata (0x-prefixed hex)."
},
"valueWei": {
"type": "string",
"description": "Native FUSE to send with the call, in wei (default `0`)."
}
},
"additionalProperties": false
}Submits a single ERC-4337 UserOperation that executes a sequence of contract calls atomically. Failed sub-calls revert the whole batch.
| Argument | Type | Description |
|---|---|---|
| calls* | array | Ordered list of contract calls to execute atomically as a single UserOp. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"calls"
],
"properties": {
"calls": {
"type": "array",
"items": {
"type": "object",
"required": [
"to",
"data"
],
"properties": {
"to": {
"type": "string",
"description": "Target contract address."
},
"data": {
"type": "string",
"description": "Encoded calldata (0x-prefixed hex)."
},
"value": {
"type": "string",
"description": "Native FUSE to send with the call, in wei (default `0`)."
}
},
"additionalProperties": false
},
"minItems": 1,
"description": "Ordered list of contract calls to execute atomically as a single UserOp."
}
},
"additionalProperties": false
}Returns the ERC-4337 smart-wallet address derived from the configured signer, plus whether the Fuse paymaster (gasless mode) is enabled.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Submits an ERC-4337 UserOperation that stakes a token using Fuse's staking module. List options first with `fuse_get_staking_options`.
| Argument | Type | Description |
|---|---|---|
| tokenAmount* | string | Amount in base units (wei for 18-decimal tokens). |
| tokenAddress* | string | Token to stake (must match a `fuse_get_staking_options` entry). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"tokenAmount"
],
"properties": {
"tokenAmount": {
"type": "string",
"description": "Amount in base units (wei for 18-decimal tokens)."
},
"tokenAddress": {
"type": "string",
"description": "Token to stake (must match a `fuse_get_staking_options` entry)."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation executing a swap on Fuse via the Fusebox trade engine. Quote a swap first with `fuse_get_trade_quote` to preview the route.
| Argument | Type | Description |
|---|---|---|
| exactIn | boolean | `true` (default) treats `inputAmount` as sell amount; `false` treats it as buy amount. |
| inputToken* | string | Address of the token being sold. |
| inputAmount* | string | Amount in base units (wei for 18-decimal tokens). |
| outputToken* | string | Address of the token being bought. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"inputToken",
"outputToken",
"inputAmount"
],
"properties": {
"exactIn": {
"type": "boolean",
"description": "`true` (default) treats `inputAmount` as sell amount; `false` treats it as buy amount."
},
"inputToken": {
"type": "string",
"description": "Address of the token being sold."
},
"inputAmount": {
"type": "string",
"description": "Amount in base units (wei for 18-decimal tokens)."
},
"outputToken": {
"type": "string",
"description": "Address of the token being bought."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation transferring an NFT (ERC-721 / ERC-1155) from the configured smart wallet to a recipient.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient address. |
| tokenId* | string | NFT token ID (decimal or 0x-prefixed hex string). |
| nftContractAddress* | string | ERC-721 / ERC-1155 contract address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nftContractAddress",
"to",
"tokenId"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient address."
},
"tokenId": {
"type": "string",
"description": "NFT token ID (decimal or 0x-prefixed hex string)."
},
"nftContractAddress": {
"type": "string",
"description": "ERC-721 / ERC-1155 contract address."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation transferring a token (native FUSE or ERC-20) from the configured smart wallet. Gasless when `FUSE_USE_PAYMASTER=true`.
| Argument | Type | Description |
|---|---|---|
| to* | string | Recipient address. |
| unit | string | |
| amount* | string | Amount to transfer. Default unit is the token's display unit; pass `unit: "base"` for raw base units. |
| tokenAddress* | string | Token contract address. Use the native-token sentinel `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` for FUSE. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"to",
"amount"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient address."
},
"unit": {
"enum": [
"display",
"base"
],
"type": "string"
},
"amount": {
"type": "string",
"description": "Amount to transfer. Default unit is the token's display unit; pass `unit: \"base\"` for raw base units."
},
"tokenAddress": {
"type": "string",
"description": "Token contract address. Use the native-token sentinel `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` for FUSE."
}
},
"additionalProperties": false
}Submits an ERC-4337 UserOperation that unstakes a token via Fuse's staking module.
| Argument | Type | Description |
|---|---|---|
| tokenAmount* | string | Amount to unstake, in base units. |
| tokenAddress* | string | Original staking-token address. |
| unstakeTokenAddress* | string | Receipt token address paired with the stake (`unStakeTokenAddress` from `fuse_get_staking_options`). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"tokenAmount",
"unstakeTokenAddress"
],
"properties": {
"tokenAmount": {
"type": "string",
"description": "Amount to unstake, in base units."
},
"tokenAddress": {
"type": "string",
"description": "Original staking-token address."
},
"unstakeTokenAddress": {
"type": "string",
"description": "Receipt token address paired with the stake (`unStakeTokenAddress` from `fuse_get_staking_options`)."
}
},
"additionalProperties": false
}Exchange an EIP-191 signature for a JWT used as Bearer auth on Smart Wallet API calls (e.g. `fuse_smart_wallet_get_actions`). Signing happens client-side; this tool only submits the signed payload.
| Argument | Type | Description |
|---|---|---|
| hash* | string | Signed message hash (EIP-191). |
| signature* | string | EIP-191 signature produced by the EOA owner. |
| ownerAddress* | string | EOA address that signed the hash (the smart wallet's owner). |
| smartWalletAddress* | string | Deployed smart contract wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash",
"signature",
"ownerAddress",
"smartWalletAddress"
],
"properties": {
"hash": {
"type": "string",
"description": "Signed message hash (EIP-191)."
},
"signature": {
"type": "string",
"description": "EIP-191 signature produced by the EOA owner."
},
"ownerAddress": {
"type": "string",
"description": "EOA address that signed the hash (the smart wallet's owner)."
},
"smartWalletAddress": {
"type": "string",
"description": "Deployed smart contract wallet address."
}
},
"additionalProperties": false
}List the paginated action history (transfers, contract calls) of an authenticated smart wallet. The JWT comes from `fuse_smart_wallet_authenticate`.
| Argument | Type | Description |
|---|---|---|
| jwt* | string | Bearer JWT issued by `fuse_smart_wallet_authenticate`. |
| page | integer | Pagination page (default 1). |
| limit | integer | Items per page (default 10). |
| tokenAddress | string | Optional ERC-20 token address to filter actions by. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"jwt"
],
"properties": {
"jwt": {
"type": "string",
"description": "Bearer JWT issued by `fuse_smart_wallet_authenticate`."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Pagination page (default 1)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Items per page (default 10)."
},
"tokenAddress": {
"type": "string",
"description": "Optional ERC-20 token address to filter actions by."
}
},
"additionalProperties": false
}Returns an indicative price + route for a swap on Fuse (0x-style response). One of `sellAmount` / `buyAmount` must be provided.
| Argument | Type | Description |
|---|---|---|
| buyToken* | string | ERC-20 contract address of the token to buy. |
| gasPrice | string | Gas price override in wei. |
| buyAmount | string | Desired buy amount in base units (mutually exclusive with `sellAmount`). |
| sellToken* | string | ERC-20 contract address of the token to sell. |
| sellAmount | string | Sell amount in base units (mutually exclusive with `buyAmount`). |
| feeRecipient | string | |
| takerAddress | string | Address of the trader (for validation). |
| skipValidation | boolean | |
| excludedSources | string | Comma-separated liquidity sources to exclude. |
| includedSources |
Returns the liquidity sources currently enabled for Fuse-chain trades (e.g. voltage.finance, sub-pools).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Returns a token's price change over a custom day-count window (`{ priceChange, currentPrice, previousPrice }`).
| Argument | Type | Description |
|---|---|---|
| days* | integer | Number of days to look back when computing the price change. |
| tokenAddress* | string | ERC-20 contract address of the token. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tokenAddress",
"days"
],
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"description": "Number of days to look back when computing the price change."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 contract address of the token."
}
},
"additionalProperties": false
}Signs and submits a state-mutating contract call from the server's signer. ABI is auto-fetched from the Fuse explorer when not supplied. Returns the transaction hash.
| Argument | Type | Description |
|---|---|---|
| abi | array | Optional ABI override. If omitted, the verified ABI is fetched from the Fuse explorer. |
| args | array | Positional arguments (defaults to []). |
| address* | string | Contract address. |
| valueWei | string | Native FUSE value to send with the call, in wei (for payable functions). |
| functionName* | string | State-mutating function to call. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address",
"functionName"
],
"properties": {
"abi": {
"type": "array",
"items": {},
"description": "Optional ABI override. If omitted, the verified ABI is fetched from the Fuse explorer."
},
"args": {
"type": "array",
"items": {},
"description": "Positional arguments (defaults to [])."
},
"address": {
"type": "string",
"description": "Contract address."
},
"valueWei": {
"type": "string",
"description": "Native FUSE value to send with the call, in wei (for payable functions)."
},
"functionName": {
"type": "string",
"description": "State-mutating function to call."
}
},
"additionalProperties": false
}| string |
| Comma-separated liquidity sources to include. |
| slippagePercentage | string | Max slippage as a decimal string (e.g. `0.01` = 1%). |
| buyTokenPercentageFee | string |
| enableSlippageProtection | boolean |
| feeRecipientTradeSurplus | string |
| priceImpactProtectionPercentage | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sellToken",
"buyToken"
],
"properties": {
"buyToken": {
"type": "string",
"description": "ERC-20 contract address of the token to buy."
},
"gasPrice": {
"type": "string",
"description": "Gas price override in wei."
},
"buyAmount": {
"type": "string",
"description": "Desired buy amount in base units (mutually exclusive with `sellAmount`)."
},
"sellToken": {
"type": "string",
"description": "ERC-20 contract address of the token to sell."
},
"sellAmount": {
"type": "string",
"description": "Sell amount in base units (mutually exclusive with `buyAmount`)."
},
"feeRecipient": {
"type": "string"
},
"takerAddress": {
"type": "string",
"description": "Address of the trader (for validation)."
},
"skipValidation": {
"type": "boolean"
},
"excludedSources": {
"type": "string",
"description": "Comma-separated liquidity sources to exclude."
},
"includedSources": {
"type": "string",
"description": "Comma-separated liquidity sources to include."
},
"slippagePercentage": {
"type": "string",
"description": "Max slippage as a decimal string (e.g. `0.01` = 1%)."
},
"buyTokenPercentageFee": {
"type": "string"
},
"enableSlippageProtection": {
"type": "boolean"
},
"feeRecipientTradeSurplus": {
"type": "string"
},
"priceImpactProtectionPercentage": {
"type": "string"
}
},
"additionalProperties": false
}