Refund Mechanism and Security
Refund Mechanism
Funds deposited into Bondi's smart contracts remain non-custodial until the target amount across all chains is reached. If the target is not met by the end of the funding period, Bondi calls the public refundInvestors(uint256 amountOfInvestorsToRefund_) function, no individual action is required. This function is permissionless and can be called by anyone if needed. A manual withdraw() function also exists and is available to individual investors should they prefer to act independently.
Both refund mechanisms follow the same principle: FpUSD tokens are burned before returning the underlying stablecoins. This ensures the receipt system maintains proper accounting and prevents any double-spending scenarios. For detailed information on how FpUSD burning works, see the FpUSD Token Mechanics section.
How to Call refundInvestors
refundInvestors is a public function, anyone can call it, and Bondi's relayer does so automatically for all investors when a funding round fails. The steps below are for those who wish to call it directly:
1. Retrieve Total Investor Count
Use the totalInvestorsAmount() function to retrieve the total number of investors. This function can be called by anyone and returns the total count of investors in the funding phase.
Example:
uint256 totalInvestors = fundingContract.totalInvestorsAmount();2. Execute Refund Function
Call the refundInvestors() function, providing the total number of investors as the parameter. The function will burn each investor's FpUSD tokens before returning their stablecoin deposits.
Example:
fundingContract.refundInvestors(totalInvestors);User funds are held in a non-custodial manner until the target amount is reached. The refund process maintains the integrity of the receipt system by ensuring FpUSD tokens are properly burned before any funds are returned.
Regulatory Compliance and Security
The issuance process maintains integration with traditional financial infrastructure through:
- Regulated custodian partnership for secure bond acquisition under the oversight of Ensuro Re Ltd.
- Automated compliance monitoring throughout the funding process
- Non-custodial smart contracts audited for security
- Transparent onchain documentation via ERC‑1643
For comprehensive security details and audit results, see our Security Audit Report.