ForwardX
Tokenized FX & equity forwards with Chainlink CRE Auto Settlement. Trade USD/KRW, SAMSUNG, GOOGLE ERC-20 Spot Token on-chain.
What it is
The Problem: Traditional FX forward contracts require trusted intermediaries, expensive prime brokerage access, and manual settlement processes. Exotic currency pairs like USD/KRW are inaccessible to retail traders, and existing DeFi protocols focus almost exclusively on spot markets. Crucially, no Chainlink Data Feed exists for USD/KRW or USD/JPY, making on-chain FX derivatives impossible with traditional oracle approaches.
Today's DeFi users remain fully exposed to FX risk even when holding stablecoins, with no on-chain hedging instruments available. Meanwhile, tokenized equities face regulatory roadblocks across jurisdictions, making direct on-chain stock token issuance impractical. These constraints keep DeFi confined to crypto-native assets, stalling its connection to the real economy. ForwardX bypasses these barriers by offering price derivatives (NDFs) instead of direct asset tokenization — providing on-chain exposure to FX and equities without regulatory risk.
How it Works
Core Mathematical Models
ForwardX operates two trading systems, each with its own
settlement/pricing math.
① P2P OTC Forward (ERC-721 NFTs)
Both parties agree on a forward rate (F₀) and settle at maturity based on
the spot rate (S_T):
PnL(Long) = N × (S_T − F₀) / F₀
PnL(Short) = −PnL(Long)
- Linear payoff: % rate change = % return. Zero gamma, zero convexity.
- Full collateral (no leverage), paired Long/Short ERC-721 NFTs,
tradeable on built-in marketplace.
② Tokenized Forwards (ERC-20 fToken/sfToken)
Deposit 1 USDC → mint 1 fToken (Long) + 1 sfToken (Short). At maturity:
fToken redemption = S_T / F₀ (USDC per token)
sfToken redemption = 2 − S_T / F₀ (USDC per token)
Always: fToken + sfToken = 2 USDC (zero-sum guarantee)
- Linear payoff with clamping: max(0, min(2, ...)) — max loss is 1 USDC
per token.
③ Yield Space AMM (FXPool)
AMM for fToken ↔ sfToken trading with time-decaying curve:
Invariant: x^(1−t) + y^(1−t) = k
Swap formula: Δy = y − (k − (x + Δx)^(1−t))^(1/(1−t))
Time param: t = t_min + (t_max − t_min) × √(T_remaining / T_total)
- k is recomputed at current t before every swap (not cached)
- As maturity approaches, t → 0 and the curve converges to x + y = k
(linear pricing)
Dynamic Fee Model:
Base fee: baseFee = feeMax × √(T_remaining / T_total)
Pool skew: skew = |x − y| / (x + y)
Drain trade: fee = baseFee × (1 + 4 × skew²)
Rebalance: fee = baseFee × max(0.5, 1 − skew)
Links
Created by
- Huisang Kim
- Noh yuseong