Funding Participation USD (FpUSD): Receipt-Based Distribution
FpUSD is a receipt token you receive when you contribute to a funding round. It records how much you put in so your share of the round is clear and verifiable. Later, you use that receipt to claim your Bond Tokens.
Bondi introduces a receipt-based distribution system that eliminates the scalability constraints of per-investor tracking. Through the FpUSD tokens, the platform achieves O(1) complexity for Bond Token distribution, enabling efficient distribution to thousands of participants.
FpUSD Receipt Token
The system centers around FpUSD (Funding Participation USD), a specialized receipt token that serves as proof of investment participation. When a funding round succeeds, FpUSD is exchanged for Bond Tokens based on the round's exchange rate and then burned. If a round fails, refunds are automated via refundInvestors — no individual action required. FpUSD is burned as part of the refund process. See the Refund Mechanism for details.
Technical Specifications:
• Token Standard: ERC20 with transfer restrictions
• Decimal Precision: 18 decimals (standardized DeFi precision)
• Exchange Rate: 1 USD stablecoin = 1 FpUSD, scaled to 18 decimals using scalingFactor = 10^(18 − stableDecimals) (e.g. 10¹² for USDC with 6 decimals)
• Non‑Transferable: Required for regulatory compliance; non‑KYC users cannot participate in primary distributions. See Compliance and Verification & Onboarding.
• Mintable/Burnable: Created during investment, destroyed during Bond Token claims
Exchange Rate System
Dynamic Rate Calculation
The exchange rate determines how many Bond Tokens investors receive for their FpUSD receipts:
Exchange Rate Formula:
Exchange Rate = (Total Bond Tokens × 10¹⁸) ÷ Total FpUSD SupplyBond Token Calculation:
Bond Tokens = (FpUSD Balance × Exchange Rate) ÷ 10¹⁸This system ensures that all FpUSD holders receive proportional shares of the total Bond Token supply, regardless of when they invested or how many participants are involved.
For bonds with multiple funding rounds, each emission round has its own exchange rate (rounds[roundId].exchangeRate), based on the dirty purchase price of the bond for that round. Each investor's FpUSD corresponds to a specific round and is exchanged at that round's rate when claiming Bond Tokens.
FpUSD Token Mechanics
Minting During Investment
When investors deposit USD stablecoin into funding contracts, they receive FpUSD tokens as receipts:
Minting Process:
- Investor deposits USD stablecoin (native decimals — e.g. 6 for USD stablecoin) into Funding contract
- System validates KYC status and investment parameters
- FpUSD tokens minted to investor using the stablecoin's scaling factor
- USD stablecoin remains in Funding contract until extraction
Scaling Formula:
FpUSD Amount = USD Deposit × scalingFactor, where scalingFactor = 10^(18 − stableDecimals)
This normalizes any supported stablecoin to FpUSD's 18 decimals while maintaining 1:1 economic equivalence. For USDC (6 decimals) the factor is 10¹²; for an 18-decimal stablecoin it is 1.
Burning During Claims
FpUSD tokens are burned when investors claim Bond Tokens or when funds are returned in the event of a failed funding:
Bond Token Claiming:
• Investor's entire FpUSD balance is burned
• Bond Tokens received based on exchange rate calculation
• Single transaction completes the claim process
• No residual FpUSD remains after successful claiming
Refund Process:
• Investor's FpUSD balance is burned proportionally
• USD stablecoin returned from Funding contract
• Scaling reversed (FpUSD amount ÷ scalingFactor = USD stablecoin amount)
• Available only if the round fails; typically executed via refundInvestors (no individual action required)
Real-World Example
Scenario: $1,000,000 funding round — USD stablecoin (6 decimals, scalingFactor = 10¹²), 1% minting fee (0.5% service fee + 0.5% Bondi commission = 100 bps), $80 dirty price per Bond Token.
Step 1 — FpUSD Minting (at investment time):
• Total USD stablecoin raised: 1,000,000 × 10⁶ (6 decimals)
• Total FpUSD minted: 1,000,000 × 10⁶ × 10¹² = 1,000,000 × 10¹⁸ (18 decimals)
Step 2 — Fee Deduction at Extraction:
• Minting fee (100 bps): 1,000,000 × 10⁶ × 100 ÷ 10,000 = 10,000 × 10⁶ ($10,000 split among fee receivers)
• Net capital forwarded to bond purchase: 990,000 × 10⁶ ($990,000)
Step 3 — Bond Token Emission:
• Bond Tokens at $80 dirty price: (990,000 × 10⁶) × 10¹⁸ ÷ (80 × 10⁶) = 12,375 × 10¹⁸ (18 decimals)
Exchange Rate Calculation:
• Exchange Rate = (12,375 × 10¹⁸ × 10¹⁸) ÷ (1,000,000 × 10¹⁸)
• Exchange Rate = 0.012375 × 10¹⁸ (18 decimals)
Individual Claim Example ($1,000 investor):
• FpUSD balance: 1,000 × 10⁶ × 10¹² = 1,000 × 10¹⁸ (18 decimals)
• Bond Tokens received = (1,000 × 10¹⁸ × 0.012375 × 10¹⁸) ÷ 10¹⁸ = 12.375 × 10¹⁸
• The 1% fee reduces the Bond Token yield from 12.5 to 12.375 per $1,000 invested — equivalent to paying $80.81 effective dirty price inclusive of fees.
Alternative Approaches: Per-Investor vs Receipt-Based
Token distribution can be implemented through different approaches, each with distinct characteristics:
Per-Investor Tracking:
• Individual claimable amounts calculated and stored onchain
• Complex state management for participants
• Gas costs increase linearly with participant count
Receipt-Based System:
• Exchange rate calculations replace individual tracking
• Constant gas costs regardless of participant count
• Efficient scaling to thousands of participants
Distribution approaches differ in computational complexity and gas efficiency.
Scalability Comparison
Per-Investor Approach:
• O(n) complexity: increasing with participant count
• Individual state storage requirements
• Increasing gas costs for larger participant groups
Receipt-Based Approach:
• O(1) complexity: constant regardless of participants
• Single exchange rate calculation
• Consistent gas costs for any group size
Gas Efficiency Comparison
Distribution Initialization Costs:
| Participant Count | Traditional Approach | Receipt-Based Approach |
|---|---|---|
| 100 investors | ~2,100,000 gas | ~50,000 gas |
| 1,000 investors | ~21,000,000 gas | ~50,000 gas |
| 10,000 investors | Gas limit exceeded | ~50,000 gas |
The receipt-based system maintains constant gas costs while per-investor accounting becomes prohibitively expensive and impossible at scale.
Security and Trust Model
Receipt Integrity
The FpUSD system maintains strict integrity through smart contract enforcement:
Minting Controls:
• Only Funding contract can mint FpUSD tokens
• Minting restricted to verified USD stablecoin deposits
• 1:1 economic backing guaranteed by smart contract logic
Burning Controls:
• Funding contract burns during refunds
• Distribution contract burns during Bond Token claims
• No arbitrary burning or manipulation possible
Transfer Restrictions:
• FpUSD tokens are non‑transferable between users
• Primary distributions are limited to KYC‑verified participants for regulatory compliance; see Compliance and Verification & Onboarding
• Ensures receipts represent actual investment participation
Proportionality Guarantees
Mathematical guarantees ensure fair distribution:
• Conservation Law: Total FpUSD supply exactly matches total USD stablecoin deposits
• Proportional Distribution: Each investor's share equals their FpUSD percentage
• No Dilution: Late investors cannot dilute early participants
• Exact Accounting: No rounding errors or precision loss in calculations
The receipt-based distribution system enables Bondi to support large-scale funding rounds. For information on funding success and failure scenarios, see the Issuance (Primary Market) section.