RWA
Documentation

How it works.

Every rule on the launchpad, what each setting does, what freezes and what does not, and the address of everything that is deployed. If something here disagrees with the contracts, the contracts are right and this page is wrong. Tell us and we will fix the page.

What this is

Really Wrong Assets is a launchpad. Anyone can use it to create an NFT collection whose mint price is denominated in tokenized stock rather than in the chain's own coin, with the artwork stored inside the contract instead of on a server.

We do not review, approve or curate collections. We cannot edit one after it is created, and we cannot mint from one, pause one, or take anything out of one. The only thing we control is the factory that creates them and the launchpad fee, both described below.

The chain

NetworkRobinhood Chain
Chain id4663
RPChttps://rpc.mainnet.chain.robinhood.com
Explorerhttps://robinhoodchain.blockscout.com
Gas paid inETH

It is an Arbitrum Orbit L2. Blocks land in roughly a tenth of a second and gas sits in the hundredths of a gwei, which is why storing artwork on chain here is affordable when it would not be elsewhere.

Paying in stock

A collection names one ERC-20 as its payment token and that choice is permanent. Buyers approve that token and mint with it. The chain's own coin is only ever used for gas.

Twenty five tokenized stocks are accepted, chosen from the official registry. The whitelist is by contract address, never by symbol.

Why this matters Counterfeit tokens on this chain copy the canonical name and symbol exactly. A collection that resolved its payment token by symbol could be paid in something worthless that looks identical in a wallet. Every address in the whitelist was taken from the registry and hard coded.

Art on chain

Layers are uploaded to a renderer contract and stored as contract bytecode using SSTORE2. A token's image is assembled when someone asks for it, so there is no file, no IPFS pin and no gateway. Nothing hosts the art, which means nothing can stop hosting it.

Each layer holds a set of pieces with weights. The renderer picks one piece per layer from the token's id and the collection's seed, stacks them in order, and returns an SVG inside a data URI. Traits are derived the same way, so the metadata and the picture can never disagree.

A collection can instead point at an IPFS folder if that is what its creator wants. In that case none of the above applies to it and the art is only as durable as the pin.

Standard collections

The straightforward kind. A buyer pays the mint price in the payment token, the launchpad takes its fee, and the rest goes to the creator immediately. The buyer holds an NFT.

Settings chosen at creation:

  • Payment token, price, supply, and an optional per wallet limit
  • Whether minting opens immediately or at a timestamp
  • An optional allowlist, committed as a merkle root
  • An optional provenance hash, committed before minting so the trait order cannot be changed afterwards
  • Royalty percentage and who receives it

Vault collections

The same as above with one difference: most or all of the mint payment does not go to the creator. It stays inside the token that was just minted.

The creator sets a vault share between 10% and 100% at creation, and it is permanent. On each mint the payment is split: the vault share is credited to the new token, the launchpad fee is taken from the rest, and whatever remains goes to the creator.

At a 100% vault share the launchpad fee is waived in the contract, because there is nothing left to take a fee from. This is not a discount we grant, it is a branch in the code.

Worked example A mint priced at 0.1 NVDA with a 90% vault. The token keeps 0.09 NVDA. The launchpad fee is 0.007 NVDA. The creator receives 0.003 NVDA. The buyer holds a token that contains 0.09 NVDA, so what the art actually cost them is 0.01 NVDA.

Balances are tracked in an internal ledger on the collection, not in a separate wallet per token. That is cheaper to mint and has fewer moving parts than giving every token its own account.

Opening a vault

Whoever owns the token can redeem it. The balance inside is transferred to them and the token's vault balance is set to zero. The token is not burned. The art does not change. Ownership does not change.

What does change is what the token says about itself. The renderer reads the balance live, so the metadata moves from Vault: Full to Vault: Emptied and a stamp appears on the artwork. A marketplace shows this without being told, because it is reading the same contract.

An emptied token can still be sold. The buyer can see it is empty before they buy, which is the point of showing it.

Several tokens can be opened in one transaction. Ids that are already empty, or repeated in the same call, are skipped rather than charged for.

The key

A vault collection may require a token to be burned in order to open a box. The creator chooses which token, how much per box, a cap that the amount can never exceed, and an expiry.

  • The key is burned, not collected. It is not sent to the creator, to us, or to a treasury. Nobody is paid for opening a box.
  • The amount can be lowered at any time, but never raised above the cap committed at creation.
  • The expiry can be brought closer but never pushed further out.
  • The expiry can be at most three months from creation. After it passes, opening needs no key at all.
Why there is a ceiling and an expiry Without them, a creator could raise the key to an impossible amount, or extend it forever, and the stock inside every token would be held hostage. The cap and the three month limit exist so that the contents can always be reached.

Royalties

A collection sets a secondary royalty percentage and a receiver, and reports both through ERC-2981. A vault collection can send that royalty to its holders instead of to the creator. In that case the receiver is the collection itself.

Anything that arrives is divided across every token that exists at the moment it is counted, and each token claims its own share when the holder chooses to. Royalties accumulate per token, so selling the token sells the unclaimed share with it.

The vault balance and earned royalties are separate. Opening a box does not touch what the token has earned, and earnings never refill a vault.

A bug we found and fixed before launch In an early version, tokens minted between a royalty arriving and it being counted would share in it, diluting the tokens that existed when it arrived. The fix is that a mint settles any pending royalty before the supply changes. There is a test that reverts the fix and fails.

What freezes

Some things are permanent from creation:

  • Payment token, price, supply, vault share, and the key cap
  • Whether royalties go to holders or to the creator

Some things freeze at reveal, which the creator triggers once:

  • The renderer address and the art it holds. After reveal the art cannot be replaced, and the collection cannot be pointed at a different renderer.

Some things stay editable:

  • The storefront: name, description, link and cover thumbnail. This is metadata about the collection, not about any token.
  • Whether minting is open
  • The key amount and expiry, in the one direction each allows
Reveal is the point of no return Before reveal, every token shows a placeholder and the creator can still change the art. Revealing points the collection at the renderer and freezes that pointer forever. There is no undo and we cannot reverse it for anyone.

Fees

To create a collection0.0005 ETH, flat
On each mint7% of the payment
On a 100% vaultnone, waived in the contract
To open a boxnothing to us. The key is burned
To claim royaltiesnothing to us

The mint fee is set on the factory and applies to collections created after it changes, not retroactively. Gas is separate and goes to the network, not to us.

What can go wrong

This section is here because a document that only lists what works is not documentation.

The stock inside is still the stock

A vault holds a tokenized stock whose price moves. A token holding 0.01 AAPL is worth whatever 0.01 AAPL is worth, which is not fixed and can fall. Nothing here protects against that.

Anyone can launch anything

We do not curate. A collection can copy our name, our art style, and our cover image. Ours carry an Official badge on this site, which is a claim made by this site and not by the chain. Check the contract address, not the name.

A creator sets their own rules

Vault share, key amount and expiry are the creator's choices, within the limits above. Read them on the collection page before minting. They are all on chain and none of them is our decision.

A revealed mistake is permanent

If a creator reveals the wrong art, it stays. We have no ability to fix it. This is the direct cost of the art being frozen, and it is a trade we made deliberately.

Nothing is audited by a third party

The contracts are tested heavily and verified on the explorer, and we found real bugs in our own code before launch. No outside firm has reviewed them. Read them yourself, or do not use them.

Addresses

All verified on Blockscout. Read the source there rather than trusting this page.

Standard factory0x4A991B9A5Be6C03a66971BEBC6dAC7B53e640640
Vault factory0x9Bba7D070F6b8a51BD0e2DDfd277A87AfD6F8a1f
Renderer0xf7EF93A7495c5e4e256cA57849A59471E3d1Fec8
Renderer V2, vault aware0x49fA91F1DA259AC15c2Bf9BB26F4F2E4baACeFFE
$RWA0x78955aCB427c933E870e74621B3c4d887413d08F
Really Wrong Assets, 5250x05b6D91c622967FbA43B01df9978E279c2d996A7
Really Wrong Vaults, 9990x6A730b8f003153fFB470720Cd0ae24e841D24e27

Tests

210 tests across 13 suites, all passing. Many of them run against a fork of this chain using the real tokenized stock contracts rather than mocks, so a test that passes has passed against the same code the mint will touch.

What they cover, in the parts that matter most:

  • A mint fills the box and the holder can take the contents out
  • A box minted later does not share in a royalty that arrived earlier
  • Giving everything to the buyer waives the fee
  • Opening a box burns the key, and only for boxes that actually opened
  • The key moves but never past its cap, and expires so the stock is never held hostage
  • A batch mint splits evenly and loses nothing to rounding
  • The contents travel with the box when it is sold
  • A counterfeit payment token is refused
  • An emptied box renders differently from a full one

$RWA

$RWA is a token on this chain. Its only role in this system is as a key: a vault collection can name it as the token burned to open a box. Ours does, at 5,000 per box.

Any creator can name it, or name something else, or require no key at all. That is their choice and not ours. When it is burned it is destroyed, not collected by anyone.

It does not entitle a holder to revenue, governance, a place in any future launch, or anything else. We do not promise it will.

Found something wrong?

If a number here is stale, a claim is wrong, or you have found a bug in a contract or on the site, tell us. Reporting something that turns out to be real is more useful to us than agreement.

Home · Explore · Create · Portfolio