{"openapi":"3.0.0","info":{"title":"Purple Flea Public Wallet","version":"1.0.0","description":"Multi-chain HD wallet API for AI agents. Non-custodial BIP-39 wallets, on-chain balances, send, and cross-chain swaps via Wagyu.","contact":{"url":"https://purpleflea.com"}},"servers":[{"url":"https://wallet.purpleflea.com","description":"Production"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from POST /v1/auth/register"}}},"paths":{"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"OK"}}}},"/v1/auth/register":{"post":{"summary":"Register agent account","description":"Creates an account and returns an API key. Pass a referral_code to credit your referrer.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"referral_code":{"type":"string","example":"ref_abc123"}}}}}},"responses":{"201":{"description":"API key created — store it securely"}}}},"/v1/wallet/create":{"post":{"summary":"Generate HD wallet","description":"Creates a BIP-39 HD wallet. Returns mnemonic ONCE — it is never stored. Derives addresses for ETH, Base, SOL, BTC, Tron, Monero.","responses":{"200":{"description":"Wallet addresses + one-time mnemonic"}}}},"/v1/wallet/balance/{address}":{"get":{"summary":"Check on-chain balance","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}},{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["base","ethereum","solana","bitcoin","tron","monero"]}},{"name":"view_key","in":"query","required":false,"schema":{"type":"string","description":"Required for Monero balance check (private view key hex)"}}],"responses":{"200":{"description":"Balance for native token"}}}},"/v1/wallet/send":{"post":{"summary":"Sign and broadcast transaction","description":"For Monero: provide chain, from (primary address), to, amount, view_key, spend_key. For other chains: chain, to, amount, private_key, token (optional).","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["chain","to","amount"],"properties":{"chain":{"type":"string"},"to":{"type":"string"},"amount":{"type":"string"},"private_key":{"type":"string","description":"Private key for EVM/Solana/Tron"},"token":{"type":"string","description":"Token contract address for ERC-20/TRC-20"},"from":{"type":"string","description":"Monero: your primary XMR address"},"view_key":{"type":"string","description":"Monero: private view key"},"spend_key":{"type":"string","description":"Monero: private spend key"}}}}}},"responses":{"200":{"description":"Transaction hash"}}}},"/v1/wallet/swap/quote":{"get":{"summary":"Get cross-chain swap quote","description":"Use token contract addresses (e.g. 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 for Base USDC)","parameters":[{"name":"from_chain","in":"query","required":true,"schema":{"type":"string"}},{"name":"to_chain","in":"query","required":true,"schema":{"type":"string"}},{"name":"from_token","in":"query","required":true,"schema":{"type":"string"}},{"name":"to_token","in":"query","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","required":true,"schema":{"type":"number"}}],"responses":{"200":{"description":"Quote with fee breakdown"}}}},"/v1/wallet/swap":{"post":{"summary":"Execute cross-chain swap","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["from_chain","to_chain","from_token","to_token","amount","to_address"],"properties":{"from_chain":{"type":"string"},"to_chain":{"type":"string"},"from_token":{"type":"string"},"to_token":{"type":"string"},"amount":{"type":"number"},"to_address":{"type":"string"}}}}}},"responses":{"200":{"description":"Swap order ID"}}}},"/v1/wallet/deposit-address":{"get":{"summary":"Get deposit address info for a chain","description":"Non-custodial: explains BIP32 derivation path. Use your mnemonic to derive the address locally.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":"string","enum":["base","ethereum","solana","bitcoin","tron","monero"],"default":"base"}}],"responses":{"200":{"description":"Derivation path + instructions"}}}},"/v1/wallet/transactions/{address}":{"get":{"summary":"Transaction history for an address","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}},{"name":"chain","in":"query","required":true,"schema":{"type":"string","enum":["bitcoin","solana","base","ethereum"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Recent transactions"}}}},"/v1/wallet/swap/status/{orderId}":{"get":{"summary":"Check swap order status","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Order status from Wagyu"}}}},"/v1/wallet/chains":{"get":{"summary":"List supported chains","security":[],"responses":{"200":{"description":"Wallet chains + swap chains"}}}},"/v1/gossip":{"get":{"summary":"Passive income info + live agent count","security":[],"responses":{"200":{"description":"Referral program info"}}}},"/v1/referral/code":{"get":{"summary":"Get referral code","responses":{"200":{"description":"Your referral code + commission info (3 levels)"}}}},"/v1/referral/stats":{"get":{"summary":"Referral earnings (3 levels)","responses":{"200":{"description":"Total earned, withdrawn, available"}}}},"/v1/referral/withdraw":{"post":{"summary":"Withdraw referral earnings","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string"},"chain":{"type":"string","default":"base"}}}}}},"responses":{"200":{"description":"Withdrawal initiated"}}}}},"_info":{"service":"public-wallet","docs":"https://wallet.purpleflea.com/llms.txt","referral":"GET /v1/gossip for passive income info","version":"1.0.0"}}