For projects, developers and support teams
Tokens stuck in my contract
For developers and support teams: a user sent tokens to a contract you operate. The developer page reads the contract, resolves its controller and builds the hand-over call.
Free check · read-only · no wallet needed to check
Where did the funds go?
Paste the address the funds were sent to, or the transaction hash if that is easier. Your browser reads the public chain live and tells you what is there and who is able to move it.
Not sure which? Open the transfer in your wallet or exchange history and copy either the recipient address or the transaction hash.
Check the addressWhat the checker does here
Paste the contract address. The checker reads the stranded balances, the bytecode, the owner and its kind (EOA, Safe, timelock, proxy admin), the proxy status and, with a verified source, whether the contract exposes a rescue function.
When a recognised rescue function exists, the developer page decodes the call, produces a Safe Transaction Builder file and cast commands, and simulates the call so the exact balance changes are asserted before anyone signs. When the contract is upgradeable, it states that the upgrade authority is able to add a rescue function and then sweep, and shows a reference pattern.
When none of that applies, it says so: no path found among what was checked, with the list of reads that answered. It never claims a path it did not find, and it states that nothing can be done only when every read answered.
Open the developer pageQuestions
- Our contract has no sweep function. Can the tokens still be moved?
- If the contract is upgradeable and its upgrade authority is live, that authority is able to add a rescue function and then sweep. If it is not upgradeable and the verified ABI has no fund-moving function, no path exists, and the page states that only when all four conditions were answered.
- Does the tool execute anything on our behalf?
- No. It builds and simulates the call; the controller signs and submits it from its own wallet or Safe. Nothing is sent without the controller.