Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/fuseio/fuse-docs/llms.txt

Use this file to discover all available pages before exploring further.

The Smart Wallet API provides a Wallets-as-a-Service (WaaS) layer for your cross-platform applications. It lets you authenticate users via their Externally Owned Accounts (EOAs), deploy upgradable ERC-4337 smart contract wallets on the Fuse network, and relay gasless transactions through the Fuse relayer service. Each wallet is non-custodial — the owner signs messages and the relayer submits them on-chain, so users pay no gas directly.

Base URL

https://api.fuse.io/api/v2/smart-wallets

Authentication

1

Add your public API key

Include your public API key as a query parameter on every request:
?apiKey=YOUR_PUBLIC_API_KEY
2

Authenticate the user (POST /auth)

Call the /auth endpoint with the user’s signed EIP-191 message to receive a short-lived JWT.
3

Use the JWT for protected endpoints

Pass the JWT as a Bearer token in the Authorization header for endpoints that require user authentication (such as /actions).

Endpoints

POST /auth — Authenticate user

Authenticate a user by verifying a signed EIP-191 message. Returns a JWT that authorizes subsequent requests on behalf of that user. Endpoint: POST https://api.fuse.io/api/v2/smart-wallets/auth?apiKey={apiKey}

Request parameters

apiKey
string
required
Your public API key.

Request body

hash
string
required
The hash of the message the user signed.
signature
string
required
The EIP-191 signature produced by the user’s EOA private key.
ownerAddress
string
required
The EOA address that produced the signature.
smartWalletAddress
string
The user’s existing smart contract wallet address, if one has already been deployed.

Response

jwt
string
A short-lived JWT. Include this as Authorization: Bearer <jwt> on subsequent requests.

Example

curl -X POST "https://api.fuse.io/api/v2/smart-wallets/auth?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hash": "0xabc123...",
    "signature": "0xdef456...",
    "ownerAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "smartWalletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
  }'
{
  "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

GET /actions — Get wallet actions

Retrieve the transaction history (sent and received token transfers) for the authenticated user’s smart wallet. Requires a valid JWT from the /auth endpoint. Endpoint: GET https://api.fuse.io/api/v2/smart-wallets/actions?apiKey={apiKey}

Request parameters

apiKey
string
required
Your public API key.
page
number
default:"1"
Page number for pagination.
limit
number
default:"10"
Number of action items to return per page.
tokenAddress
string
Filter results to actions involving a specific token contract address.

Response

docs
object[]
Array of wallet action objects.

Example

curl -X GET "https://api.fuse.io/api/v2/smart-wallets/actions?apiKey=YOUR_API_KEY&page=1&limit=10" \
  -H "Authorization: Bearer YOUR_JWT"
{
  "docs": [
    {
      "_id": "64a1b2c3d4e5f6a7b8c9d0e1",
      "walletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
      "name": "tokenTransfer",
      "status": "confirmed",
      "userOpHash": "0x111aaa...",
      "txHash": "0x222bbb...",
      "sent": [
        {
          "name": "Fuse Token",
          "symbol": "FUSE",
          "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
          "decimals": 18,
          "value": "1000000000000000000",
          "type": "native"
        }
      ],
      "received": []
    }
  ]
}

Error responses

StatusDescription
400Bad request — malformed body or missing required fields
401Unauthorized — JWT is missing or has expired
403Forbidden — invalid or missing apiKey

Build docs developers (and LLMs) love