Guide to IAP in Web3

We put together this summary of the App Store and Google Play Store guidelines that have been affecting Web3 businesses. The inspiration and primary source for this research is the discussion we’ve been having in the mobile Web3 Telegram group.  

We hope this helps new members get caught up and that it will serve as a handy guide for everyone else as we monitor the impact .

Given that some of this information is sensitive, we ask that you do not share this guide with anyone outside the group. Search engine indexing is turned off for this page and it is not linked anywhere on our site.

If you find this valuable, let us know and we will keep it up to date.

App Store Guidelines relevant to Web3

Guideline 3.1.1 - If you want to unlock features or functionality within your app, you must use in-app purchase. Apps may not use their own mechanisms to unlock content or functionality, such as license keys, augmented reality markers, QR codes, cryptocurrencies and cryptocurrency wallets, etc. Apps and their metadata may not include buttons, external links, or other calls to action that direct customers to purchasing mechanisms other than in-app purchase, except as set forth in 3.1.3(a).

Guideline 3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired in your app on other platforms or your web site, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app.

Guideline 3.1.5 (iii) Exchanges: Apps may facilitate transactions or transmissions of cryptocurrency on an approved exchange, provided they are offered only in countries or regions where the app has appropriate licensing and permissions to provide a cryptocurrency exchange.

https://developer.apple.com/app-store/review/guidelines/#cryptocurrencies


Google Play Store Guidelines relevant to Web3

Play-distributed apps requiring or accepting payment for access to in-app features or services, including any app functionality, digital content or goods (collectively “in-app purchases”), must use Google Play’s billing system for those transactions unless Section 3 or Section 8 applies. Examples of app features or services requiring use of Google Play's billing system include, but are not limited to, in-app purchases of items such as virtual currencies, extra lives, additional playtime, add-on items, characters and avatars.

Other than the conditions described in Section 3 and Section 8, apps may not lead users to a  payment method other than Google Play's billing system. This prohibition includes, but is not limited to, leading users to other payment methods via:

- An app’s listing in Google Play;
- In-app promotions related to purchasable content;
- In-app webviews, buttons, links, messaging, advertisements or other calls to action;
- In-app user interface flows, including account creation or sign-up flows, that lead users from an app to a payment method other than Google Play's billing system as part of those flows.

https://support.google.com/googleplay/android-developer/answer/9858738

Web3 Wallets

Coinbase Wallet

On December 1, 2022, an update for Coinbase Wallet was blocked by Apple due to the requirement for gas fees to be processed through in-app purchases (IAPs) when sending NFTs. At this time, this is not possible, and as a result, users are no longer able to send NFTs using the Coinbase Wallet. Other wallets and dapps have had to remove similar features.Interestingly, if you download the Coinbase Wallet from the Google Play Store, you will still have the ability to buy and sell NFTs. Due to these restrictions, Coinbase Wallet has been forced to update its language and feature descriptions across both apps. The version of the app available on the Apple App Store promotes viewing and managing NFTs, while the version on the Google Play Store promotes buying and selling NFTs.

https://twitter.com/CoinbaseWallet/status/1598354820905197576

1inch

1inch also had a release blocked last year due to it’s NFT-related features. 1inch has since removed direct links to marketplaces and any mention of the word “Buy” in their UI. Like Coinbase, 1inch uses different copy and feature descriptions for their App Store and Google Play apps.

In addition, App Store Guideline 3.1.5, states that apps can facilitate transactions or transmissions of cryptocurrency on an approved exchange, provided they are offered only in countries or regions where the app has appropriate licensing and to operate a cryptocurrency exchange.  Instead, 1inch users can navigate to the integrated Web3 browser within the 1inch  app, connect their wallet, and swap as desired.

1inch iOS app interstitial showing how to trade on their DEX via the integrated Web3 browser

Zerion

Zerion, a Web3 DeFi and NFT wallet, was at one point blocked from releasing an update by Apple for allowing users to view NFTs. However, the app was approved after adding the following information to the app description: "We do not sell NFTs."

Other

Atomic Wallet has had to remove its exchange service in compliance with this guideline on their iOS app, but the service remains available on the Google Play Store app.

Essentials Wallet by Elastos has also been rejected by Apple for using a third-party dex API for token swaps.

Ambire Wallet, a wallet currently only available on web, has been rejected by Apple claiming that they need an exchange license to operate

Marketplaces and Gaming

OpenSea

OpenSea for iOS does not include the ability to buy or sell NFTs. The is done to comply with two Apple guidelines: the restriction on opening webviews for the purposes of directing users to external sites to make NFT purchases; and the requirement to provide an equivalent In-App Purchase method for any products that are accessible via an iOS app,

Before the update, users had the ability to access the full functionality of OpenSea's marketplace through the iOS app. They were able to "view NFT on OpenSea" by opening a webview of within the in-app browser. This feature allowed users to connect their wallets and purchase NFTs in a webview from within the OpenSea app.

OpenSea for Android still includes the ability to view NFTs on the OpenSea website and make purchases from within that same webview.

Magic Eden

Magic Eden had a build rejected under App Store guideline 3.1.3(b). Initially, they were told that it was not possible to showcase NFTs that could be purchased elsewhere, without having an equivalent purchase option via IAP. Magic Eden was able to secure approval by App Store reviewers by clearly stating that the NFTs displayed on the profile page were stored in “third-party services" (wallets) and that they do not have control over the movement and storage of assets.

It is worth noting that Magic Eden, unlike OpenSea, does not offer the option to purchase NFTs on both the Apple App Store and Google Play Store. They have chosen to create consistent experiences across both ecosystems, making the web app the only way to purchase NFTs on Magic Eden.

Rarible

Rarible, like Magic Eden, encountered difficulties with guideline 3.1.3(b). App Store reviewers noted that since users could purchase NFTs using the Rarible web app, Rarible was required to offer an equivalent purchase option through IAP. As a result, NFTs on Rarible can now only be viewed on both iOS and Android, with transactions such as sending or buying needing to be done through the web app.

Other

King Rabbit, a game publisher, updated the terminology on their website to "View on Rarible" instead of "Purchase on Rarible" to comply with Apple's guidelines.
KingRabbit.co

The Feed team faced challenges when their app was pushed into review for mentioning NFTs, but they were able to resubmit the app without mentioning NFTs and it was approved without removing any NFT gating functionality.
Urfeed.xyz