{"openapi":"3.1.0","info":{"title":"Fuse AI — Fuse Network Business Payments & Loyalty API","version":"1.0.0","description":"Pay-per-request access to Fuse Network blockchain data and business payment infrastructure. Accepts USDC (Base via x402; Tempo via MPP), Visa/Mastercard/wallets (Stripe via MPP), and Bitcoin Lightning (MPP).","x-guidance":"Fuse AI exposes Fuse Network blockchain intelligence and business payment tooling as pay-per-request HTTP endpoints. Six paid operations: (1) GET /api/fuse/stats ($0.01) returns real-time Fuse Blockscout network statistics — block number, transaction volumes, gas price tiers, FUSE token price. (2) GET /api/fuse/wallet/{address} ($0.05) returns balance (FUSE + USD), transaction count, token transfer count, last activity, and 30-day payment activity for any EVM address on Fuse. (3) GET /api/fuse/defi/opportunities ($0.10) lists live Fuse-chain DeFi products (TVL from DefiLlama, APY windows from Solid.xyz). (4) POST /api/fuse/loyalty/create ($5.00) deploys a real LoyaltyToken ERC-20 (mintable, burnable, ownable, minter-acl) on Fuse mainnet on behalf of the caller. The body MUST include `owner` (caller's wallet address) — that address becomes the on-chain owner and receives the initial supply. This service's deployer key is seeded as an initial minter so /mint works out of the box; the owner can revoke it on-chain via setMinter(deployer, false) at any time. (5) POST /api/fuse/loyalty/mint ($0.50) mints additional units of an already-deployed LoyaltyToken to a recipient address. Only works while the deployer is still in the token's minter set. (6) GET /api/fuse/loyalty/balance/{token}/{address} ($0.02) reads any ERC-20 balance on Fuse via viem. Every endpoint accepts payment via two protocols simultaneously: (a) x402 — USDC on Base mainnet (eip155:8453) settled by the Coinbase CDP facilitator, paid to 0x198Ac74EFAeECE818Fb06C89bfded7C33d97C6F9; or (b) MPP — Tempo USDC (stablecoin), Stripe (Visa, Mastercard, wallets), or Bitcoin Lightning. MPP clients read the x-payment-info.offers field on each operation, or hit the endpoint without credentials to receive WWW-Authenticate: Payment challenges. No accounts, no API keys — agents pay per request.","x-logo":{"url":"https://cdn.prod.website-files.com/63a6d0820bd1f472b4150067/65b77eabcf2a293d3401c01f_sFuse.png","altText":"Fuse Network"}},"x-service-info":{"categories":["blockchain","ai","payments"],"docs":{"homepage":"https://ai.fuse.io","apiReference":"https://ai.fuse.io/openapi.json"}},"servers":[{"url":"https://ai.fuse.io","description":"Production"}],"paths":{"/api/fuse/stats":{"get":{"operationId":"getFuseStats","tags":["Network"],"summary":"Real-time Fuse network statistics","description":"Returns current Fuse Network state from Blockscout: block number, total and daily transactions, network utilization, gas price tiers, FUSE token price.","parameters":[{"name":"Accept","in":"header","required":false,"description":"Standard HTTP Accept header. Endpoint always returns application/json regardless.","schema":{"type":"string","default":"application/json"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"0.01","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Real-time Fuse network statistics"},{"method":"stripe","intent":"charge","amount":"0.01","currency":"USD","description":"Real-time Fuse network statistics"},{"method":"lightning","intent":"charge","amount":"10","currency":"sat","description":"Real-time Fuse network statistics"}]},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}},"/api/fuse/wallet/{address}":{"get":{"operationId":"getFuseWallet","tags":["Wallet"],"summary":"Complete Fuse wallet analysis","description":"Returns balance (FUSE + USD), transaction count, token transfer count, last activity timestamp, and 30-day payment activity.","parameters":[{"name":"address","in":"path","required":true,"description":"EVM wallet address (0x-prefixed, 42 chars)","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"0.05","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Fuse wallet analysis"},{"method":"stripe","intent":"charge","amount":"0.05","currency":"USD","description":"Fuse wallet analysis"},{"method":"lightning","intent":"charge","amount":"50","currency":"sat","description":"Fuse wallet analysis"}]},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}},"/api/fuse/defi/opportunities":{"get":{"operationId":"getFuseDefiOpportunities","tags":["DeFi"],"summary":"Fuse DeFi yield opportunities","description":"Lists Fuse-chain protocols (TVL from DefiLlama, grouped by category) plus live Solid.xyz APY windows for SoUSD/SoFUSE yield products.","parameters":[{"name":"Accept","in":"header","required":false,"description":"Standard HTTP Accept header. Endpoint always returns application/json regardless.","schema":{"type":"string","default":"application/json"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.10"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"0.10","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Fuse DeFi yield opportunities"},{"method":"stripe","intent":"charge","amount":"0.10","currency":"USD","description":"Fuse DeFi yield opportunities"},{"method":"lightning","intent":"charge","amount":"100","currency":"sat","description":"Fuse DeFi yield opportunities"}]},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}},"/api/fuse/loyalty/create":{"post":{"operationId":"createLoyaltyToken","tags":["Loyalty"],"summary":"Deploy a loyalty/payment token on Fuse","description":"Deploys a real LoyaltyToken ERC-20 (mintable, burnable, ownable, minter-acl) on Fuse mainnet via viem on behalf of the caller. The caller-supplied `owner` address becomes the on-chain owner and receives the initial supply; this service's deployer is seeded as an initial minter (revocable by owner via setMinter).","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"5.00"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"5.00","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Deploy LoyaltyToken ERC-20 on Fuse"},{"method":"stripe","intent":"charge","amount":"5.00","currency":"USD","description":"Deploy LoyaltyToken ERC-20 on Fuse"},{"method":"lightning","intent":"charge","amount":"5000","currency":"sat","description":"Deploy LoyaltyToken ERC-20 on Fuse"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tokenName","tokenSymbol","owner"],"properties":{"tokenName":{"type":"string","maxLength":64},"tokenSymbol":{"type":"string","maxLength":12},"owner":{"type":"string","description":"Caller's wallet address — becomes the on-chain token owner and receives the initial supply.","pattern":"^0x[a-fA-F0-9]{40}$"},"businessName":{"type":"string","maxLength":120},"initialSupply":{"type":"integer","minimum":0}}},"example":{"tokenName":"AcmeRewards","tokenSymbol":"ACME","owner":"0x198Ac74EFAeECE818Fb06C89bfded7C33d97C6F9","businessName":"Acme Inc.","initialSupply":1000000}}}},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}},"/api/fuse/loyalty/mint":{"post":{"operationId":"mintLoyaltyTokens","tags":["Loyalty"],"summary":"Mint loyalty tokens to a recipient","description":"Mints additional units of an already-deployed LoyaltyToken on Fuse. Only succeeds while this service's deployer holds the minter role for the target token (revocable by owner).","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.50"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"0.50","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Mint loyalty tokens"},{"method":"stripe","intent":"charge","amount":"0.50","currency":"USD","description":"Mint loyalty tokens"},{"method":"lightning","intent":"charge","amount":"500","currency":"sat","description":"Mint loyalty tokens"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tokenAddress","recipient","amount"],"properties":{"tokenAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"amount":{"type":"number","minimum":0},"reason":{"type":"string","maxLength":120}}},"example":{"tokenAddress":"0xabc1234567890abcdef1234567890abcdef12345","recipient":"0xdef1234567890abcdef1234567890abcdef12345","amount":100,"reason":"customer_referral_bonus"}}}},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}},"/api/fuse/loyalty/balance/{token}/{address}":{"get":{"operationId":"getErc20Balance","tags":["Loyalty"],"summary":"Read any Fuse ERC-20 balance","description":"Returns the balance of a Fuse ERC-20 token held by a wallet (reads via viem; works for any ERC-20, not just LoyaltyTokens).","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20C000000000000000000000b9537d11c60E8b50"}}],"offers":[{"method":"tempo","intent":"charge","amount":"0.02","currency":"0x20C000000000000000000000b9537d11c60E8b50","recipient":"0x6cf1501853f9c6f99e3c30911ea8435004a9d6a2","description":"Read ERC-20 balance on Fuse"},{"method":"stripe","intent":"charge","amount":"0.02","currency":"USD","description":"Read ERC-20 balance on Fuse"},{"method":"lightning","intent":"charge","amount":"20","currency":"sat","description":"Read ERC-20 balance on Fuse"}]},"responses":{"200":{"description":"OK"},"402":{"description":"Payment Required"}}}}}}