#What Statics provides

Statics is an onchain multi-asset protocol implemented as two coordinated EIP-2535 diamonds. Rather than a single primitive, it bundles several composable surfaces behind one ordinary user-action address: StaticsDiamond.

SurfacePurpose
Static basketsFixed-bundle ERC-20 basket tokens of up to 16 assets with action-size fee tiers.
Statics DollarA senior dollar (USDstx) minted from volatile or pegged collateral, plus series-scoped Risk Shares.
Shared PositionNFTOne transferable ERC-721 that owns dollar legs, basket collateral, loans, rewards, and staked liquidity.
Global rewardsStake STATICS and opt into up to 64 reward assets per position.
Self-backed lendingBorrow a basket's constituent vector against deposited basket collateral.
Flash compositionBorrow a basket's constituents atomically through a typed callback.
Canonical v4 liquidityOne zero-native-fee Uniswap v4 pool per constituent with a bilateral swap-fee hook.
Permanent liquidityMatched protocol-owned inventory becomes hook-owned full-range liquidity.

#Architecture

StaticsDiamond is the ordinary integration address, the PositionNFT ERC-721 contract, and the custody boundary for basket and Dollar periphery assets. The StaticsDollarCoreDiamond remains a separate custody and solvency boundary. Both diamonds are owned by the same StaticsTimelock.

Statics two-diamond layout
ETH / WETH / pegged collateral
        |
        v
StaticsDollarCoreDiamond   collateral + issuance + solvency + recovery
        |
   USDstx + Risk Shares
        v
StaticsDiamond (EIP-2535)  user gateway + PositionNFT + shared custody
        |
   one pool per basket constituent
        v
Uniswap v4 PoolManager + StaticsSwapFeeHook + LiquidityManager

Each basket has its own transferable ERC-20 token. Module accounting and physical-token reservations stay isolated inside the diamond while LibCustody enforces global backing.

#Static baskets

A StaticsBasketToken represents a fixed constituent vector. Minting deposits the configured bundle plus the selected flat fee; redemption burns basket tokens and returns the same vector less the selected fee. Statics is deliberately not ERC-4626: historical fees do not change a basket conversion rate, and new minters do not purchase accrued yield.

Basket creators choose the immutable assets, bundle amounts, action-size fee tiers, flash fee, lending fees, LTV, recovery penalty, and loan duration.

#Statics Dollar

Volatile profiles accept collateral such as WETH and mint equal senior Statics Dollar plus series-scoped Risk Shares. The Core governs price bands, coverage, insurance, transitions, recovery, oracle revision, and debt ceilings. Recombining equal senior and junior claims returns proportional collateral.

Pegged profiles mint only Statics Dollar, create no Risk Shares, and charge independent collateral-denominated mint and redemption fees. Any fungible Statics Dollar can redeem against available proportional profile capacity, subject to global health and recovery gates.

#Shared PositionNFT

StaticsDiamond is the ERC-721 PositionNFT contract. A position owns all attached basket collateral, Dollar series legs, reward selections, loans, and custodied canonical-liquidity positions. ERC-721 transfer moves authority over the complete economic position, and a position cannot close while any module leg remains active.

Every valid PositionNFT has deterministic, fully onchain Base64 JSON and SVG metadata. The visual seed is the stable (chain ID, StaticsDiamond, position ID) identity, so transfers and activity do not change the avatar.

#Global rewards

Users stake the configured STATICS ERC-20 in a PositionNFT and opt into selected reward assets. Each asset indexes rewards only across positions that selected it. Eligibility begins after the configured delay, so a new selection cannot capture historical fees. Unsupported or temporarily ineligible fee shares fall through to the governed accounting destination rather than remaining unbooked.

Canonical LP rewards are separate: users may stake eligible full-range PositionManager NFTs for active Statics pools, accrue next-block liquidity weight, claim rewards, and unstake without a cooldown.

#Lending and recovery

Basket lending locks deposited basket tokens and releases the proportional constituent vector at the basket's configured LTV, capped by the immutable 95% protocol ceiling. Independent tranches preserve separate maturities. Repayment restores the exact stored principal; extension charges each outstanding constituent; permissionless recovery becomes available only after maturity and grace.

Basket constituents can also be borrowed atomically through a typed flash callback. The receiver must restore principal plus fees in the same transaction, and nested flash loans are blocked.

#Canonical liquidity and bilateral fees

Each basket has one canonical BasketToken/constituent Uniswap v4 pool per asset. The pool uses zero native LP fee. StaticsSwapFeeHook charges configured fees on both input and output, then allocates them across permanent protocol-owned liquidity, eligible canonical LP positions, deposited basket tokens, global Statics stakers, and treasury.

Matched protocol-owned inventory is converted into hook-owned full-range liquidity. It has no normal withdrawal path and can unwind only after the basket enters ExitOnly and its canonical pool is decommissioned.

#Governed lifecycle

Baskets transition through Active, Quarantined, and ExitOnly. Quarantine blocks new exposure immediately while preserving repayment, recovery, and exit paths. ExitOnly disables new risk in the installed facets but remains a governed software state because the diamond is upgradeable.

Every module maintains isolated logical reservations while LibCustody enforces global physical backing. Transfers use observed balance deltas and caller-provided bounds.

#Choose your path

  • Basket creators should start with static baskets, architecture, and the governed lifecycle.
  • Lenders and borrowers should read lending and recovery, static baskets, and flash composition.
  • Dollar users should read the Statics Dollar profiles, the introduction, and the deployment snapshot.
  • Builders and indexers should read architecture, the shared PositionNFT model, and the integration guidance.