Skip to main content

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​

  1. Data Collection

    • Gather all necessary information via web forms and user inputs
    • Validate input against the JSON schema
  2. 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
  3. 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:

  1. Email Verification
LICENSE: [LICENSE STRING]
PAY TO: [Wallet Address / Pay Info]
USAGE: [URL/Location]
TX: [Transaction ID]
REVENUE: [If Commercial/Derivative]
ASSET: [Asset ID]
  1. Social Media Posts Same format as above, posted on verified social media accounts.

  2. API Verification Direct API calls using the same data structure.

  3. 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​

  1. Verification check
  2. Token balance confirmation
  3. Revenue report submission
  4. Payment processing
  5. 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