BondrailAccount

The business's revenue address, payment entry point and booked credit history.

Monad testnet; not audited. factory.createAccount(asset) creates an account for one issuer and one asset. An issuer may create multiple accounts; the protocol does not enforce one account per business. Each account has at most one attached bond, and its bonds fund, repay and take stake in that asset.

Payment routes

FunctionCallerBehavior
collect(payer, gross, fee)Bound Native projectPulls gross from payer, books fee, sends net to project; payer approves account
collectWithPermit(...)Bound Native projectSame pull with an EIP-2612 permit
settleOut(payer, gross, fee)Bound Native projectPulls gross from project, pays net to recipient and books fee
settle(from, value, validAfter, validBefore, nonce, v, r, s)Any relayerVerifies token EIP-3009 authorization through the account, emits Settled, books/splits the full payment
sweep()AnyoneBooks uncredited asset balance from plain transfers with no proven on-chain payer

BondrailEarner fixes its account at deployment. bindProject checks that the project points back to this account. Binding alone is not reviewer approval. Native routes authenticate callers and enforce the Active bond's minFeeBps; settle treats the whole payment as revenue and has no Native fee floor.

Modes and history

With no Active bond (including Funding), _book credits 100% of revenue to issuerCredit. With an Active bond it splits revenueBps() to the bond, limited by remainingRevenueCap(), using a rounding carry. The issuer calls withdraw(to, amount) for its available booked credit.

Getters include cumulativeRevenue, cumulativeVolume, paymentCount, collectedCount, uniquePayers, firstRevenueAt, lastRevenueAt and revenueByDay(day). Only nonzero booked revenue advances payment history; zero-fee Native activity can increase volume without adding a revenue payment. Plain transfers count on the day swept and do not increase proven-payer or volume counters.

These counters include self-payments. A pulled/authorized payer is not proof of an independent customer; settleOut identifies the payment recipient. The credit profile keeps these facts distinct from indexer attribution and attested underwriting.

On this page