The Issuance Process
Investor Onboarding and Participation
1. Identity Verification: Complete KYC procedures through Bondi's user dashboard to gain access to funding opportunities.
2. Wallet Whitelisting: Verified wallets receive permanent authorization for current and future funding phase participation. This authorization remains active until explicitly revoked by Bondi for compliance or security reasons.
3. Chain Selection: Choose your preferred blockchain for participation.
4. Investment Selection: Choose from available funding opportunities with detailed risk assessments and projected returns.
5. Capital Commitment: Deposit stablecoins into selected funding contracts within the specified timeframe.
6. Loyalty Rewards: Early primary market participants receive NFT rewards based on their investment amount.
7. Cross-Chain Processing: Your investment is mirrored across all supported chains for unified tracking.
8. Progress Monitoring: Track funding progress through real-time dashboard updates.
9. Target Reached: Once the funding target is reached, the round moves into the purchase phase below (fund extraction, bond purchase, emission, and distribution).
From Target Reached to Bond Token Distribution
Once a funding round reaches its target, Bond Tokens are created through a deliberate multi-step process:
10. Fund Extraction
The platform calls Handler.extractFunds(). Fees are calculated from the raised capital and sent to Bondi and its configured distribution partners. The remaining capital is forwarded to a single immutable extraction destination configured at deployment: Circle Mint's institutional off-ramp path, then onward to Ensuro's regulated custodian account. This transfer route is hardcoded in the contract, so investor funds cannot be redirected to arbitrary addresses. Extraction and off-ramping typically complete within 1-3 business days.
11. Bond Emission
After the broker executes the purchase in traditional markets (typically 1–2 business days), the platform calls Handler.emitBonds(maturityDate, cleanPrice, accruedInterest). The Handler computes the dirty price (clean + accrued) and mints Bond Token supply against the net, post-fee capital. Bond Tokens are minted directly to the Distribution contract. If the underlying bond issuer later extends legal maturity in traditional markets before principal is registered onchain, the Admin Safe mirrors the new date onchain via Handler.extendMaturity(newDate): see Maturity date updates.
12. Incentive Finalization (if applicable)
Some rounds offer incentive tokens to primary market participants. For such rounds, the Distribution Safe deposits incentive tokens via depositIncentiveForRound(roundId, amount), then the orchestrator backend finalizes the Merkle root via finalizeIncentiveForRound(roundId, root, blockNumber). This must complete before distribution can begin. For the incentive
snapshot block, Merkle root construction, and claim proof format, see Merkle Snapshots & Claims.
13. Start Distribution
The platform calls Handler.startDistribution(), which invokes Distribution.beginDistributionForRound(roundId, initialBondSupply) and locks the FpUSD → Bond Token exchange rate for the round.
14. Bond Token Distribution
Bondi's relayer calls claimBondsForUser(roundId, user) on behalf of every participant, exchanging their FpUSD receipts for their proportional Bond Token allocation. No action is ever required, Bondi ensures every participant receives their Bond Tokens automatically. As a fallback, holders can also self-claim at any time via claimBonds(roundId).
15. Emission Round Finalization
The Admin Safe calls finalizeEmissionRound(roundId, [blacklistedAddresses]) to close the round. The optional blacklistedAddresses array covers investors who funded with valid KYC but were revoked under compliance policy before claiming and still hold a non-zero round FpUSD balance; each entry must already be blacklisted on the Bond Token (see KYC revocation and blacklisting), or the call reverts. For each listed address, Bondi runs a supply-neutral compliance relocation (the round FpUSD is extinguished and the matching Bond Token allocation moves into Admin Safe custody so total supply stays flat for onchain accounting. Any funding refund is handled off-chain on a case-by-case basis, per compliance policy. After relocations, any residual Bond Token dust from integer rounding in the Distribution contract is burned. The round is then marked finalized onchain) coupon and principal distribution can proceed for this emission, and the same Bond Token series is eligible for its next funding round.