SECTION 1: LEARNING OBJECTIVES

By the end of this lesson, you will be able to:

  • Define utility tokens and security tokens and their key characteristics.

  • Explain the Howey Test and its application to token classification.

  • Understand the regulatory frameworks for token classification (US, EU, UK, Asia).

  • Describe the differences between utility, security, and payment tokens.

  • Differentiate between tokenised assets and native digital assets.

  • Identify securities exemptions and compliance requirements.

  • Implement a token classification assessment tool in Python.

  • Develop a framework for token classification and compliance.


SECTION 2: UTILITY TOKENS

2.1 Definition

utility token is a digital token designed to provide access to a product or service within a specific blockchain ecosystem. It is not primarily intended as an investment vehicle but rather as a functional unit within the network.

2.2 Key Characteristics

text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    UTILITY TOKEN CHARACTERISTICS                            │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    FUNCTIONAL PURPOSE                                │   │
│  │  Provides access to services, products, or network features.        │   │
│  │  Examples: Filecoin (storage), BAT (advertising)                   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    NOT PRIMARILY AN INVESTMENT                      │   │
│  │  Value is derived from utility, not speculation.                   │   │
│  │  However, speculative value may exist.                             │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    NETWORK-DEPENDENT                                 │   │
│  │  Value is tied to the success of the underlying network.           │   │
│  │  Examples: ETH (Ethereum), SOL (Solana)                            │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                    REGULATORY STATUS                                │   │
│  │  Generally not treated as securities (if properly designed).        │   │
│  │  Subject to oversight in some jurisdictions.                       │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

2.3 Examples of Utility Tokens

 
 
Token Network Utility
ETH Ethereum Gas fees, smart contract execution
SOL Solana Transaction fees, staking
FIL Filecoin Storage fees, network participation
BAT Brave Browser Advertising, content rewards
LINK Chainlink Oracle service fees
AAVE Aave Governance, fee discounts

2.4 Utility Token Challenges

 
 
Challenge Description Mitigation
Speculative Value Tokens often trade for speculation Clear utility design
Regulatory Risk May be classified as securities Compliance by design
Network Dependency Value depends on network success Diversification
Competition Many similar tokens compete Differentiation
User Adoption Requires user education Clear communication

SECTION 3: SECURITY TOKENS

3.1 Definition

security token is a digital representation of a financial security, such as equity, debt, or derivatives. Security tokens are subject to securities regulations and provide rights similar to traditional securities.

3.2 Key Characteristics

 
 
Characteristic Description
Investment Intent Purchased with expectation of profit.
Common Enterprise Funds are pooled for a common venture.
Efforts of Others Profits depend on the efforts of a third party.
Regulatory Compliance Subject to securities laws and registration.
Transfer Restrictions Often limited to accredited investors.
Disclosure Requirements Must provide full financial disclosure.

3.3 Types of Security Tokens

 
 
Type Description Examples
Equity Tokens Represent ownership in a company Tokenised shares
Debt Tokens Represent a loan or bond Tokenised bonds
Derivative Tokens Represent options, futures, or swaps Synthetic assets
Real Estate Tokens Represent property ownership Fractional property
Fund Tokens Represent shares in an investment fund Tokenised VC funds
Revenue Share Tokens Provide rights to revenue Profit-sharing tokens

3.4 Regulatory Framework

 
 
Requirement Description Applicable
Registration Must register with SEC (or equivalent) Most security tokens
Disclosure Full financial and business disclosure All security tokens
Trading Restrictions Limited to accredited investors (US) Reg D tokens
Reporting Ongoing reporting obligations Public companies
Anti-Fraud Prohibited from misleading investors All security tokens
Transfer Restrictions Limited by lock-up periods All security tokens

SECTION 4: THE HOWEY TEST

4.1 The Four Prongs

The Howey Test determines whether a transaction qualifies as an “investment contract” and therefore a security.

text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    THE HOWEY TEST                                           │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  1. INVESTMENT OF MONEY                                                    │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │ • Did investors contribute money or assets?                        │   │
│  │ • Does the token have a purchase price?                             │   │
│  │ • Examples: ICO purchases, token sales                             │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                    │                                        │
│                                    v                                        │
│  2. COMMON ENTERPRISE                                                      │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │ • Are investors' funds pooled?                                       │   │
│  │ • Is there a common business venture?                               │   │
│  │ • Examples: Funds used for project development                    │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                    │                                        │
│                                    v                                        │
│  3. EXPECTATION OF PROFITS                                                 │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │ • Do investors expect to profit?                                     │   │
│  │ • Was profit marketed or promoted?                                   │   │
│  │ • Examples: Token appreciation, dividends, staking rewards           │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                    │                                        │
│                                    v                                        │
│  4. EFFORTS OF OTHERS                                                     │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │ • Are profits generated by the efforts of a promoter or third party? │   │
│  │ • Are investors passive?                                             │   │
│  │ • Examples: Team development, marketing, operations                  │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  IF ALL FOUR PRONGS ARE MET → THE TOKEN IS A SECURITY                     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

4.2 Application to Crypto

 
 
Factor Howey Test Application Security Risk
Investment of Money Token purchase with fiat or crypto High
Common Enterprise Funds pooled for development High
Expectation of Profits Marketing of token appreciation High
Efforts of Others Team builds and markets the project High
Decentralisation Project fully decentralised Low
Functional Utility Token has clear, existing utility Low

4.3 Key Cases

 
 
Case Year Ruling Impact
SEC v. Howey 1946 Established the Howey Test Foundation
SEC v. W.J. Howey Co. 1946 Investment contract definition Precedent
SEC v. Ripple Labs 2020 XRP not necessarily a security Programmatic sales allowed
SEC v. LBRY 2022 LBC is a security Broad classification
SEC v. Kik 2019 Kin is a security ICO enforcement

SECTION 5: REGULATORY FRAMEWORKS

5.1 Jurisdictional Approaches

 
 
Jurisdiction Framework Key Principles
US Howey Test, SEC guidance Securities vs utilities
EU MiCA, ESMA guidance Comprehensive regulation
UK FCA guidance Security token regulation
Singapore MAS framework Payment vs security tokens
Switzerland FINMA guidance Existing securities law
Hong Kong SFC guidance Securities regulation

5.2 Securities Exemptions

 
 
Exemption Description Requirements
Reg D (506) Private placement Accredited investors only
Reg A+ Mini-IPO Up to $75M, public offering
Reg S Offshore offering Non-US investors
Reg CF Crowdfunding Up to $5M, retail investors
Regulation S SEC exempt Foreign transactions

5.3 Token Classification Decision Tree

text
┌─────────────────────────────────────────────────────────────────────────────┐
│                    TOKEN CLASSIFICATION DECISION TREE                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  IS THERE AN INVESTMENT OF MONEY?                                          │
│         │                                                                   │
│    ┌────┴────┐                                                            │
│    │         │                                                            │
│   YES        NO                                                           │
│    │         │                                                            │
│    v         v                                                            │
│  IS THERE A COMMON ENTERPRISE?                                           │
│         │                                                                   │
│    ┌────┴────┐                                                            │
│    │         │                                                            │
│   YES        NO                                                           │
│    │         │                                                            │
│    v         v                                                            │
│  IS THERE EXPECTATION OF PROFITS?                                        │
│         │                                                                   │
│    ┌────┴────┐                                                            │
│    │         │                                                            │
│   YES        NO                                                           │
│    │         │                                                            │
│    v         v                                                            │
│  ARE PROFITS FROM EFFORTS OF OTHERS?                                     │
│         │                                                                   │
│    ┌────┴────┐                                                            │
│    │         │                                                            │
│   YES        NO                                                           │
│    │         │                                                            │
│    v         v                                                            │
│  SECURITY   UTILITY / PAYMENT                                             │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

SECTION 6: IMPLEMENTATION IN PYTHON

python
# ===================================================================
# MODULE 6, LESSON 3: UTILITY AND SECURITY TOKEN FRAMEWORKS
# ===================================================================

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from typing import Dict, List, Tuple
import warnings
warnings.filterwarnings('ignore')

print("="*70)
print("UTILITY AND SECURITY TOKEN FRAMEWORKS")
print("="*70)

# ----------------------------------------------------------------
# PART A: HOWEY TEST ASSESSMENT TOOL
# ----------------------------------------------------------------

print("\n" + "-"*60)
print("PART A: Howey Test Assessment Tool")
print("-"*60)

class HoweyTestAssessment:
    """
    Howey Test assessment for token classification.
    """
    def __init__(self, token_name: str):
        self.token_name = token_name
        self.prongs = {
            'investment_of_money': 0,      # 0-2
            'common_enterprise': 0,         # 0-2
            'expectation_of_profits': 0,    # 0-2
            'efforts_of_others': 0          # 0-2
        }
        self.weighting = {
            'investment_of_money': 1.0,
            'common_enterprise': 1.0,
            'expectation_of_profits': 1.0,
            'efforts_of_others': 1.0
        }
    
    def assess_prong(self, prong: str, score: int, weight: float = 1.0) -> None:
        """Assess a prong with a score (0 = low, 1 = medium, 2 = high)."""
        if prong in self.prongs:
            self.prongs[prong] = score
            self.weighting[prong] = weight
    
    def get_total_score(self) -> float:
        """Calculate weighted total score."""
        total = 0
        max_total = 0
        for prong, score in self.prongs.items():
            weight = self.weighting.get(prong, 1.0)
            total += score * weight
            max_total += 2 * weight
        return total / max_total if max_total > 0 else 0
    
    def get_classification(self) -> Tuple[str, str]:
        """Get token classification based on Howey Test."""
        score = self.get_total_score()
        
        if score >= 0.7:
            classification = 'Security Token'
            recommendation = 'Register with SEC or use exemption'
        elif score >= 0.4:
            classification = 'Potential Security Token'
            recommendation = 'Seek legal counsel, consider compliance'
        else:
            classification = 'Utility Token'
            recommendation = 'Ensure clear utility and avoid marketing as investment'
        
        return classification, recommendation
    
    def get_report(self) -> Dict:
        """Generate a detailed assessment report."""
        classification, recommendation = self.get_classification()
        return {
            'token_name': self.token_name,
            'prong_scores': self.prongs,
            'score_percentage': self.get_total_score(),
            'classification': classification,
            'recommendation': recommendation,
            'risk_level': 'High' if self.get_total_score() >= 0.6 else 'Medium' if self.get_total_score() >= 0.3 else 'Low'
        }

# Simulate assessments
print("Howey Test Assessment for Tokens:")

# Token 1: Utility Token (Filecoin)
assessment1 = HoweyTestAssessment("Filecoin (FIL)")
assessment1.assess_prong('investment_of_money', 2)  # Purchase required
assessment1.assess_prong('common_enterprise', 1)    # Network, not common enterprise
assessment1.assess_prong('expectation_of_profits', 1)  # Some expectation
assessment1.assess_prong('efforts_of_others', 1)    # Team develops network
report1 = assessment1.get_report()

print(f"\n{assessment1.token_name}:")
print(f"  Classification: {report1['classification']}")
print(f"  Score: {report1['score_percentage']:.1%}")
print(f"  Risk Level: {report1['risk_level']}")
print(f"  Recommendation: {report1['recommendation']}")

# Token 2: Security Token (Tokenised Stock)
assessment2 = HoweyTestAssessment("Tokenised Apple Shares")
assessment2.assess_prong('investment_of_money', 2)  # Purchase required
assessment2.assess_prong('common_enterprise', 2)    # Apple is common enterprise
assessment2.assess_prong('expectation_of_profits', 2)  # Clear expectation
assessment2.assess_prong('efforts_of_others', 2)    # Apple management
report2 = assessment2.get_report()

print(f"\n{assessment2.token_name}:")
print(f"  Classification: {report2['classification']}")
print(f"  Score: {report2['score_percentage']:.1%}")
print(f"  Risk Level: {report2['risk_level']}")
print(f"  Recommendation: {report2['recommendation']}")

# Token 3: Decentralised Governance Token
assessment3 = HoweyTestAssessment("Pure Governance Token")
assessment3.assess_prong('investment_of_money', 2)  # Purchase required
assessment3.assess_prong('common_enterprise', 0)    # No common enterprise
assessment3.assess_prong('expectation_of_profits', 0)  # No expectation
assessment3.assess_prong('efforts_of_others', 0)    # Community-driven
report3 = assessment3.get_report()

print(f"\n{assessment3.token_name}:")
print(f"  Classification: {report3['classification']}")
print(f"  Score: {report3['score_percentage']:.1%}")
print(f"  Risk Level: {report3['risk_level']}")
print(f"  Recommendation: {report3['recommendation']}")

# ----------------------------------------------------------------
# PART B: TOKEN FRAMEWORK COMPARISON
# -----------------------------------------------------------------

print("\n" + "-"*60)
print("PART B: Token Framework Comparison")
print("-"*60)

framework_data = {
    'Feature': ['Investment Intent', 'Regulatory Status', 'Transfer Restrictions', 'Disclosure', 'Trading Market', 'Investor Protection'],
    'Utility Token': ['No', 'Low', 'No', 'Limited', 'Open', 'Limited'],
    'Security Token': ['Yes', 'High', 'Yes', 'Full', 'Regulated', 'High'],
    'Payment Token': ['No', 'Low', 'No', 'Limited', 'Open', 'Limited']
}

framework_df = pd.DataFrame(framework_data)
print(framework_df.to_string(index=False))

# ----------------------------------------------------------------
# PART C: SECURITIES EXEMPTIONS
# -----------------------------------------------------------------

print("\n" + "-"*60)
print("PART C: Securities Exemptions")
print("-"*60)

exemptions_data = {
    'Exemption': ['Reg D (506b)', 'Reg D (506c)', 'Reg A+ (Tier 1)', 'Reg A+ (Tier 2)', 'Reg S', 'Reg CF'],
    'Max Raise': ['Unlimited', 'Unlimited', '$20M', '$75M', 'Unlimited', '$5M'],
    'Investors': ['Accredited only', 'Accredited + Verified', 'Retail + Accredited', 'Retail + Accredited', 'Non-US', 'Retail'],
    'Public Offering': ['No', 'No', 'Yes', 'Yes', 'No', 'Yes'],
    'Disclosure': ['Form D', 'Form D', 'Form 1-A', 'Form 1-A', 'None (offshore)', 'Form C'],
    'Cost': ['Low', 'Medium', 'Medium', 'High', 'Low', 'Medium']
}

exemptions_df = pd.DataFrame(exemptions_data)
print(exemptions_df.to_string(index=False))

# ----------------------------------------------------------------
# PART D: TOKEN CLASSIFICATION FRAMEWORK
# -----------------------------------------------------------------

print("\n" + "-"*60)
print("PART D: Token Classification Decision Framework")
print("-"*60)

classification_framework = {
    "Step 1: Purpose Analysis": {
        "Questions": [
            "Is the token primarily used for accessing a service?",
            "Is the token primarily used as a medium of exchange?",
            "Is the token primarily used as an investment?",
            "Does the token represent ownership or debt?"
        ],
        "Classifications": ["Utility", "Payment", "Security", "Security"]
    },
    "Step 2: Howey Test Application": {
        "Questions": [
            "Was there an investment of money?",
            "Is there a common enterprise?",
            "Is there an expectation of profits?",
            "Are profits from the efforts of others?"
        ],
        "If All Yes": "Likely a Security Token"
    },
    "Step 3: Regulatory Framework Analysis": {
        "Questions": [
            "Which jurisdictions will the token be offered in?",
            "What are the regulatory requirements in each?",
            "What exemptions are available?",
            "What is the compliance timeline?"
        ],
        "Actions": ["Comply with local laws", "Consider exemptions", "Engage legal counsel"]
    },
    "Step 4: Risk Assessment": {
        "Questions": [
            "What is the risk of SEC enforcement?",
            "What is the risk of investor litigation?",
            "What is the reputational risk?",
            "What is the business impact?"
        ],
        "Actions": ["Mitigate risks", "Consider legal opinions", "Implement compliance"]
    }
}

for step, details in classification_framework.items():
    print(f"\n{step.upper()}:")
    for key, value in details.items():
        if isinstance(value, list):
            print(f"  {key}:")
            for item in value:
                print(f"    • {item}")
        else:
            print(f"  {key}: {value}")

# ----------------------------------------------------------------
# PART E: SUMMARY AND RECOMMENDATIONS
# -----------------------------------------------------------------

print("\n" + "="*70)
print("PART E: Summary and Recommendations")
print("="*70)

print("""
Utility and Security Token Frameworks – Key Takeaways:

1. Utility tokens: functional access to services, not primarily investments.
2. Security tokens: represent ownership, debt, or rights; subject to securities regulation.
3. Howey Test: investment of money, common enterprise, expectation of profits, efforts of others.
4. Key cases: SEC v. Howey, SEC v. Ripple, SEC v. LBRY.
5. Securities exemptions: Reg D (private), Reg A+ (public), Reg S (offshore), Reg CF (crowdfunding).
6. Jurisdictions: US (SEC), EU (MiCA), UK (FCA), Singapore (MAS), Switzerland (FINMA).
7. Classification: utility (low risk), potential security (medium risk), security (high risk).

Recommendations:
  - Conduct a Howey Test analysis for any token offering.
  - Design tokens with clear utility to avoid security classification.
  - Seek legal counsel for token classification.
  - Consider exemptions if token is a security.
  - Implement compliance by design.
  - Monitor regulatory developments.
  - Disclose risks transparently.
""")