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.
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
| Ref | Module | Role |
|---|---|---|
gem | tGBP | The underlying asset. Pulled in on mint, paid out on redeem. Backs supply 1:1. |
pip | Price oracle | Returns the current NAV price. Poked off‑chain on a regular cadence; the rising price is the accrual mechanic. |
act | Market gate | Open/halt windows for mint and burn, the fee bps (bpsin / bpsout), cooldown, and capacity. |
adm | Treasury | Issuer registry — which addresses may issue / smelt (privileged supply ops). |
cop | Compliance guard | The 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. |
flo | Output conduit | Where 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()—navpriceadjusted up by the mint fee (bpsin). For wstGBPbpsin = 0, somintcost == navprice.burncost()—navpriceadjusted 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 callsmint(amt). The contract pullsamttGBP, mintsamt / mintcostwstGBP (floored), and emitsContractCreated. - Redeem: caller calls
redeem(amt). The contract burnsamtwstGBP, computesamt * burncosttGBP owed, and — with cooldown 0 — pays it out atomically, emittingContractRedemptionandClaimProcessed.
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.