Litepaper

Litepaper

Litepaper 0.1.0


Abstract

TLD3 introduces a new way to trade domain derivatives by turning Web2 and Web3 domains into fractional ERC-20 tokens while proving ownership of the domains by DNS challenges and Doma Protocol’s Web3 domains.


Introduction

Tokenization has changed how assets are owned and traded, allowing them to be split, exchanged, and used in decentralized finance. Derivative trading on decentralized platforms has seen rapid growth, letting users speculate, hedge, or gain exposure without holding the full asset.

However, this approach has its limitations. How can someone trade or speculate on an asset if ownership cannot be proven? That is why our philosophy for tokenization is based on verified ownership. TLD3 addresses this for domains. Each domain is converted into ERC-20 fraction tokens, allowing anyone to trade parts of a domain, speculate on its value, and participate in liquid markets.


Economy

Mathematical Model

The TLD3 pricing mechanism is based on bonding curve mathematics. That’s how domain fraction pricing is calculated based on sales and purchases.


Symbols and State

Supply and Sold State

  • NN: total supply of base units (minted to platform at creation)
  • ss: sold amount in base units (fractionsSold), with 0lesleN0 \\le s \\le N
  • r=s/Nr = s / N: sold ratio

ETH Parameters and Balances

  • E0E_0: initial ETH parameter (ethDeposited) (wei), used as price anchor
  • BB: current ETH balance (wei) held by the DomainToken contract

Fees (Basis Points)

  • fpf_p: platform fee in bps
  • fcf_c: creator fee in bps
  • f=fp+fcle500f = f_p + f_c \\le 500 (combined cap: 5%)

Units

Token uses 18 decimals; 1 token unit equals:

1 token unit =1018 base units1 \text{ token unit } = 10^{18} \text{ base units}

Quadratic Spot Price

The on-chain spot price per token unit is quadratic in the sold ratio rr.

Base (per base unit) anchor price:

p0=E0N(wei per base unit)p_0 = \frac{E_0}{N} \quad \text{(wei per base unit)}

Spot price per base unit at sold state ss:

pbu(s)=p0(1+r)2=E0N(1+sN)2p_{\mathrm{bu}}(s) = p_0 (1 + r)^2 = \frac{E_0}{N} \left(1 + \frac{s}{N} \right)^2

Spot price per 1 token unit (101810^{18} base units):

P(s)=pbu(s)1018=E01018N(1+sN)2P(s) = p_{\mathrm{bu}}(s) 10^{18} = \frac{E_0 10^{18}}{N} \left(1 + \frac{s}{N} \right)^2

Monotonicity:
P(s)P(s) increases with ss;
P(0)=E01018NP(0) = \frac{E_0 10^{18}}{N}.


Primary Buy Execution

Given an ETH input of XX wei and pre-trade state ss:

  1. Compute spot price P(s)P(s)
  2. Compute purchasable base units (flooring):
a=X1018P(s)a = \left\lfloor \frac{X 10^{18}}{P(s)} \right\rfloor
  1. Cap by platform inventory II:
amin{a,I}a \leftarrow \min\{a, I\}
  1. Exact ETH spent (wei):
cost=aP(s)1018\mathrm{cost} = \left\lfloor \frac{a P(s)}{10^{18}} \right\rfloor
  1. Token transfer fees (in base units):
feep=afp10,000,feec=afc10,000,anet=afeepfeec\mathrm{fee}_p = \left\lfloor \frac{a f_p}{10{,}000} \right\rfloor, \quad \mathrm{fee}_c = \left\lfloor \frac{a f_c}{10{,}000} \right\rfloor, \quad a_{\mathrm{net}} = a - \mathrm{fee}_p - \mathrm{fee}_c
  1. Transfers:
  • Token: platform → buyer aneta_{\mathrm{net}}; platform → creator feec\mathrm{fee}_c. Platform fee on buys is a self-transfer; net platform outflow equals afeepa - \mathrm{fee}_p.
  • ETH: buyer → creator cost\mathrm{cost}; refund to buyer XcostX - \mathrm{cost}.
  1. State update:
s=s+as' = s + a

Notes: The entire buy executes at the pre-trade spot price P(s)P(s); there is no intra-trade slippage integration.


Secondary Sell Execution

Given a user sells aa base units at pre-trade state ss:

  1. Compute spot price P(s)P(s)
  2. Token fees and returned amount:
feep=afp10,000,feec=afc10,000,aret=afeepfeec\mathrm{fee}_p = \left\lfloor \frac{a f_p}{10{,}000} \right\rfloor, \quad \mathrm{fee}_c = \left\lfloor \frac{a f_c}{10{,}000} \right\rfloor, \quad a_{\mathrm{ret}} = a - \mathrm{fee}_p - \mathrm{fee}_c
  1. Circulation constraint:
aretsa_{\mathrm{ret}} \le s
  1. ETH payout (wei) from the DomainToken contract:
payout=aretP(s)1018\mathrm{payout} = \left\lfloor \frac{a_{\mathrm{ret}} P(s)}{10^{18}} \right\rfloor

Require BpayoutB \ge \mathrm{payout}.

  1. Transfers:
  • Token: seller → platform feep\mathrm{fee}_p and areta_{\mathrm{ret}}; seller → creator feec\mathrm{fee}_c.
  • ETH: DomainToken → seller payout\mathrm{payout}.
  1. State update:
s=sarets' = s - a_{\mathrm{ret}}

Fees and Exemptions

  • Fees apply on token transfers unless either party is fee-exempt.
  • Combined fee cap: f500f \le 500 bps.
  • Destinations:
    • Platform receives feep\mathrm{fee}_p on sells; on buys, platform fee is a self-transfer.
    • Creator receives feec\mathrm{fee}_c on both buys and sells (in tokens) and receives primary sale ETH.

Liquidity and Solvency Constraints

  • Inventory constraint on buys: aIa \le I
  • Circulation bound on sells: aretsa_{\mathrm{ret}} \le s
  • ETH solvency for sells:
BaretP(s)1018B \ge \left\lfloor \frac{a_{\mathrm{ret}} P(s)}{10^{18}} \right\rfloor
  • Primary sale ETH (cost\mathrm{cost}) is paid to the creator and does not automatically fund BB.

Properties and Implications

  • Single-price execution:
    Large trades pay/receive the pre-trade spot price. Compared to slippage-integrated bonding curves, large buys are cheaper and large sells are richer.

  • Funding gap risk:
    Because primary sale ETH flows to the creator while sells pay from BB, sustained sell pressure can render sells infeasible.

  • State accounting:
    Buys increase ss by aa; sells decrease ss by areta_{\mathrm{ret}}.


Parameterization and Tuning

  • Supply NN and anchor E0E_0 set the initial scale:
P(0)=E01018NP(0) = \frac{E_0 10^{18}}{N}
  • Fee policy (fp,fc)(f_p, f_c) trades off friction vs. accrual (bounded by 5%).
  • Liquidity BB should match anticipated redemption volume.

Core Equations (Summary)

P(s)=E01018N(1+sN)2P(s) = \frac{E_0 10^{18}}{N} \left(1 + \frac{s}{N} \right)^2
a=X1018P(s),cost=aP(s)1018,s=s+aa = \left\lfloor \frac{X 10^{18}}{P(s)} \right\rfloor, \quad \mathrm{cost} = \left\lfloor \frac{a P(s)}{10^{18}} \right\rfloor, \quad s' = s + a
aret=a(1f10,000),payout=aretP(s)1018,s=sareta_{\mathrm{ret}} = a \left(1 - \frac{f}{10{,}000} \right), \quad \mathrm{payout} = \left\lfloor \frac{a_{\mathrm{ret}} P(s)}{10^{18}} \right\rfloor, \quad s' = s - a_{\mathrm{ret}}

Technical Overview

Smart Contracts

The TLD3 platform is built on Doma Testnet.