Case study

OroCash, one gram of gold,
one token.

A gold token where one token is one gram, issued by Gens Aurea, with the platform to run it.

Client — Gens Aurea, ItalyScope — Token and smart contract, wallet, white-label Engage dashboard, membership NFT, platform monitoring
See project
The challenge

Gens Aurea had the gold, and wanted to offer it to customers as a token

Gens Aurea is an Italian gold and precious metals group. It owns its gold, keeps it in its own vaults, and moves it through its own network, with delivery to the customer or collection in store. Its name is the one customers trust.

The result is OroCash, a token where one token is one gram of gold in Gens Aurea’s vault. Gens Aurea is the issuer, and we supply the technology and the platform.

The approach

How the gold becomes a token

The metal is held allocated in custody, and for every amount a customer buys there is a token that assigns it to them. We set up this tokenization with Gens Aurea, from the vault to the daily reconciliation.

More than a token

We built the OroCash token contract and a soulbound membership NFT, a wallet for customers, a white-label version of our Engage dashboard for Gens Aurea’s operations, and a status page that monitors the system.

Engage, our dashboard, set up for Gens Aurea

Engage is our own product, a dashboard we offer to different clients for their different needs. For Gens Aurea we set up a white-label Engage for their operations, so they can manage their members’ activity and the mint and burn functions.

The home screen is an overview with notifications, including the roles assigned and revoked. User accounts are split into team and customer accounts: for the team, roles are assigned per wallet, and for customers, each account can be whitelisted or given transfer limits. The smart contract page holds the controls for minting and burning tokens, minting NFTs, extracting tokens from the contract address, the treasury wallet, a minimum wallet balance, fees, and transfer limits, both general and per wallet.

Engage home screen showing the account overview and the notifications feed of role changes
The Engage home screen: platform overview and a feed of role changes. Screenshot from a demo account: all figures and addresses are illustrative and do not represent real accounts, balances or activity.
Engage user accounts page showing team accounts and the select roles dialog
Team accounts in Engage, with the role selector open for a team wallet. Screenshot from a demo account.
Engage smart contract page listing minting, burning, extraction, treasury, fees and transfer limit controls
The smart contract page in Engage: minting, burning, fees, limits and more.

The OroCash token, minted and burned on demand

We built OroCash as an ERC-20 token where one token equals one gram of gold. The supply is on demand and starts at zero, and tokens are created and destroyed only with several sign-offs.

At first there is no liquidity pair, just mint and burn. The contract does not manage the price: it is provided to the frontend by the marketplace.

One gram out, one token fewer.

The token makes one promise: this gram belongs to you, and here is the proof that it is in the vault. It is neither a share nor a loan, and it promises no profit and no stable value. It is classified as a crypto-asset under Title II of MiCA, other than an asset-referenced token or an e-money token. That calls for a white paper and a notification, and no authorization is needed.

Six roles, and a second signature for the sensitive moves

We split control of the contract into six roles, and a wallet can hold several of them.

RoleWhat it controls
AdminFull administrative control, with dual signature for sensitive operations
ModeratorPausing and resuming the contract, and managing the whitelist
MinterMinting tokens and membership NFTs
ExtractorExtracting tokens and native currency from the contract
CFOFinancial controls: fees, limits, treasury, and burning memberships
WhitelistExempt from pause, limits and fees

Granting the Admin role needs double validation, within an approval window the owner sets between one hour and seven days, and a pending validation can be cancelled. Every function that changes state is protected against re-entrancy, and every stage of the build is checked by an independent party before it goes live.

Engage select roles dialog for a team wallet
Assigning and editing a team wallet’s roles.
Engage confirmation dialog before revoking roles from an account
Revoking a role asks for confirmation first.

Rules that live in the contract

The token contract enforces the rules itself. The CFO sets a fixed fee and a percentage fee on buys and sells, with the fee going to a treasury wallet. General transfer limits can be activated, and specific limits set for a single wallet or a batch of wallets. A minimum number of tokens can be required before a sell, and the Moderator can pause the contract. Whitelisted wallets are exempt from pause, limits and fees.

A wallet with no seed phrase and no gas fees

Every customer gets a wallet. They sign in with their email, with no word lists to write down and lose, and only the customer controls it. Gens Aurea cannot reach into it, and neither can we.

Customers do not pay gas fees either: our wallet uses EIP-7702, so no gas fee has to be validated from the user’s side.

A membership badge that cannot be sold

The membership NFT is a badge that identifies OroCash members when they create their account and receive their wallet. We built it as soulbound: it cannot be transferred, sold or exchanged, there is one per wallet, and the member cannot burn it. Only the CFO or an Admin can destroy one.

The NFT contract is separate and lightweight. It delegates role checks to the token contract, so both share the same admin and role system and the NFT contract stays small.

Proof the gold is there, and a way to collect it

OroCash uses gold of LBMA-accredited origin, with bars recorded by serial number, and a proof of reserves against the tokens in circulation that customers can see for themselves.

Customers have their gold delivered or collect it in store. When metal leaves the stock, the token is destroyed. Gens Aurea moves the gold through its own network, and we do not move any gold.

A status page that tells us when something is down

We also built a platform status page, so we can monitor whether any module or part of the system is down. It tracks six services, each checked every 30 seconds: the database, cache, OpenSearch, the blockchain node, the wallet API and MPC.

For each one it shows the current response time, the average response and the uptime.

Platform status page showing six services, each operational, with response time, average response and uptime
The platform status page: six services, each checked every 30 seconds.

Gens Aurea’s name, our technology

Throughout, Gens Aurea stays the issuer. It owns the gold, the customer relationship and the data, and its name is the one customers trust. We supply the technology and the platform as a service provider, and we are not a bank, a custodian or a dealer.

What was built
  • OroCash, an ERC-20 gold token where one token equals one gram, with on-demand supply and a MiCA Title II classification
  • A white-label version of our Engage dashboard for Gens Aurea: overview and notifications, team and customer accounts, roles, whitelisting, transfer limits and the smart contract controls, including mint and burn
  • A six-role access system, with dual signature for the Admin role and independent checks at every stage of the build
  • Fees, general and per-wallet limits, a minimum balance rule and pause, all enforced in the contract
  • A customer wallet with email sign-in, no word lists and no gas fees
  • A soulbound membership NFT that shares the token contract’s roles
  • Proof of reserves against the tokens in circulation, and redemption by delivery or in-store collection that destroys the token
  • A platform status page monitoring six core services

The outcome

Gens Aurea is the issuer of OroCash and manages its operations in a white-label Engage. Its customers hold tokens in a wallet only they control, can see the proof of reserves, and can have their gold delivered or collect it in store.

Building something similar?

Bring your asset to a first conversation. We’ll tell you what we think it could become, and what it would take to get there. That first talk is on us.