Agencies
Talent-agency (MCN) layer -recruitment, on-platform splits, platform-funded rebates.
Last updated Thu Jul 16 2026 00:00:00 GMT+0000 (Coordinated Universal Time)
TL;DR -A proposed layer for talent agencies that recruit and coach hosts. The platform pays an agency a rebate on its roster's earnings, and an agency may take a capped (≤20%), fully transparent cut of its hosts' earnings -with both money movements recorded in the ledger so nothing is hidden.
Who this is for -Business: the rebate table and what agencies are (and aren't) promised. Product & Design: the host-facing join/leave flow. Engineering: the entity model, the two money movements, and anti-abuse.
Status: PROPOSED DESIGN -see the Creator Program overview for the shared principles and margin math.
In plain terms
An agency (the industry calls them MCNs or talent agencies) is an outside organization that finds new hosts, trains them, and keeps them streaming. Think of a talent agency for streamers. In return, two kinds of money can flow:
- The rebate -the platform pays the agency a recruiting commission based on how much its whole roster earned. This comes out of platform margin and never touches any host's balance.
- The host share -an agency can also take a cut of its own hosts' earnings, but only if the host explicitly agrees, and only up to a hard 20% ceiling. Every split is shown to the host in plain language and recorded in the ledger, so there are no invisible off-platform deals.
A host can belong to at most one agency at a time. Leaving requires a 30-day notice period, which protects both sides: the agency can't hold a host hostage, and a host can't defect the day before a big gifting event.
Both money movements run through the ledger like everything else.
Entities and relationships
The diagram shows the data shape: an agency has a roster of memberships and a stream of monthly rebates; each user can hold at most one active membership, and each membership stores the agreed share percentage and its lifecycle status.
Rendering diagram…
- One active membership per host, ever. Switching agencies requires termination + the notice period.
- The agency owner is a normal user account; the agency has its own diamond wallet (rebates and shares land there, withdrawable through the standard withdrawal flow under the agency owner's KYC).
- Agencies are created by application, approved in the admin portal (Agencies page -new), and can be suspended there (suspension freezes rebates but never touches hosts' own earnings).
Money movement 1 -the host share (agency-funded by the host)
This is the cut an agency takes from its host -the same thing industry agencies do off-platform for 15–40%, except here it's on the books, capped, and consented to.
Industry agencies take 15–40% of host earnings off-platform, opaquely. We enforce it on-platform, transparently, and capped:
shareBpsis set per membership, 0–2,000 (0–20%) hard cap, fixed in the invite the host explicitly accepts in-app (the accept screen shows the exact percentage in plain language).- Applied at gift-credit time inside the same
$transaction: the host's diamond credit is split -(1 − share)to the host,shareto the agency wallet, both as pending diamonds with the standard 72h hold. - Two ledger rows: the host's
DIAMOND_EARNING(metadata recordsagencyId,shareBps) and the agency'sAGENCY_SHARE. The split is visible in both parties' ledger history. - Tier progress and quota milestones count the host's pre-split earnings -joining an agency never slows a host's tier progression.
- Termination notice: 30 days. Either side can trigger it; membership
enters
NOTICE, the share keeps applying throughendsAt, then the membership terminates automatically. Prevents both hostage contracts and gift-day defections.
Money movement 2 -the rebate (platform-funded)
This is the platform's thank-you to the agency for building a productive roster. It scales in bands with total roster earnings, and it comes entirely from platform margin.
The rebate is the platform's recruiting commission, paid from platform margin -never deducted from hosts. The bigger the roster's monthly earnings, the higher the rebate rate:
| Monthly roster diamonds (settled, pre-split) | Rebate rate |
|---|---|
| ≥ 100,000 (≈ $4k gross gifted) | 5% |
| ≥ 1,000,000 (≈ $40k gross) | 8% |
| ≥ 5,000,000 (≈ $200k gross) | 10% |
- Eligibility floor: at least 5 roster hosts who each met the Regular quota that month. Below the floor: no rebate. This forces agencies to build real rosters, not one whale plus shells.
- Computed by the same monthly job as tier evaluation, credited as
pending diamonds to the agency wallet with an
AGENCY_REBATEledger row (metadata:monthKey, roster size, band, roster micros). - Rebates count only paid-coin, settled diamond earnings -refund clawbacks that land before computation reduce the roster total; ones that land after are deducted from the next month's rebate (carried as a negative adjustment, floored at zero).
What agencies are promised (and not)
To keep expectations clear, here is the exact division of labor: what an agency does for its hosts, and what the platform does in return.
| Agencies provide | Platform provides |
|---|---|
| Recruiting, onboarding, coaching | Rebate per the table above |
| Scheduling / quota accountability | Roster dashboard in admin portal (per-host hours, diamonds, quota status) |
| Optional agency-funded salaries or bonuses to their hosts (their business, off our books) | Join codes + invite flow |
Explicitly not offered: platform-funded host salaries, guaranteed traffic, or paid placement. Agency-purchased "traffic boosts" / fake viewers are grounds for agency termination.
Anti-abuse
The obvious exploit is an agency gifting its own hosts to farm the rebate. The controls below make that a zero-yield move rather than something the platform has to prove intent for.
- Intra-agency gifting is rebate-invisible. Gifts where sender and recipient belong to the same agency credit the host normally but count 0 toward the roster rebate total and 0 toward PK ladder points — removes the self-rebate pump (agency funds gifts to its own hosts to farm the 5–10% rebate; without exclusion this would be a guaranteed-loss cycle for them, but exclusion makes it a zero-yield cycle, which is cheaper than detecting intent).
- Share cap is structural (DB check constraint + DTO validation), not policy -a 40% off-platform side deal can't be enforced by us, but the in-app split can never exceed 20%.
- One roster, real hosts: memberships require the host account to be ≥ 7 days old with a verified device; roster count for the eligibility floor counts only quota-meeting hosts.
- Agency suspension freezes
AGENCY_REBATE/AGENCY_SHAREaccrual from the suspension timestamp; already-settled agency diamonds remain withdrawable (they were earned under the rules).
Host-facing UX (mobile)
From the host's side this is a small, honest surface: see your membership, see the exact cut, and leave whenever you want (the notice period starts on tap). No new money UI is needed because the split already shows up in ledger history.
- Profile → "Agency" section: current membership, share %, notice state, leave button (starts the 30-day notice).
- Join via agency code or invite deep link; the accept sheet shows the share % and notice terms before consent.
- Ledger history already shows the split rows -no new money UI needed.
Related pages
- Creator Program overview -shared principles and the margin ceiling.
- Quotas & Bonuses -the quota that defines a rebate-qualifying host.
- Host Tiers -why splits are taken on pre-split earnings for tier progress.
- PK Battle Economy -how same-agency battles are excluded from ladder points.
- Withdrawals -how an agency wallet cashes out.
- Data Model & Rollout -the
Agency,AgencyMembership, andAgencyRebateschema.