In building a protocol with the potential for lasting, long-term success, choosing the correct chain to build on is an important decision. The obvious answer is to leverage the network effects of the Ethereum ecosystem in order to maximize our reach. However, in offering RWA assets to any sized buyer, we also need a solution where the assets being traded are not out-priced by the gas required to process those transactions. At the same time, we don't want to sacrifice the security of Ethereum settlement, especially when it comes to high valued assets like real estate and treasury bills.

We ultimately made the decision to relaunch Tangible on our own L2 called, built using Polygon's zkEVM technology. With direct settlement to Ethereum (no centralized validators, sequencers, or other off-chain storage and intermediaries) we can provide the highest-possible security guarantees and easy network onramps, without the downsides of transaction costs on the ETH mainnet.

And building in the ecosystem gives Tangible and any other development teams access to RWAs and off-chain yield, money legos that are unmatched in crypto and will be the launchpad for the next wave of DeFi adoption and a new money revolution.


Before jumping into the details on the Factory Contract, let’s take a minute to look at how we’re integrating Oracles into our system.

Oracles were one of the biggest challenges we had to resolve. We needed to map each item back to its market price from our suppliers, fitting within the limitation of the Polygon block size. Further complicating this was the variety of products in our marketplace. At launch, we will have multiple suppliers of different assets, and within each of those assets, different permutations.

For example, we offer:

  • Various brands and models of watches with different face sizes, band materials, and other key features.

  • Hundreds of varieties of wine, with varying producers, grapes, vintages, and case sizes.

Our solution is the fingerprint, a unique ID assigned to each product. Each fingerprint has a matching product_id, a string representing each unique item. Fingerprints are assigned to products before the TNFT is minted, and tokenIds are mapped to the fingerprint after minting. Fingerprints and tokenIds continue to remain consistent through fractionalization. Fingerprints tie all of our available stock (owned, fractionalized, and unowned) to the correct market price and metadata. There can be multiple tokenIds mapped to the same fingerprint; for example, three 100g gold bars may share one fingerprint, but each would be represented by a unique token.


The whole system is designed around a Factory Contract, with a complex permissions structure outlining who/what can access this contract, and how the data can be used. At any point in time, there can be only one owner of the Factory Contract and that owner is the vendor of the items for sale in the marketplace, Tangible Labs.

Through a carefully designed interface, the owner of the Factory Contract is propagated as the owner/admin of our TNFT contracts, TNFTs being Tangible NFTs that represent ownership over the physical goods that we sell in the marketplace i.e. real estate, wine, watches and gold bars. While Tangible Marketplace assets are currently limited to the above categories, we wanted to build for a future where Tangible can support hundreds or thousands of different physical asset class categories.


Our Factory Contract includes, references, or manages the following contracts in our system:

  • TNFT Deployer Contract

  • FTNFT Deployer Contract

  • PriceManager Contract

  • PassiveIncomeNFT Contract

  • RevenueDistribution Contract

  • RevenueShare Contract

  • Marketplace Contract

Through the rest of this article, we’ll break down the details on the various component contracts and how they integrate with the system as a whole.

TNFT Deployer Contract: Due to blockchain file size restrictions and the size of our TNFT contract, we were not able to include it directly with the Factory Contract. Instead, the Factory calls the deployer contract which was created specifically to deploy a new instance of the TNFT contract when necessary.

FTNFT Deployer Contract: This is the same as the TNFT deployer, its only task is to deploy a new FTNFT (Fractional TNFT) contract for users that want to split their TNFT into fractions. The Factory keeps track of each FTNFT deployed through the same management system as the TNFTs.

Tangible Products Price Manager: This contact contains a map between the deployed TNFT contract and its appropriate pricing oracle, enabling access to asset pricing through the Factory Contract as it contains the pricing manager.

3,3+ NFT Contract: This contract locks up TNGBL tokens for 2 - 48 months. These locked token contracts will begin to accrue rewards starting on the mint date, 5/2/2022. Minting a TNFT will also mint a locked token position that provides the user with their TNGBL rewards for the duration of the chosen lock period. Early claims of locked rewards will trigger the contract to burn the amount of TNGBL that is no longer available due to the penalty of claiming early rewards.

Marketplace Fee Distributor and Revenue Share Contracts The Marketplace Fee Distributor contract receives the 2.5% marketplace fees and distributes these collected fees to the Revenue Share contract on a daily basis. From there, RevenueShare makes the collected fees claimable for NFT holders. The contract tracks all the revenue generating NFTs in circulation to make sure each NFT is allocated the correct share of available fees.

Marketplace Contract: This is the contract used for selling physical assets from our suppliers’ stock as well as items that users decide to sell themselves in the marketplace. The contract contains the processes for purchasing unminted (supplier items) as well as minted items (TNFTs) and it has special permissions necessary to access functions within the Factory. It also handles initial fractionalization of TNFTs and selling/purchasing FTNFTs. Specifically, the Marketplace Contract relies on the Factory Contract to: Fetch prices Fetch stock Mint the desired TNFT Transfer assets within our ecosystem Pay for storage Lock TNGBL rewards


TNFT Contracts: Tangible 100g Gold Bar TNFT

Tangible 250g Gold Bar TNFT

Tangible 500g Gold Bar TNFT

Tangible 1000g Gold Bar TNFT

Tangible Real Estate TNFT

The TNFT Contract is the smart contract that describes every Tangible category. For each existing or new category on the site, a specific TNFT is deployed. The TNFT Contract contains all the fingerprints and product_ids for that category of assets, which are assigned when the TNFT is minted.

The TNFT Contract also handles details around storage payments and storage timeline expirations. Some product categories (gold bars, watches) require storage costs to be based on a percentage of the assets current value while others (wine) have a fixed storage cost per year. Real estate won’t have any storage costs which is also reflected in the TNFT Contract.

The TNFT Contract also abstracts that products 3,3+ NFT which entitles the holder to claim USDC revenue share and TNGBL token rewards over time.


All of our contracts have been designed to be configurable, they can easily be changed and replaced as the needs of the business evolve over time. The key exceptions to this are:

TNFT Contract These contracts have been designed to cover all potential future cases that may arise and once deployed they cannot be changed without a migration.

Marketplace Contract Once deployed, we cannot alter this contract without a vote through the community DAO. The owner of this contract is the DAO.

Last updated