Technical Overview
A deep dive
Contract Architecture
Plether consists of core protocol contracts and peripheral routing/integration contracts.
Core:
SyntheticSplitter– Central hub for minting, burning, and collateral managementSyntheticToken– ERC20 implementation for plDXY-BEAR and plDXY-BULLStakedToken– ERC4626 vaults for staked positions (splDXY-BEAR, splDXY-BULL)BasketOracle– Price feed aggregating 6 Chainlink oracles
Routing:
ZapRouter– Efficient BULL acquisition using flash mintsLeverageRouter– Leveraged BEAR positions via MorphoBullLeverageRouter– Leveraged BULL positions via Morpho
Infrastructure:
MorphoAdapter– ERC4626 vault wrapping Morpho Blue for yieldMorphoOracle– Price adapter scaling BasketOracle to Morpho's formatStakedOracle– Prices staked tokens for Morpho collateral valuationRewardDistributor– Allocates yield to stakers based on price discrepancy
SyntheticSplitter
The SyntheticSplitter is the protocol's central contract. All minting, burning, and collateral flows pass through it.
Lifecycle States
ACTIVE
Normal operation. Minting and burning enabled.
PAUSED
Emergency state. Burning enabled, minting disabled. Governance can unpause.
SETTLED
Terminal state. Oracle hit CAP. Only settlement withdrawals allowed.
State transitions are one-way: ACTIVE → PAUSED → SETTLED. Settlement is irreversible and triggered when the oracle price reaches the protocol CAP ($2.00).
Mint and Burn
Minting accepts USDC and issues equal amounts of BEAR and BULL. The protocol rounds up in favor of the protocol (user pays slightly more).
Burning accepts equal BEAR and BULL and returns USDC. The protocol rounds down in favor of the protocol (user receives slightly less).
This rounding asymmetry prevents economic attacks exploiting dust amounts.
Collateral Management
The Splitter maintains a 10% liquidity buffer for immediate redemptions. The remaining 90% is deployed to yield adapters (currently MorphoAdapter) to generate yield.
When the buffer falls below target during burns, the Splitter automatically withdraws from adapters. When excess collateral accumulates from mints, it's deployed to adapters.
Settlement
If the oracle price reaches the CAP, the protocol enters the SETTLED state. At settlement:
All adapter funds are withdrawn
BEAR holders receive full CAP value per token
BULL holders receive nothing (BULL value = CAP - CAP = 0)
This represents an extreme tail scenario where USD has devalued significantly against the currency basket.
Oracle System
Plether uses two distinct price sources:
Theoretical/Mark
BasketOracle (Chainlink)
Token valuation (for reward distribution), settlement trigger, Morpho markets
Market
Curve EMA
Reward distribution, arbitrage reference
The theoretical price represents what tokens should be worth based on FX rates. The market price reflects actual trading activity on Curve. Discrepancies between these prices drive arbitrage and reward allocation.
BasketOracle
The BasketOracle aggregates six Chainlink price feeds into a single basket price:
EUR
57.6%
JPY
13.6%
GBP
11.9%
CAD
9.1%
SEK
4.2%
CHF
3.6%
Weights mirror the US Dollar Index composition.
Safety checks:
Staleness: Prices older than 8 hours are rejected
Sequencer uptime: On L2s, verifies the sequencer is online before trusting prices
Bounds: Rejects prices outside reasonable ranges
The oracle returns prices in 8 decimal format (Chainlink standard).
Curve EMA
The Curve pool provides an exponential moving average (EMA) of the BEAR/USDC trading price via price_oracle(). This smoothed price resists short-term manipulation while reflecting sustained market activity.
The reward flywheel uses the difference between Curve EMA and BasketOracle to determine which token is underperforming.
MorphoOracle
Morpho Blue requires oracles to return prices in 1e36 scale. MorphoOracle wraps BasketOracle and scales the output accordingly.
StakedOracle
For Morpho markets using staked tokens as collateral, StakedOracle calculates:
splDXY-BEAR Price = BEAR Price (from BasketOracle) × splDXY-BEAR Exchange Rate splDXY-BULL Price = BULL Price (from BasketOracle) × splDXY-BULL Exchange Rate
The exchange rate represents how many underlying tokens you receive when redeeming 1 staked token. It starts at 1:1 and increases as yield accrues to the vault.
For example, if BEAR is worth $0.85 and the staked vault has accumulated yield, bringing its exchange rate to 1.05, then splDXY-BEAR is valued at $0.8925 for Morpho collateral purposes.
Staking Layer
StakedToken Vaults
StakedToken is an ERC4626 vault. Users deposit plDXY tokens and receive staked tokens (splDXY-BEAR or splDXY-BULL) representing their share.
Initial exchange rate is 1:1. As yield is donated to the vault, the exchange rate increases—each staked token becomes redeemable for more underlying tokens.
Role in Morpho
Morpho lending markets require collateral. Plether uses staked tokens (not raw plDXY tokens) as collateral. This means:
Users must stake before opening leverage positions
Routers handle staking automatically when opening positions
Collateral continues earning staking yield while in Morpho
Routing Layer
ZapRouter
ZapRouter provides efficient BULL acquisition without requiring users to hold BEAR.
Flow:
Flash mint plDXY-BEAR from SyntheticToken
Swap BEAR → USDC on Curve
Use USDC to mint BEAR + BULL pairs via Splitter
Keep BULL, repay flash mint with newly minted BEAR
Protection: 1% max slippage cap prevents MEV exploitation.
LeverageRouter
LeverageRouter enables leveraged BEAR exposure using Morpho Blue.
Open position:
Flash loan USDC from Morpho
Swap USDC → plDXY-BEAR on Curve
Stake BEAR → splDXY-BEAR
Deposit splDXY-BEAR as Morpho collateral
Borrow USDC against collateral to repay flash loan
Close position:
Flash loan USDC
Repay Morpho debt
Withdraw splDXY-BEAR collateral
Unstake → plDXY-BEAR
Swap BEAR → USDC
Repay flash loan, return the remainder to the user
BullLeverageRouter
BullLeverageRouter enables leveraged BULL exposure.
Open position:
Flash loan USDC
Mint BEAR + BULL pairs via Splitter
Swap BEAR → USDC on Curve
Stake BULL → splDXY-BULL
Deposit splDXY-BULL as Morpho collateral
Borrow USDC to repay flash loan
Close position:
Flash mint BEAR (enough for collateral redemption + debt repayment)
Swap portion of BEAR → USDC
Repay Morpho debt
Withdraw splDXY-BULL collateral
Unstake → plDXY-BULL
Redeem BEAR + BULL pairs → USDC
Buy back BEAR to repay flash mint
Authorization: Both leverage routers require users to authorize them in Morpho (setAuthorization) before use.
Yield Infrastructure
MorphoAdapter
MorphoAdapter is an ERC4626 vault that deposits USDC into Morpho Blue lending markets. The Splitter treats it as a black box—it deposits USDC and withdraws USDC, with yield accruing in between.
Reward Distribution
Yield harvested from adapters flows through the RewardDistributor:
SyntheticSplitter.harvestYield()sends USDC to RewardDistributorRewardDistributor compares market prices to oracle prices
Rewards are allocated in favor of the underperforming token's stakers
Tokens are acquired (via minting, swapping, or zapping) and donated to StakedToken vaults
Split:
20% → Protocol treasury
80% → Staking rewards
Caller incentive: 0.1% of distributed rewards go to the address calling distributeRewards(), incentivizing regular distributions.
Last updated