Payments & payouts

How providers earn credits now, and how USDC-on-Base payout ships at public beta.
Every request that reaches your Mac produces credits. Credits accumulate on the billing ledger at 90% provider share. USDC-on-Base payout is not live in pre-beta. It ships when Malibu enters public beta. Until then, balances are visible in the app; they do not leave the ledger as USDC.

What you earn per request

For every billed request the coordinator computes:
Default rate card: Default provider share: 0.90 (90%). The operator can override this globally or per-model. Canonical today-vs-launch split: Economics. 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

  • Today (pre-beta): credits accrue. No USDC leaves the ledger.
  • At public beta: USDC on Base, weekly sweep (Monday 00:00 UTC design), minimum payout threshold 500,000 credits. See Network overview → Metering & billing.
  • Below the threshold, credits roll to the next window.

Settlement-capable traffic and the receipt deadline

For settlement-capable traffic (v0.3+ signed receipts), a provider receipt must arrive before the coordinator’s pending_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:
Response shape:
Rate limit: 60 requests per minute per provider. Optional day-range filter: ?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. caffeinate prevents 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.
Buyer-facing docs state this plainly: “provider availability can change as Macs sleep, wake, or disconnect from the network.” Availability is best-effort — the mechanisms above are what that sentence describes.