Find me money (wallet opportunities)
find_money
HEADLINE TOOL. "Give me your wallet address and I'll find you money." Scans one wallet (address, ENS, Basename or SNS) and returns RANKED actions with estimated $ values: unclaimed rewards (Merkl), forgotten money in old contracts (PoWH3D/P3D dividends, Fomo3D vaults, EtherDelta balances, Liquity surplus collateral, and ETH left in 170 confirmed LegacyETH registry contracts (27 EtherDelta-style DEXes, Ethen (balances + withdrawEther), 17 Fomo3D forks, 49 PoWH3D/Hourglass clones (dividends via withdraw()), 8 old ETH wrappers (old WETH, Maker WETH, WETH10, Neufund EtherTokens, Bancor, Celer, Veil), 2 Ethfinex WrapperLockEth (balanceOf + withdraw), 5 NFT-market pull payments, 38 ICO/presale refunds, 4 burn-token redemptions: DigixDAO, Delphi, Quantfury, Aave v1 aETH, and 19 claims with no amount view (HONG refund, presale pools, Foreground, DigiPulse, dividend clones) whose amount comes from a simulated claim at the pinned block), each with an unsigned, allowlist-verified claim tx (two-step redemptions build the exact-amount approval first, then the claim); other listed legacy contracts are reported as not checked yet), lending positions and accrued rewards (Aave v2/v3, Compound v2/v3, Venus) with at-risk health factors, idle stablecoins that could earn yield, dust to consolidate (batch swap link), high-risk tokens to exit, risky approvals to revoke (revokeTx), cheaper-gas windows, Tron voting rewards/expired unfreezes and Solana rent locked in empty token accounts, plus vault shares (ERC-4626/Yearn redeem), uncollected Uniswap v3 fees, unwrapped WETH/WBNB/WPOL/WAVAX, finalized Lido withdrawals, Safes you own, and deactivated Solana stake accounts. Coverage: Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche, Linea and Scroll; 12 more EVM chains (zkSync, Gnosis, Mantle, Celo, Blast, Berachain, Sonic, Unichain, Fantom, Monad, Katana and HyperEVM: native, listed tokens, known-spender approvals); ETH forks ETC and ETHW; Solana; Tron; Bitcoin; Bitcoin forks and same-key coins BCH, BTG, LTC, DOGE and FTC; old coins DASH, DGB, RVN, VTC, VIA, QTUM, MONA, BSV, GRS, PPC, NVC, CLAM, RDD, BLK, Zcash transparent (t1), TRC, AUR, XPM and QRK, plus balances for NMC, POT, MEC and ANC; and balances on XRP, XLM, ALGO, ATOM (Cosmos Hub), DOT, TON, ADA and Signum. For Bitcoin-family coins it builds an unsigned sweep to an address you choose, which you sign offline in the coin's own wallet; old-coin sweeps are offered only after a Rust transaction library compiled to WebAssembly has built and verified them and an independent second decode agrees. Monero addresses are recognised but not checked. Liquidity/Pendle exits carry live-quoted minimum outputs and a 20-minute deadline, plus a note to submit through a private RPC. Every item has a prefilled swapUrl and an unguessable shortUrl, and recoverable items carry 'steps': step 1 a permanent swapchan.com/recover page where the user signs the decoded, allowlist-verified recovery tx in their own wallet, step 2 a swap to USDC. 'swapAll' is one batch link for everything. Always show the steps in order. Agent-first: each recoverable item carries a machine-readable 'recovery' package so you can verify and act on your own without our UI: contract (chain, address, explorer, verified-source link), detection evidence (each read call, args, block, raw return), interface (ABI fragments for the reads and the recovery function), value (estUsd + pricing source), recoveryTx (exact unsigned to/data/value, verified to pay only the owner) and swapUrl. Re-run the reads yourself to check. Trustless: SwapChan never signs, never holds keys or funds, and cannot move money; it only builds unsigned transactions the user's own wallet signs. Free: SwapChan earns only its small swap fee if the user swaps there. Estimates are labeled (exact / estimate / protected): never present 'protected' value or APY estimates as guaranteed money. Known burn/dead addresses (0x…dEaD, the zero address, the Solana incinerator, the Tron black hole, the Bitcoin eater address) return no items, totalEstUsd 0 and burnAddress:true, because nothing sent there can be recovered. Example prompt: "Here's my wallet 0x…, find me money." Result includes `display` markdown with chan images: show it to the user. Each claim step carries 'call' (contract, contractExplorerUrl, function, signature, 4-byte selector, decoded args, plain): show it to the user before they sign. Results are cached for 3 minutes: every result carries asOf (ISO time the scan started; a cached result keeps its original time), block (Ethereum block number at scan start, EVM addresses only, else null) and cached (true when served from cache). Pass fresh=true to re-scan now; it is limited to once per 20 s per address and 3 per minute per client (plus a small global cap); a second fresh request while a fresh scan for that address is still running gets that scan result, and when limited you get the cached result with freshRefused:"rate-limited" and retryAfterSeconds. When partial is true (incompleteSources = how many sources timed out or could not be fully read, listed in notChecked), the totals are a lower bound: tell the user and re-run with fresh=true in about 20 s. How to combine this with the other tools: swapchan_playbook (workflows: find-money, best-swap, rebalance, revoke-approvals, bridge-stuck, token-safety, recover-old-wallet).
Schema valid · SHA-256 bbf0b5d113b9…
View input schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 3,
"maxLength": 100,
"description": "Wallet address (EVM 0x…, Solana, Tron T…) or a name (vitalik.eth, jesse.base.eth, toly.sol)"
},
"fresh": {
"description": "Skip the 3-minute cache and re-scan this address now. Rate-limited (once per 20 s per address, 3 per minute per client); when limited the cached result comes back with freshRefused and retryAfterSeconds.",
"type": "boolean"
}
},
"required": [
"address"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}