REFUND. one function, refund(), retrieves
your BNB. once a vault hits REFUND, it cannot leave. there is no path back to
OPEN, CLOSED, or LAUNCHED.
this is the strongest safety property the platform has. you should understand
how it works before you deposit serious money.
the three refund triggers
1. under-subscribed
if the close window expires (block.timestamp >= closeTimestamp) and the
vault total is below the tier’s presaleCap, anyone can call:
2. bundle failed
if the bundle bot triesexecuteBundle() three times and each attempt
reverts (e.g. PCS revert, FLAP revert, network issue), the bot calls:
state == CLOSED. once in REFUND, the bot can never go back.
3. admin emergency stop
the platform owner (an EOA controlled by waifu.fun) can call:state != LAUNCHED. the owner cannot interrupt an already-
launched token. this kill switch exists for unforeseen issues during the
OPEN or CLOSED window.
what the owner cannot do:
- they cannot drain BNB
- they cannot mint tokens
- they cannot change tier math
- they cannot interfere with claim or refund once enabled
the refund function
once any of the above triggers fires, the vault is inREFUND. every
depositor calls refund() independently:
- idempotent. calling
refund()twice from the same address reverts withNoDepositon the second call. clean exit. - CEI. state is cleared before the BNB transfer, so reentrancy from a malicious receive function cannot drain the contract.
- nonReentrant. belt and suspenders. the modifier blocks reentry even if CEI ordering somehow fails.
- pro-rata bonus. the bonus pool (if any) is split proportional to your share of the principal.
what refund returns
- your full principal, exactly what you deposited
- your share of the bonus pool, if there is one (most launches have no bonus pool)
what about the platform’s creation fee
the creation fee is paid by the creator atcreateLaunch() time, out of
their own wallet. it never enters the vault. refunds are unaffected.
comparing to “rug refund”
on most launchpads, “refund” depends on the team’s promise to send BNB back manually. on waifu.fun, refund is enforced by the contract. the platform cannot prevent it. the creator cannot prevent it. the vault is the source of truth and it is permissionless. the one weakness: the admin emergency-stop is centralized. the platform owner can flip ANY non-LAUNCHED vault to REFUND. they cannot drain BNB, but they can force an exit. the assumption is the platform uses this only in genuine emergencies.quick sanity checks
before you deposit:- verify the contract address on bscscan. compare to what the UI says.
- check the close timestamp. it should be a reasonable time in the future, not a year from now.
- check the tier. the cap and graduation parameters should match what the project announced.
- read the source. the contracts are open. you can read
LaunchVault.solyourself.

