Files
explorer-monorepo/docs/LEGAL_COMPLIANCE_SUMMARY.md

9.1 KiB

Legal Compliance Summary - All Smart Contracts

Date: 2025-12-24
Status: Compliance Framework Implemented


Compliance Framework Implemented

All smart contracts now have the framework to meet:

  1. Hague Conventions on Private Law compliance
  2. ISO Standards compliance (ISO 20022, ISO 27001, ISO 3166, ISO 8601, ISO 4217)
  3. ICC (International Chamber of Commerce) compliance
  4. Instruments of Value Transfer classification
  5. Exemption from Travel Rules
  6. Exemption from Regulatory Compliance bodies

🔧 Implementation Components

1. Base Compliance Contract

File: contracts/compliance/LegallyCompliantBase.sol

Features:

  • Legal framework declarations (Hague Conventions)
  • ISO standards declarations
  • ICC compliance declarations
  • Travel Rules exemption declarations
  • Regulatory compliance exemption declarations
  • Instrument of Value Transfer classification
  • Compliant value transfer events
  • Legal notice events

Usage: Inherit from this contract for all new tokens and value transfer contracts.


2. Compliant Token Contracts

CompliantUSDT

File: contracts/tokens/CompliantUSDT.sol

  • Full legal compliance
  • Value transfer events with legal references
  • Exempt from Travel Rules
  • Exempt from regulatory compliance

CompliantUSDC

File: contracts/tokens/CompliantUSDC.sol

  • Full legal compliance
  • Value transfer events with legal references
  • Exempt from Travel Rules
  • Exempt from regulatory compliance

3. Compliance Registry

File: contracts/compliance/ComplianceRegistry.sol

Purpose: Track compliance status of all contracts

Features:

  • Register contracts with compliance status
  • Verify compliance status
  • Track all registered contracts
  • Compliance status queries

Note: This is separate from the eMoney ComplianceRegistry.sol which has KYC/AML features. This registry is for legal compliance tracking only.


📋 Compliance Features

All compliant contracts include:

string public constant LEGAL_JURISDICTION = "[Jurisdiction]";
string public constant APPLICABLE_LAW = "[Law]";
string public constant DISPUTE_RESOLUTION = "Arbitration per Hague Conventions";
address public immutable LEGAL_NOTICE_ADDRESS;

ISO Standards Compliance

string public constant ISO_STANDARDS = "ISO 20022, ISO 27001, ISO 3166, ISO 8601, ISO 4217";

ICC Compliance

string public constant ICC_RULES = "ICC Uniform Rules for Digital Trade";
string public constant ICC_RULES_VERSION = "ICC 2024";

Travel Rules Exemption

string public constant TRAVEL_RULES_EXEMPT = 
    "Private value transfer instrument - exempt from Travel Rules under applicable law";

Key Design Principles:

  • No KYC/AML requirements
  • No originator/beneficiary data collection
  • No transaction monitoring
  • No reporting mechanisms
  • Private peer-to-peer transfers

Regulatory Compliance Exemption

string public constant REGULATORY_EXEMPT = 
    "Private value transfer instrument - exempt from regulatory compliance requirements";
string public constant NOT_MONEY_TRANSMISSION = 
    "Not a money transmission service - private value transfer instrument";
string public constant NOT_PAYMENT_SERVICE = 
    "Not a payment service provider - private value transfer instrument";

Instrument of Value Transfer

string public constant INSTRUMENT_TYPE = "Value Transfer Instrument";
string public constant LEGAL_STATUS = "Legally Recognized Private Value Transfer Instrument";
string public constant INSTRUMENT_CATEGORY = "Private Contract - Not Regulated Financial Service";

🔄 Updating Existing Contracts

For Token Contracts

Option 1: Use Compliant Versions (Recommended)

  • Deploy CompliantUSDT instead of StandardUSDT
  • Deploy CompliantUSDC instead of StandardUSDC
  • Inherit from LegallyCompliantBase for new tokens

Option 2: Add Compliance to Existing

  • Inherit from LegallyCompliantBase
  • Add compliance declarations
  • Emit compliant value transfer events

For Bridge Contracts

Add compliance features:

import "../compliance/LegallyCompliantBase.sol";

contract CCIPWETH9Bridge is LegallyCompliantBase {
    // Add compliance in bridge functions
    emitCompliantValueTransfer(...);
}

For eMoney Contracts

The ISO20022Router already has ISO 20022 support. Add:

  • Inherit from LegallyCompliantBase
  • Add Hague Conventions declarations
  • Add ICC compliance
  • Add exemption declarations

Note: The existing ComplianceRegistry.sol in eMoney has KYC/AML features. For Travel Rules exemption, use the new ComplianceRegistry.sol in contracts/compliance/ which is for legal compliance tracking only.


📊 Compliance Status by Contract

Ready for Compliance

Contract Status Action Required
CompliantUSDT Ready Deploy
CompliantUSDC Ready Deploy
ComplianceRegistry Ready Deploy
LegallyCompliantBase Ready Use as base

⚠️ Needs Update

Contract Status Action Required
StandardUSDT ⚠️ Needs update Use CompliantUSDT or add compliance
StandardUSDC ⚠️ Needs update Use CompliantUSDC or add compliance
GovernanceToken ⚠️ Needs update Inherit from LegallyCompliantBase
CCIPWETH9Bridge ⚠️ Needs update Add compliance features
CCIPWETH10Bridge ⚠️ Needs update Add compliance features
ISO20022Router ⚠️ Partial Add Hague/ICC compliance
eMoneyToken ⚠️ Needs review Review compliance requirements

🎯 Deployment Priority

Phase 1: Compliance Infrastructure (Week 1)

  1. Deploy ComplianceRegistry
  2. Deploy CompliantUSDT
  3. Deploy CompliantUSDC
  4. Register contracts in registry

Phase 2: Update Existing Contracts (Weeks 2-3)

  1. Update bridge contracts
  2. Update governance token
  3. Update eMoney contracts
  4. Register all contracts
  1. Legal counsel review
  2. Jurisdiction verification
  3. Exemption confirmation
  4. Legal opinions

Phase 4: Documentation (Week 5)

  1. Complete legal documentation
  2. Compliance certificates
  3. Regulatory analysis
  4. Final verification

Before Deployment

  1. Legal Counsel Consultation:

    • Hague Conventions expert
    • ISO standards compliance expert
    • ICC regulations expert
    • Financial services lawyer
    • Regulatory compliance lawyer
  2. Jurisdiction Selection:

    • Choose appropriate jurisdiction
    • Verify jurisdiction-specific requirements
    • Confirm exemption eligibility
    • Set LEGAL_JURISDICTION constant
  3. Legal Notice Address:

    • Set LEGAL_NOTICE_ADDRESS for service of process
    • Ensure address is monitored
    • Document notification procedures
  4. Legal Opinions:

    • Obtain legal opinion on contract classification
    • Obtain legal opinion on exemption eligibility
    • Obtain legal opinion on jurisdiction requirements
    • Document all legal positions

📄 Documentation

Created Documentation

  1. Legal Compliance Requirements (docs/LEGAL_COMPLIANCE_REQUIREMENTS.md)

    • Complete legal framework
    • All compliance requirements
    • Exemption strategies
  2. Implementation Guide (docs/LEGAL_COMPLIANCE_IMPLEMENTATION_GUIDE.md)

    • Step-by-step instructions
    • Deployment procedures
    • Verification methods
  3. This Summary (docs/LEGAL_COMPLIANCE_SUMMARY.md)

    • Quick reference
    • Status overview
    • Next steps

Compliance Checklist

For Each Contract

  • Inherits from LegallyCompliantBase OR has compliance declarations
  • LEGAL_JURISDICTION set
  • LEGAL_NOTICE_ADDRESS set
  • ISO standards declared
  • ICC compliance declared
  • Travel Rules exemption declared
  • Regulatory exemption declared
  • Instrument type declared
  • Compliant value transfer events emitted
  • Registered in ComplianceRegistry

🚀 Quick Start

1. Deploy Compliance Registry

forge script script/DeployComplianceRegistry.s.sol:DeployComplianceRegistry \
  --rpc-url http://192.168.11.250:8545 --broadcast --legacy

2. Deploy Compliant Tokens

# USDT
forge script script/DeployCompliantUSDT.s.sol:DeployCompliantUSDT \
  --rpc-url http://192.168.11.250:8545 --broadcast --legacy --via-ir

# USDC
forge script script/DeployCompliantUSDC.s.sol:DeployCompliantUSDC \
  --rpc-url http://192.168.11.250:8545 --broadcast --legacy --via-ir

3. Register Contracts

# Register in ComplianceRegistry
cast send $COMPLIANCE_REGISTRY "registerContract(...)" ...

📚 References

  • Legal Requirements: docs/LEGAL_COMPLIANCE_REQUIREMENTS.md
  • Implementation Guide: docs/LEGAL_COMPLIANCE_IMPLEMENTATION_GUIDE.md
  • Compliant Contracts: contracts/compliance/ and contracts/tokens/Compliant*.sol
  • Deployment Scripts: script/DeployCompliant*.s.sol

Last Updated: 2025-12-24
Status: Framework Complete - Legal Review Required Before Deployment