Only the beneficiary — the address that holds the credited balance — can withdraw. The platform does not run a daily “payout script” that moves family money. This page explains the withdraw functions and the operational model.
withdrawBNB
withdrawBNB(address payable to, uint256 amount) may be called by msg.sender only against bnbBalanceOf[msg.sender]. Insufficient balance reverts. Funds are sent via low-level call after the balance is reduced.
withdrawUSDT
withdrawUSDT(address to, uint256 amount) follows the same pattern for the USDT mapping and uses safeTransfer to the destination.
Who clicks withdraw
In the beneficiary dashboard, the connected wallet must be the same address that was set as the page beneficiary. The UI reads on-chain balances with bnbBalanceOf / usdtBalanceOf and proposes a full or partial withdrawal to that same wallet (or another address the beneficiary chooses as to).
Emergency path is not the normal path
An owner-only function exists for rare stuck native BNB situations. It is not a substitute for beneficiary withdrawals and should not be part of routine operations.