KYC Withdrawal Layer

Module Type: Identity & Access Category: Fiat Access Enforcement Purpose: Ensures seamless, compliant withdrawals from the TRN platform to a user’s real-world banking account, while maintaining user privacy and respecting jurisdictional controls.


🧩 Overview

The KYC Withdrawal Layer is a seamless withdrawal and fiat exchange module integrated into the TRN platform. It is the only part of the system that touches real-world fiat infrastructure, and it is configured at initial wallet setup by the user. All TRN earned on-platform (e.g., from views, curation, ad watching) can be withdrawn into local currency via this system—but only after all TRNUsageOracle debts have been settled.

This module does not interfere with real-time platform use. It is strictly enforced when attempting to convert TRN into fiat and only applies to withdrawals.


🔐 Core Behavior

  1. One-Time Setup

    • During wallet creation, the user links their KYC withdrawal method.

    • Each user selects their country, preferred exchange pathway, and linked account (e.g. checking account or mobile wallet).

    • Uses country-specific KYC modules. For example:

      • 🇺🇸 U.S. → driver's license or government ID

      • 🇮🇳 India → Aadhaar + phone number

      • 🇪🇺 EU → eID and bank connection

  2. Automatic Distribution

    • All earnings (after the Merkle drop, debt reconciliation, and vault splits) are automatically sent to the user's wallet.

    • When the user requests withdrawal, the KYC layer activates and:

      • Verifies the user’s KYC setup

      • Confirms no unsettled debt remains in TRNUsageOracle

      • Executes the transfer to the user’s linked account

  3. Debt Blocking

    • If the user attempts withdrawal while in TRNUsageOracle debt, the request is rejected.

    • Withdrawals are only possible once the fruit balance and usage ledger are fully reconciled with Merkle-batched earnings.

  4. Country-Level Controls

    • Jurisdictions may restrict or delay withdrawals via CountryNFT constraints.

    • These controls are enforced at the policy layer (via GeoOracle + CountryRulesetManager), but KYC Withdrawal Layer respects them.

    • For example: If a user from a restricted country earns TRN, they can still spend it within the ecosystem but cannot withdraw it until compliance is met.


💳 Process Flow

textCopyEdit[User Earns TRN] 

[Daily Merkle Drop Applies Fruit Credit]

[User Withdraws TRN via Interface]

[System Checks KYC Setup + Debt-Free Status]

[CountryNFT Rules Checked (GeoOracle)]

[Fiat Transfer Executed via Selected Provider]

✅ Requirements for Withdrawal

Requirement
Enforced By

Wallet initialized with KYC

KYC Withdrawal Layer

No outstanding TRNUsageOracle debt

DebtSettlementModule

CountryNFT allows withdrawal

GeoOracle + CountryRulesetManager

Account is not frozen

ModerationLog or FlagEscalator


🌐 Jurisdictional Logic

This system respects decentralized regional governance via CountryNFTs. Each country may:

  • Approve or reject withdrawal pathways

  • Enforce holding periods

  • Enforce earnings thresholds before release

  • Delay conversion to fiat until review

These settings are transparent and on-chain, but specific enforcement is hidden behind encrypted country-level oracles to prevent censorship circumvention.


📎 Integration Modules

Module
Role in Withdrawal Process

TRNUsageOracle

Verifies balance sufficiency and pending fruit debt

DebtSettlementModule

Ensures no negative balance or unfinalized usage

GeoOracle

Detects user’s country and applies legal restrictions

CountryRulesetManager

Maintains country-specific withdrawal criteria

ModerationLog

Can block withdrawals for flagged/fraudulent users


🔐 Privacy Design

  • Withdrawal metadata is handled outside the core TRN ledger

  • No other users or on-chain observers can see:

    • Withdrawal method

    • Real name or ID

    • Transaction history in fiat

  • Only the DAO and relevant country’s validator or KYC provider has access, under encrypted access agreements


🚫 Common Rejection Reasons

  • ❌ User has unpaid TRNUsageOracle ledger balance

  • ❌ User has not completed wallet KYC setup

  • ❌ User’s country is under restriction (CountryNFT locked)

  • ❌ Withdrawals temporarily paused by moderation

  • ❌ User attempted to bypass withdrawal limits (auto-flagged)


📝 Notes

  • This module is transparent to the user after setup: they use TRN as usual, and their money goes to their account when requested.

  • Users are encouraged but not required to withdraw. They can use TRN internally as long as they want.

Last updated