Non-fungible tokens (NFTs) are a game-changer for iOS and Android app development. They can upend the economic model of mobile apps, unlock new ownership and investment opportunities for users and content creators, and create new revenue streams for app developers. In the current tech downturn, when it is critical for all mobile development teams to improve cash flow and extend runways, NFTs offer a powerful product-market fit and monetization potential. On top of that, Apple recently updated its App Store guideline to allow NFT features, opening the floodgate for a wave for web3-powered apps.
So, the NFT moment has arrived on iOS and Android. And it is up to you to make the best of it.
At the same time, the NFT space is rapidly changing, and there are not one, but multiple, NFT-related token standards that you should be aware of. Picking the right standard can easily be one of the most consequential early decisions you may take as a web3 mobile developer, because it directly affects the features you offer to customers, as well as the speed and ease of your iterations.
In this post, we break down the pros and cons of the three most important NFT-related token standards as of 2022: ERC-721, ERC-1155, and ERC-3525. Through this analysis, we aim to help you understand the rationale and technical basis behind each token standard and form a clear idea on which standard best fits your iOS and Android apps. We find that ERC-721 and ERC-1155 should be the top choices for web3 mobile developers, though ERC-3525 is worth keeping an eye on.
Token standards: A basis for crypto composability
The core framework to understand ERC-721, ERC-1155, and ERC-3525 is token standards. They are specifications that guide the design, implementation, behavior, and operation of crypto tokens on a given blockchain. To become “standards”, these specifications and guidelines need to gain wide adoption from the developer and user community of a network.
Different blockchains can have their own sets of token standards. In most cases, however, mobile developers can think of token standards in the context of the Ethereum blockchain ecosystem. This is because Ethereum has the most mature development frameworks among all networks. Ethereum also plays a leading role in driving smart contract improvements. Developers tend to propose new token standards on Ethereum first, and these standards would later be propagated to other chains.
On Ethereum, token standards are called ERC (Ethereum Request for Comments). For example, the original NFT token standard, ERC-721, specifies a coding interface with required methods and events (e.g. transfer, balance query, and approval). All ERC standards start out as proposals (Ethereum Improvement Proposals) and go through a rigorous process of discussion, review, and adoption.
The core benefits of token standards are composability and interoperability. Standardizing the functionality of tokens allows developers to build applications on top of them, knowing that contracts can interact with each other on a common interface. For example, a decentralized exchange can build features that work with the ERC-20 standard and be assured that it can transfer and check balances for all cryptocurrency tokens on Ethereum.
Moreover, these standards help save engineering efforts. An iOS developer won’t have to reinvent the wheel every time they want to create a new NFT collection, but can rely on the existing guidelines and best practices found in the NFT token standard. Given that token standards were carefully vetted, engineers can also be relatively confident in their security, speed, and scalability.
Finally, because token standards are interfaces only, they still allow for creativity and diversity in their exact implementations. iOS and Android developers can thus add features to any standards to fit their products, as long as the new features comply with the original requirements.
To sum up, token standards underscore the power of composability on the blockchain. They are powerful accelerators for technical progress, while adhere to the decentralization vision of crypto.
With this perspective, we can now evaluate the three major NFT standards: ERC-721, ERC-1155, and ERC-3525.
ERC-721: Wide adoption and battle-tested implementations, but high transaction costs
ERC-721 is the foundational NFT standard. First proposed by Dapper Labs (the company behind CryptoKitties) in 2018, ERC-721 defines the interface for NFTs as unique, non-interchangeable tokens. Each NFT cannot be replicated, and any observer can query its entire history of transactions and owners.
By 2021, NFTs have taken the world by storm, with a wide variety of applications across gaming, arts, identities, etc. Famous ERC-721 projects include some of the biggest successes in the NFT space, such as Axie Infinity, Bored Ape Yacht Club, and Crypto Punks.
For iOS and Android developers looking to integrate NFTs into their apps, the ERC-721 standard provides clear benefits in 1) wide adoption; 2) existing technological frameworks; and 3) clear adherence to the app stores’ guidelines.
- Wide adoption and support: As the most established standard for NFTs, ERC-721 enjoys incredible adoption from both users and developers. This means that iOS and Android developers building NFTs using the ERC-721 standard would face little to no difficulty integrating them to any NFT marketplace, NFT dapp, or blockchain ecosystem. ERC-721, therefore, has a huge network effect, which makes it very attractive to web3 mobile developers.
- Existing technological frameworks: A consequence of ERC-721’s popularity is the development support and developer communities surrounding it. With the possible exception of ERC-20 (fungible token standard), ERC-721 has better technological infrastructure than any other token standard. There are robust NFT marketplaces, such as OpenSea, which handle hundreds of thousands of transactions each month. Additionally, any mobile developer today can use the OpenSea API or the Dreamerly SDKs to build ERC-721 features directly in their apps.
- Clear adherence to the app stores’ guidelines: In late October 2022, Apple updated its App Store Review Guideline and allowed NFT features such as listing, minting, and in-app purchase. While we believe that this policy should apply to ERC-1155 as well, as of December 2022, the ERC-721 remains the safest bet to comply with the App Store’s rules.
On the other hand, ERC-721 has two disadvantages: high gas fees and limited flexibility.
- High gas fees: ERC-721 has two design choices that result in higher gas fees than ERC-1155 and ERC-3525. One, ERC-721 only supports storing metadata directly on the smart contract for each token ID, which leads to higher deployment costs. Two, ERC-721 lacks the batch transfer feature, increasing the average transaction cost.
- Limited flexibility: ERC-721 is a very well-designed standard for unique tokens, but it lacks some of the flexibility of later standards. For example, the forced uniqueness of ERC-721 tokens may make it more difficult to use as in-game items, many of which tend to have copies (e.g. ten swords of the same type and attributes).
NFT: the building block for a new generation of mobile apps.
ERC-1155: Improved flexibility and efficiency, but weaker/younger infrastructure than ERC-721
ERC-1155, also known as the Multi-Token Standard, aims to manage multiple token types (e.g. fungible tokens, non-fungible tokens, and other types of tokens) within a single contract. Using ERC-1155, iOS and Android developers can benefit from its flexibility and efficiency and open up even more use cases and applications than ERC-721.
Before the ERC-1155 standard, token standards such as ERC-20 (fungible tokens) require that separate contracts be deployed for each token. For ERC-721, each collection of NFTs also needs a separate contract. In contrast, an ERC-1155 contract can control multiple ERC-20 and ERC-721 tokens at the same time.
Additionally, ERC-1155 adds optimization to ERC-721 with the following features:
- Batch transfer, batch balance, and batch approval: The most important feature among these is the batch transfer, as ERC-1155 allows users to transfer multiple NFTs at once. Note that this feature drastically reduces NFT transaction fees, but is not present in ERC-721.
- NFT support: When the supply is just one, an ERC-1155 token functions as an NFT.
- Additional security with safe transfer rules.
We believe that the ERC-1155 offers powerful flexibility and efficiency for iOS and Android developers.
- Flexibility: As we have seen, ERC-1155 is incredibly flexible in its support of multiple types of tokens, resulting in a wide range of possible use cases. For example, an iOS game developer can use the ERC-1155 standard to create a set of 10,000 swords with the same property, or build in-game currencies. Beyond gaming, ERC-1155 can also enable semi-fungible tokens, or SFTs. These are tokens that start as fungible tokens, but later convert to NFTs once redeemed. For example, a movie ticket can be an SFT, as it is exchangeable with another ticket before screening, but turns into a unique collectible afterwards. In our view, these only scratch the surface of the power of ERC-1155, and developers should expect to see even more ERC-1155 applications in the coming years.
- Efficiency: A common developer’s complaint about ERC-721 is the high transaction fees involved in each transaction. The batch transfer feature of ERC-1155 goes a long way in addressing this problem. Interestingly, ERC-1155 also provides a receiver hook feature, which prevents tokens from being stuck in a receiving smart contract.
However, developers building on ERC-1155 should be aware of the relatively weak infrastructure around the standard at the moment. While major marketplaces such as OpenSea and Rarible have accepted ERC-1155, many APIs and SDKs still lack built-in ERC-1155 support. The standard’s flexibility may work against it here, as we expect that it would take some time for best practices to form around all ERC-1155 applications.
For these reasons, we recommend that mobile development teams use ERC-1155 for specialized or advanced features in their apps and factor in engineering and development overhead when doing so. For basic NFT functionalities, ERC-721 remains a safe choice to start with, especially in the development stage. After reaching product-market fit, teams can consider switching to ERC-1155 for cost-effectiveness.
ERC-3525: Innovative financial use cases, but too niche at the moment
The ERC-3525 standard is the youngest of the three, but it offers very innovative financial applications.
Proposed in 2020, ERC-3525 allows developers to create a group of similar, but not identical, tokens. All tokens in the group have the same values for their core attributes (represented in the “slot” property), but can have different values for non-core attributes. In addition, an ERC-3525 contains the “value” property, which is equivalent to the “balance” property of an ERC-20 token. This ensures that the value of two tokens with the same slot can be treated as fungible. If no token shares the same slot, then the token acts as an NFT. As ERC-3525’s authors put it, the standard “has the quantitative features of ERC-20 and qualitative attributes of ERC-721”.
The motivation behind ERC-3525 is to enable a wide range of capital assets, including bonds, insurance policies, vesting plans, futures and options agreements, asset-backed-securities, etc. Indeed, the use of both the “slot” and “balance” property allows for financial functionalities that are simply missing in ERC-20 and ERC-721. For example, if we represent a stock plan as an ERC-721 contract, it would be impossible to transfer a portion of the equity in the contract. This operation, however, would be trivial in ERC-3525.
What should iOS and Android mobile developers think about ERC-3525? In our view:
- ERC-3525 is worth taking a look if you are developing banking or finance apps, but expect push backs from the App Store and Play Store. It is undeniable that ERC-3525 offers very valuable and creative applications in finance and investing. Still, we believe that this standard would appear too risky and speculative to Apple and Google. Unless you are a licensed financial institution, it seems unlikely to us that this standard would be allowed on the app stores in the near future. As of this writing, OpenSea has not added support for ERC-3525.
- If you are developing non-finance apps, ERC-721 and ERC-1155 are good enough. While there are potential applications for ERC-3525 in gaming and other non-financial verticals, the standard is still too niche at the moment, with practically no infrastructure support yet. Even Yan Meng, one of ERC-3525’s authors, suggested that ERC-1155 was simpler and had an easier adoption curve for web3 developers (source). In our estimation, the cost of overcoming technical hurdles likely outweighs the gains from adopting ERC-3525. But, this calculation can change in a few years, if more developers start to adopt the standard.
ERC-721 and ERC-1155 are the most relevant NFT standards for iOS and Android developers
As we have seen, ERC-721, ERC-1155, and ERC-3525 all offer compelling value propositions for mobile developers looking to integrate NFTs into their apps. However, given the practical reality of app store policies and NFT infrastructure, we believe that ERC-721 and ERC-1155 are more relevant than ERC-3525 at the moment.
If you are looking to add standard, well-understood NFT features to your iOS and Android apps, ERC-721 makes the most sense, especially in the development and testing phase. If you want improved flexibility, better optimization, and advanced use cases, you can consider the ERC-1155 standard.
Whether you choose ERC-721 or ERC-1155, Dreamerly offers a suite of easy-to-use, app store-compliant, and fully configurable NFT toolkits for iOS and Android. Our goal is to make it as seamless as possible for you to build the best web3 experiences for your mobile users. So let us know how we can help.
Dreamerly is a suite of easy-to-use, compliance-focused, customizable SDKs and APIs powering NFT features in iOS and Android apps. Our mission is to help mobile developers create amazing web3 experiences for their customers.