You are on Testnet version. Your assets and actions will not migrated to Mainnet.

TLD3 - Web3 Domain Trading

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 (state variable fractionsSold), with 0sN0 \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+fc500f = f_p + f_c \le 500 (combined cap: 5%)

Units

Token uses 18 decimals; 1 token unit equals 101810^{18} base units:

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), matching the contract scale:

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
  3. Cap by platform inventory II (platform's token balance):
    amin{a,I}a \leftarrow \min\{a,\, I\}
  4. Exact ETH spent (wei):
    cost=aP(s)1018\mathrm{cost} = \left\lfloor \frac{a\,P(s)}{10^{18}} \right\rfloor
  5. 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
  6. 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}.
  7. 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. Post-trade, ss jumps by aa.

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
  3. Circulation constraint:
    aretsa_{\mathrm{ret}} \le s
  4. 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}.
  5. Transfers:
    • Token: seller → platform feep\mathrm{fee}_p and areta_{\mathrm{ret}}; seller → creator feec\mathrm{fee}_c.
    • ETH: DomainToken → seller payout\mathrm{payout}.
  6. State update:
    s=sarets' = s - a_{\mathrm{ret}}

Notes: As with buys, the sell executes at the pre-trade spot price with post-trade state update.

Fees and Exemptions

  • Fees apply on token transfers unless either party is fee-exempt (settable by platform as owner of DomainToken).
  • Combined fee cap: f500f \le 500 bps.
  • Destinations:
    • Platform receives feep\mathrm{fee}_p on sells; on buys platform fee is a self-transfer (neutral on net inventory).
    • 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. To support redemptions, BB must be explicitly funded (e.g., deposits to DomainToken).

Properties and Implications

  • Single-price execution: Large trades pay/receive the pre-trade spot price, not the integral under the curve. Compared to slippage-integrated bonding curves, large buys are cheaper and large sells are richer, all else equal.
  • Funding gap risk: Because primary sale ETH flows to the creator while sells pay from BB, sustained sell pressure without replenishing BB can render sells infeasible due to the BB constraint.
  • State accounting: Buys increase ss by aa (pre-fee), which slightly overstates growth in circulating holdings when fees apply; 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. platform/creator accrual (bounded by 5% combined).
  • Liquidity BB should be sized to anticipated redemption volume at prevailing P(s)P(s).

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)(floored per leg),payout=aretP(s)1018,s=sareta_{\mathrm{ret}} = a\left(1 - \frac{f}{10{,}000}\right)\,\text{(floored per leg)},\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