Payments & payouts
How providers earn credits and get paid in USDC on Base.Every request that reaches your Mac produces credits. Credits accumulate through the week; each Monday 00:00 UTC the coordinator sweeps unsettled credits and marks providers over the payout threshold
ready. Payouts settle in USDC on Base.
What you earn per request
For every billed request the coordinator computes:
Default provider share: 0.90 (90%). The operator can override this globally or per-model.
Both
grossCredits and providerCredits use banker’s rounding — ties round to the nearest even quotient, eliminating systematic bias across large volumes of small requests.
Worked example
1,000 prompt tokens + 500 completion tokens at default rates and 90% provider share:When you get paid
- Settlement cadence: every 7 days, at Monday 00:00 UTC.
- Minimum payout threshold: 500,000 credits accumulated. Below the threshold, credits roll to the next window.
- Payout rail: USDC on Base. See Network overview → Metering & billing for the settlement path.
ready for payout.
Settlement-capable traffic and the receipt deadline
For settlement-capable traffic (v0.3+ signed receipts), a provider receipt must arrive before the coordinator’spending_deadline_seconds window closes. Receipts arriving after the deadline are non-settling and non-recoverable — they cannot create provider credit, payout readiness, or a new buyer debit.
Missing, malformed, or unverifiable receipts settle as FaultBreakerQualifying with zero provider credits. Details: Operations → Verified model settlement.
Checking your balance
Balance, per-model breakdown, and last payout are visible in the Malibu app. The underlying endpoint:?from=YYYY-MM-DD&to=YYYY-MM-DD (max 31 days).
Provisional vs pinned
Newly installed providers join at the provisional tier — lower routing weight, capped pool size. The operator promotes providers to pinned after observed pool stability, uptime, and review. Pinned providers get higher routing priority. Self-serve promotion is on the roadmap.Why your Mac might drop mid-window
- Lid-close sleep drops the WebSocket.
caffeinateprevents display and user-idle sleep during a run but not lid-close sleep. The binary reconnects automatically on wake; in-flight requests during the sleep are lost. - Heartbeat reaping. If no frame arrives within 90 seconds (default
pool.heartbeat_miss_threshold_s) the coordinator closes the connection. Streaming inference chunks count as heartbeat activity. - Warmup gate. After reconnect the coordinator holds the provider in a warmup state for up to 90 seconds while verifying it can handle requests. Requests during warmup route to other pool members.