90/10 revenue share: how creators get paid for marketplace blocks

The Block Marketplace ships with the same default rev share Apple App Store and Stripe Marketplace use: 90% to the creator, 10% to the platform. The split is captured on the listing at submit time, so changing the platform default later doesn't retroactively shift existing installs.

Where the split lives:
Every approved listing carries a revenue field — { creatorBps: 9000, platformBps: 1000 } — in basis points (10,000 = 100%). The submit cloud function sets these defaults; reviewers may negotiate alternatives on a per-listing basis.

One-time installs:
When an org installs a paid block, Stripe Embedded Checkout collects the full amount on the platform's Stripe account. The webhook onMarketplaceInstallPaid then fires a Stripe Transfer to the creator's Connect account for 90% of amount_received, with idempotency key block_install_creator_{paymentIntentId} so retries can't duplicate. The remaining 10% stays on the platform account.

Subscription installs:
Stripe handles the split automatically via application_fee_percent on the subscription. Platform keeps platformBps/100 (default 10%); the rest flows directly to the creator's Connect account on every invoice. No webhook needed for the split — Stripe runs it.

Required setup before paid installs work:
The creator (owning org) must complete Stripe Connect onboarding via Account → Integrations → Stripe Connect. Without an ownerStripeAccountId on the listing, the install function refuses to start checkout for any paid block.

Reading payouts:
The owning org's Stripe Express dashboard shows every transfer. Each transfer's metadata includes blockId, orgId (the installing org), and type='marketplace_block_install_creator_share' so you can reconcile against your listing's installs.

Refunds:
Out of scope for v1 — refund handling, chargebacks, and clawbacks are queued for v3. For v1, refunds are handled manually via support: refund the original charge from Stripe, then mark the install 'uninstalled' to suspend the block on the installing org.