Skip to content

Licensing

When an identity is boxed with the LICENSE or MONETIZE policy, platforms and avatar creators can obtain licenses to use the likeness legally.

LMIF supports two licensing models:

ModelPolicyDescription
Explicit LicenseLICENSERequires application and approval
Automatic LicenseMONETIZEAuto-approved with revenue share

Creators set pricing for different license tiers:

TierDescriptionTypical Range
PersonalIndividual, non-commercial use$0-10/month
CreatorContent creators, small platforms$25-100/month
CommercialCommercial platforms, apps$100-1,000/month
EnterpriseLarge-scale deploymentCustom pricing
// Request a license
const request = await lmif.licenses.request({
boxId: 'box_abc123',
tier: 'commercial',
useCase: 'AI companion platform',
platformId: 'your_platform_id',
estimatedUsers: 10000,
contentGuidelines: true
});
// Check status
const status = await lmif.licenses.getStatus(request.id);
if (status.status === 'approved') {
// License granted!
const license = status.license;
console.log(`License ID: ${license.id}`);
console.log(`Valid until: ${license.expiresAt}`);
}
{
"id": "req_xyz789",
"boxId": "box_abc123",
"status": "pending",
"tier": "commercial",
"submittedAt": "2024-01-15T10:00:00Z",
"estimatedReviewTime": "48-72 hours"
}
{
"id": "req_xyz789",
"status": "approved",
"license": {
"id": "lic_abc123",
"boxId": "box_abc123",
"tier": "commercial",
"monthlyFee": 500,
"currency": "USD",
"validFrom": "2024-01-17T00:00:00Z",
"expiresAt": "2025-01-17T00:00:00Z",
"terms": {
"maxUsers": 50000,
"contentGuidelines": "https://...",
"renewalTerms": "auto_renew"
}
}
}

With MONETIZE policy, licenses are automatic:

const result = await lmif.identity.check({
name: "Celebrity Name",
imageUrl: "https://..."
});
if (result.isBoxed && result.policy === 'MONETIZE') {
// Automatically licensed with revenue share
const { royaltyRate, revenueTypes } = result;
// Create avatar and track usage for royalty calculation
await createAvatar({
identity: result,
trackingEnabled: true
});
}

For MONETIZE licenses, platforms must track and remit revenue:

Revenue TypeDescription
SubscriptionsMonthly subscriber revenue
Per-messagePay-per-interaction fees
TipsUser tips and gifts
AdsAdvertising revenue attributed to avatar
// Report usage for royalty calculation
await lmif.licenses.reportUsage('lic_abc123', {
period: '2024-01',
metrics: {
subscribers: 5000,
messages: 250000,
tips: 15000,
adImpressions: 1000000
},
revenue: {
subscriptions: 25000,
messages: 5000,
tips: 15000,
ads: 2000
}
});
Total Revenue: $47,000
Royalty Rate: 10%
Creator Earnings: $4,700
┌─────────────────────────────────────────────────────────────┐
│ LICENSE LIFECYCLE │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. REQUESTED │
│ └── Application submitted, awaiting review │
│ │
│ 2. APPROVED / DENIED │
│ └── Creator reviews and decides │
│ │
│ 3. ACTIVE │
│ └── License in effect, usage tracking active │
│ │
│ 4. RENEWAL │
│ └── Auto-renew or manual renewal required │
│ │
│ 5. EXPIRED / REVOKED │
│ └── License no longer valid │
│ │
└─────────────────────────────────────────────────────────────┘
const licenses = await lmif.licenses.list({
platformId: 'your_platform_id',
status: 'active'
});
const renewal = await lmif.licenses.renew('lic_abc123', {
term: 12, // months
tier: 'commercial' // can upgrade tier
});
await lmif.licenses.cancel('lic_abc123', {
reason: 'no_longer_needed',
effectiveDate: 'end_of_billing_period'
});

Each license includes terms set by the creator:

TermDescription
maxUsersMaximum users allowed
contentGuidelinesLink to content rules
nsfwWhether NSFW content allowed
exclusivityWhether license is exclusive
territoryGeographic restrictions
modificationsWhether modifications allowed

Subscribe to license events:

// License request received (for creator dashboards)
'license.requested'
// License approved
'license.approved'
// License denied
'license.denied'
// License about to expire
'license.expiring'
// License expired
'license.expired'
// License revoked by creator
'license.revoked'