Issuance: Primary Market Funding
Issuance is the first stage of the Bond Token lifecycle, where new Bond Tokens are created through a Primary Market funding process.
Overview
Bondi's Primary Market is the onchain issuance mechanism through which new Bond Tokens are created. Investors deposit stablecoins into audited, non-custodial funding contracts (see the Security Audit Report), receive FpUSD receipts as a synthetic deposit record, and —upon successful funding— Bond Tokens are minted and distributed proportionally.
Bondi is designed to enable multichain offerings using its multichain infrastructure. The infrastructure aggregates funds raised across multiple chains toward a single, global funding target without requiring users to bridge assets. Upon successful funding, Bond Tokens are minted and distributed natively across all participating chains.
Bondi supports multiple funding rounds for the same bond series: a subsequent round reuses the existing Bond Token while deploying its own Funding and Handler contracts and sharing the same Distribution.
Fee parameters (serviceFeeBps, mintingCommissionBps, couponCommissionBps, and principalCommissionBps) are set at deployment time and are fully immutable — they cannot be changed after the contracts are deployed. At least one fee recipient address is always required. See Fees for rates and how revenue is shared with Bondi's distribution partners.
For details of early‑participant rewards during the funding phase, see our blog post.
Primary Market Flow Diagram
Funding Phase
Receipt-Based Investment System
Bondi keeps track of the investment process through the FpUSD receipt system, achieving O(1) distribution complexity and efficient scaling to thousands of investors. When investors deposit stablecoins, they immediately receive FpUSD receipts at a 1:1 ratio. These receipts serve as proof of participation and entitle holders to claim Bond Tokens once the funding target is reached. The receipt system enables instant settlement, reduces gas costs, and provides a clean separation between investment tracking and bond token distribution.
For comprehensive details on how FpUSD tokens work, including minting during investment, burning during claims, refunds upon failed funding, and the exchange rate system, see the Funding Participation USD (FpUSD) documentation. For a worked example of funding math, decimals, and distribution exchange rate, see the FpUSD Real‑World Example.
Multichain Architecture
Bondi's multichain infrastructure enables global funding rounds across multiple blockchain networks without traditional bridge risks. Users can participate from their preferred blockchain while contributing to unified investment pools. Deposits on any supported network are coordinated into a single global funding target.
• Real-time Monitoring: Automated systems monitor funding progress across all supported chains
• Cross-Chain Reconciliation: Investments are reconciled across chains every 15 seconds
• Unified Accounting: All investments contribute to the same funding pool regardless of originating chain
This architecture provides several key benefits: users avoid bridging fees and delays, the platform can aggregate liquidity from multiple ecosystems, and Bondi maintains full control over the investment process without relying on third‑party bridge protocols. For current network support and deployed contract addresses, see Proof of Reserve & Deployed Addresses.
Core Funding Parameters
Funding Phase is governed by specific parameters designed to ensure successful bond acquisition while maintaining fairness and accessibility for all participants.
Target Funding Amount
The total capital required for each bond offering, representing the amount needed to purchase the underlying bonds in traditional markets. Bondi's inaugural funding phase establishes a $200,000 target, sized to balance accessibility with meaningful market impact.
Funding Period Duration
A predetermined timeframe within which the target funding must be achieved to proceed with bond acquisition. The inaugural offering features a 30-day funding window, providing sufficient time for community participation while maintaining momentum and urgency.
Whale Participant Threshold
A minimum contribution level that qualifies investors for enhanced benefits and recognition within the platform ecosystem. Contributors meeting the $5,000 whale threshold received the Whale NFT in the inaugural offering, and this amount will be increasing as Bond Tokens become established in the DeFi ecosystem.
Minimum Investment Requirement
The smallest permissible investment amount, designed to maximize accessibility while maintaining operational efficiency. The $100 minimum investment ensures that retail investors can participate meaningfully in previously inaccessible emerging market bonds.
Pricing Mechanisms
Clean vs. Dirty Price Execution
Bond acquisitions are executed at the dirty price, which incorporates both the clean price and accrued interest from the last coupon payment to the settlement date. This market-standard approach ensures accurate pricing while the target amount calculation incorporates:
• Base bond cost (clean price × quantity)
• Accrued interest buffer collected upfront
• Platform fees deducted from raised capital at extraction (service fee + Bondi commission, configured onchain in basis points)
Any excess accrued interest beyond actual requirements is distributed to token holders with their first coupon payment.
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.
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.
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.