Invest in bonds or the credit vault

Evaluate credit evidence, fund a raise, and understand bond versus vault exits.

Monad testnet; not audited. Revenue, repayment and exit liquidity are uncertain. Use the selected deployment, not historical judged addresses with current ABIs.

Read the evidence and terms

Read credit profiles: onchainProfile gives booked history and recorded bond outcomes; attestedProfile gives a separately trusted assessment. Check complete, bondsCreated, signer and expiry. Attributed revenue excludes detected related payers/unclassified transfers according to indexer policy. A proven payer with no detected funding link is not necessarily an independent customer.

Read BondrailBond.terms(), phase(), releasedPrincipal(), undrawnPrincipal(), pool() and effectiveRevenueCap(). First release is 25% or 50%, but more can leave after the milestone. Revenue share can step up through checkTrigger; revenueBps() is the current share. A missed cap at maturity is a loss even without a covenant default. SDK impliedYield projects trailing revenue; it is not a promise.

Direct bond investment

Approve the bond for its asset, then call deposit(amount). It requires Funding, a future funding deadline, remaining raise capacity and factory.depositAllowed(bond). Claims mint 1:1 and cannot transfer during Funding. Before activation and before the deadline, withdraw(amount, to) burns claims for escrowed assets 1:1, reopening the raise gap. It does not require a healthy source.

After the deadline, account.cancelFunding(bond) can cancel a still-Funding bond, then holders use bond.refund(amount, to). After activation, redeem(tokens, to) burns claims for their share of the current pool; this gives up all future revenue and recoveries on those claims. Active or Closing redemption cannot burn the last outstanding claim. redeem does not finalize settlement: call finalizeSettlement() after settleAfter to make a Watched bond Closed. A nonzero pool payout that rounds to zero reverts; when the pool itself is zero, redeeming can burn claims for no assets. Listed claims can trade on Kuru if a market and liquidity exist.

Vault deposits and withdrawals

The credit vault pools the asset across curator-selected Funding bonds. The /vault page displays prices and holdings; it is read-only. Use the contract or your integration for the following ERC-4626 operations; no vault transaction UI is implied.

IntentQuoteTransaction
Deposit a chosen asset amountpreviewDeposit(assets)deposit(assets, receiver) after asset approval
Mint a chosen share amountpreviewMint(shares)mint(shares, receiver) after asset approval
Receive a chosen asset amountpreviewWithdraw(assets) and maxWithdraw(owner)withdraw(assets, receiver, owner)
Redeem a chosen share amountpreviewRedeem(shares) and maxRedeem(owner)redeem(shares, receiver, owner)

Entries use entryAssets(); exits and convertToAssets / convertToShares use totalAssets() (exit NAV). Use the entry previews for deposits/mints, especially during impairments. Withdrawals by a different caller need a share allowance. A preview is not a liquidity reservation or slippage limit; simulate before submission and protect price bounds in your integration where required.

Deposits remain open during Active/Closing bonds. Both prices exclude unvested profit, recognized over seven days after observation; new profit can extend the remainder's vesting. Exit values apply trigger and default/maturity write-downs. Final settlement losses affect both prices.

maxWithdraw / maxRedeem cap exits at idle cash. The vault does not sell or redeem active bonds to fund your exit and has no withdrawal queue. Early exits can consume all cash, including the allocation buffer. The curator only collects Cancelled/Closed positions back into the vault; its ability to do so and the issuers' performance affect later liquidity. Review the vault's full risk and power limits.

On this page