Comment on page

OFT (V1) vs OFTV2 - Which should I use?

This page explains the differences between OFT/OFTV2 and when to use each one.

When to use OFT (v1)

Our Omnichain Fungible Token (OFT) was our first implementation of our standard. This OFT was first used in projects such as Stargate's token. The standard was written to support EVM chains only. If you are looking to only support EVMs now and forever then OFT (V1) is for you.

When to use OFTV2

What if you want to build an Omnichain Fungible Token that supports EVMs and non EVMs (eg. Aptos)? In this case you should use our OFTV2 which supports both. This version has fees, shared decimals, and composability built in. This version of OFTV2 is currently being used in projects such as BTCb.

What are the differences between the two versions?

The main difference between the two versions comes from the limitations of the Non EVMs. Non EVM chains such as Aptos/Solana use Uint64 to represent balance. To account for this, OFTV2 uses Shared Decimals for value transfers to normalize the data type difference. It is recommended to use a smaller shared decimal point on all chains so that your token can have a larger balance. For example, if the decimal point is 18, then you can not have more than approximately 18 * 10^18 tokens bounded by the uint64.max.
OFTV2 is intended to be used with no more than 10 shared decimals