Skip to content
Showcase projectBlockchain & Web3
  • 223 tests
  • 100% coverage
  • Slither-analysed

Gold-Backed Token (RWA)

Real-world-asset demo: 1 sGOLD = 1 gram of custodied gold, minting enforced against proof of reserve

ERC-20AccessControlProof of reserveFoundry

What it is

GoldBackedToken makes 1:1 backing a precondition instead of a promise: mint(to, amount) only succeeds if totalSupply + amount ≤ reserve(). The reserve is read from a proof-of-reserve feed whose interface is identical to Chainlink's AggregatorV3, validated for freshness and normalised to 18 decimals.

Holders redeem by burning tokens with an off-chain reference; the custodian watches the redemption events and delivers the metal or settles in cash. This is a demo — sGOLD is not backed by real gold, has no monetary value and is not offered for sale. It draws on our team's domain knowledge from building a platform for a precious-metals dealer.

The business problem

Tokenised commodities and stablecoins depend on one promise: every token is backed. When that promise is only checked by occasional attestations, an issuer can mint more than it holds — and nobody sees the under-collateralisation until it's too late.

How it works

  1. 1

    The custodian (or a Chainlink proof-of-reserve feed) reports the grams of gold held.

  2. 2

    The minter role mints tokens to a customer after payment — only if the new supply stays within the reserve.

  3. 3

    Tokens trade freely as ERC-20, with EIP-2612 permit for gasless approvals.

  4. 4

    A holder redeems by burning tokens with a reference; the custodian settles off-chain.

  5. 5

    In an incident, the pauser role halts all transfers, mints and redemptions.

Security measures

  • Minting reverts with InsufficientReserve if the supply would exceed the reserve
  • Oracle validation: non-positive, missing, future or stale data is rejected
  • Bounded staleness window (1 second to 7 days) — the check can't be switched off
  • Decimal normalisation for any feed precision
  • Role-based AccessControl
  • Fuzzed invariant: totalSupply ≤ reserve

Features

  • 1 token = 1 gram of gold
  • Reserve-checked minting
  • Chainlink AggregatorV3-compatible reserve feed
  • Redemption by burn with reference
  • Separate admin, minter and pauser roles
  • Pausable circuit breaker

Typical use cases

  • Tokenised precious metals, commodities and warehouse receipts
  • Reserve-enforced stablecoins
  • Other real-world assets with a verifiable off-chain registry

Known limitations

Demo only: a mock reserve feed stands in for a real oracle. Production would need a real proof-of-reserve feed, multisig + timelock admin and, where required, transfer restrictions (e.g. under MiCA).

Other showcase contracts

Showcase

Milestone Escrow

The client locks the full budget up front, split into milestones. Funds move only on release, arbiter decision or cancellation.

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20

223 tests · 100% coverage · Slither‑analysed

Showcase

Token + Vesting + Staking

A capped ERC-20 with gasless approvals, vesting schedules with cliff for team and investors, and Synthetix-style staking rewards.

ERC-20EIP-2612OpenZeppelin v5

223 tests · 100% coverage · Slither‑analysed

Showcase

SigmaNFT Collection

A fair NFT launch: allowlist and public phases, per-wallet limits, immutable max supply, ERC-2981 royalties and a delayed reveal.

ERC-721ERC-2981Merkle proofs

223 tests · 100% coverage · Slither‑analysed

Standards: Solidity 0.8.x, OpenZeppelin, Foundry tests with fuzzing, Slither static analysis, verified source. 223 tests · 100% coverage · Slither-analysed.

Have a project in mind?

Tell us what you're building. You get an honest assessment, a clear scope and a fixed-price or milestone proposal, usually within a few working days.

Prefer to write first? Write to us