Skip to Content
wstGBP is live on Ethereum mainnet · all addresses in these docs are verifiable on-chain
Architecture

Architecture

wstGBP is a single deployment of the MaseerOne tokenization framework. The token contract holds six immutable references to the modules that govern pricing, market state, issuance, compliance, and settlement. Most modules sit behind upgradeable proxies; the token itself is not a proxy.

wstGBP contract architecture: the wstGBP token wired to gem, pip, act, adm, cop and flo modules, with mint and redeem flows against the underlying tGBP and a weekly oracle poke into the price module.

The token: MaseerOne

The ERC‑20 users hold. It exposes mint, redeem, and exit, standard ERC‑20 + EIP‑2612 permit, and a set of view functions for integrators (see Contract Reference). It is 18‑decimal and named Wren Staked tGBP / wstGBP.

The six module references

RefModuleRole
gemtGBPThe underlying asset. Pulled in on mint, paid out on redeem. Backs supply 1:1.
pipPrice oracleReturns the current NAV price. Poked off‑chain on a regular cadence; the rising price is the accrual mechanic.
actMarket gateOpen/halt windows for mint and burn, the fee bps (bpsin / bpsout), cooldown, and capacity.
admTreasuryIssuer registry — which addresses may issue / smelt (privileged supply ops).
copCompliance guardThe pass(address) check applied to every user‑facing call. For wstGBP it inherits the ban list from the underlying gem (tGBP) via tGBP’s isBanned — there is no separate wstGBP list.
floOutput conduitWhere redemption settlement flows. For wstGBP this is the token itself (no separate conduit).

Proxy modules (pip, act, adm, cop) are bound at their proxy address while their event ABIs come from the implementation. Addresses for both are listed in the Contract Reference.

The NAV mechanic

The price oracle (pip) is updated off‑chain on a regular cadence. Because mint and redeem both quote against the live price:

  • navprice() — the raw oracle price (WAD, 18‑decimal).
  • mintcost()navprice adjusted up by the mint fee (bpsin). For wstGBP bpsin = 0, so mintcost == navprice.
  • burncost()navprice adjusted down by the burn fee (bpsout = 25), a 0.25% haircut on redemption.

As the poked price rises, each wstGBP redeems for more tGBP. Balances never change; the price does. There is no rebasing and no in‑contract yield distribution — accrual is entirely a function of the oracle price curve.

Mint & redeem at a glance

  • Mint: caller approves tGBP to the token, then calls mint(amt). The contract pulls amt tGBP, mints amt / mintcost wstGBP (floored), and emits ContractCreated.
  • Redeem: caller calls redeem(amt). The contract burns amt wstGBP, computes amt * burncost tGBP owed, and — with cooldown 0 — pays it out atomically, emitting ContractRedemption and ClaimProcessed.

Full call‑level detail, revert conditions, and the WAD math are in Mint & Redeem.

Privileged surface (not user‑facing)

wstGBP is a real‑world‑asset (RWA) token — it wraps tGBP, a GBP‑denominated underlying asset — and is compliance‑gated by design. The privileged functions below exist to satisfy those compliance requirements (controlled issuance/redemption of the underlying and an enforceable allow/deny list inherited from the underlying gem, tGBP), not as discretionary control over user balances.

issue(uint256) and smelt(...) adjust supply through the treasury issuer registry and are restricted to issuer addresses; the admin/owner key governs proxy upgrades and oracle updates. These are on‑chain‑observable governance functions, not part of normal integration, and are listed for completeness in the Contract Reference.

Last updated on