MainstreamToken License (MTL) v0.1 - Parameter Addendum
This document provides the technical details, and is intended for developers and other users, and is a part of the above license.
Data Structure
{
"mtl_version": "1.0",
"tx_hash": "blockchain_transaction_hash_here",
"tx_timestamp": "timestamp_of_transaction_in_utc",
"license_data": {
"license_id_hash": "blake3_hash_of_license_id",
"asset_id_hash": "blake3_hash_of_asset_id",
"owner_address": "blockchain_address_of_owner",
"creation_time": "timestamp_of_license_creation_in_utc",
"expiration_time": "timestamp_of_license_expiration_in_utc",
"license_parameters": {
"use_type": "commercial",
"scope": "global",
"duration": "12 months",
"owner_program": "blockchain_address_of_program_if_applicable",
"promotion_urls": [
"https://instagram.com/username",
"https://tiktok.com/@username",
"https://youtube.com/@username"
],
"payment_details": {
"payment_type": "WALLET|BANK|PAYPAL|STRIPE|OTHER",
"payment_info": "payment method specific details",
"payment_split": "5:30:40:30"
}
},
"user_data_hash": "blake3_hash_of_user_identifiable_data_offchain",
"user_data_hash_verification_api": "/api/verify_user_data",
"copyright_data_hash": "blake3_hash_of_copyright_information",
"copyright_data_verification_api": "/api/verify_copyright",
"asset_data": {
"asset_hash": "blake3_hash_of_asset_content",
"description": "text_description_of_asset",
"asset_data_link": "url_of_offchain_asset_data_if_applicable",
"asset_verification_api": "/api/verify_asset_data"
}
}
}
Technical Implementation
Data Processing Steps
-
Data Collection
- Gather all necessary information via web forms and user inputs
- Validate input against the JSON schema
-
Data Processing
- Encode data to standardized JSON string
- Hash user data separately (BLAKE3)
- Hash copyright data separately (BLAKE3)
- Generate complete JSON structure
- Create final BLAKE3 hash of entire JSON object
-
Blockchain Storage
- Store final hash in transaction memo field
- Use Solana Web3 library for blockchain interaction
Technology Stack
Core Technologies
- Frontend: JavaScript/TypeScript with React/Vue/Angular
- Smart Contracts: Solidity for Solana
- Hashing: BLAKE3 JavaScript implementation
- Blockchain: Solana web3.js library
- Storage: IPFS with pinning incentives
- Data Format: JSON
License String Format (MTL v0.1)
Base Format: MTLv1-[TYPES]/[TOKENS]-[FEE]/[SPLITS];[CONDITIONS]~[ADDENDUM]
[TYPES]
: License type (P, C, N, D)[TOKENS]
: Minimum token requirements[FEE]
: Revenue share percentage[SPLITS]
: Revenue split ratio[CONDITIONS]
: License conditions[ADDENDUM]
: Optional addendums
Example: MTLv1-PC/100-3:30:40:30;+12M<1M[US,EU]{W,M}#A1~LICENSE:MIT
Verification Procedure
Verification Methods
The following verification formats are supported across various platforms:
- Email Verification
LICENSE: [LICENSE STRING]
PAY TO: [Wallet Address / Pay Info]
USAGE: [URL/Location]
TX: [Transaction ID]
REVENUE: [If Commercial/Derivative]
ASSET: [Asset ID]
-
Social Media Posts Same format as above, posted on verified social media accounts.
-
API Verification Direct API calls using the same data structure.
-
Blockchain Verification On-chain verification using transaction memo fields.
Rights Management Structure
Token Requirements
- Personal: 100 tokens
- Non-Profit: 50 tokens
- Commercial: 10,000 tokens
- Derivative: 10,000 tokens
Revenue Share
- Commercial: 3% annual revenue
- Format: [%]:[chain]@[address]
- Derivative: 5% annual revenue
- Format: [%]:[chain]@[address]
Documentation Templates
Initial Verification
[LICENSE STRING]
HOLDER: [SOL ADDRESS]
USAGE: [TYPE]
LOCATION: [URL]
TX: [ID]
Annual Report
PERIOD: [YYYY]
REVENUE: [AMOUNT]
PAYMENT: [TX HASH]
HOLDINGS: [TOKEN AMOUNT]
Validation Rules
License String Validation
FORMAT: MTLv1-[TYPES]/[TOKENS]-[FEE]/[SPLITS];[CONDITIONS]~[ADDENDUM]
Rules:
- Version must be v1
- Types must be P, C, N, or D only
- Tokens must be numeric
- Fee must be between 0-100
- Splits must be a series of numbers separated by colons
- Must include all components
Error Handling
- CODE 101: Invalid format: Request resubmission
- CODE 102: Wrong version: Update required
- CODE 103: Invalid type: Format correction needed
Update/Renewal Process
Annual Verification
Submission Window:
- 30 days before expiry
- Grace period: 7 days
- Auto-reminder at 14 days
Requirements:
- Current token balance
- Usage proof
- Revenue report (if applicable)
- Payment confirmation
Compliance Tracking
Token Holdings
- Daily balance checks
- Minimum requirement alerts
- Grace period: 48 hours
- Violation notice if below minimum
Revenue Reporting
- Annual submission required
- Payment within 30 days
- Transaction verification
- Split distribution tracking
Error Handling Procedures
Verification Errors (100-199)
- CODE 101: Invalid License String Format
- CODE 102: Missing Required Information
- CODE 103: Incorrect Blockchain Specified
- CODE 104: Invalid Blockchain Address
- CODE 105: Invalid User Hash
Verification Pass (000-099)
- CODE 001: License Verified Successfully
- CODE 002: License Verified with User Data
Compliance Errors (200-299)
- CODE 201: Insufficient Tokens for License
- CODE 202: Missing Annual Compliance Report
- CODE 203: Late Payment Detected
- CODE 204: Invalid Compliance Proof
- CODE 205: Payment Amount Does Not Match
Renewal Process
Annual Renewal Steps
- Verification check
- Token balance confirmation
- Revenue report submission
- Payment processing
- License extension
Termination Procedures
Automatic Termination
- Token balance is less than the minimum requirement for >48 hours
- Missing annual report
- Non-payment of fees
- Invalid usage proof
Manual Termination
- User request
- Violation report
- Community verification