# NFT Purchase Flow & Wallets

## Feature Overview

PLAY's proprietary crypto wallet provides a mobile app store-compliant & casual user-friendly solution for leveraging Web3 strategies in your game.&#x20;

PLAY's wallet is non-custodial, which translates to players maintaining exclusive control of their wallet. This also keeps things simple and familiar for players, no prior knowledge of Web3 is required since creation is managed simply by setting a password.

Some existing Web3 games require a wallet at the moment the game is launched, but for certain platforms or audiences, this might be a bit offputting to players looking to try a game for the first time. PLAY's Wallet Module allows you to incorporate wallet creation at the time of your choosing, whether it's at launch or day 7.&#x20;

The only time the wallet is required is when players are purchasing or claiming an NFT virtual item for the first time - giving you the flexibility to determine why, how, and when to prompt players to create a wallet.&#x20;

### Key Benefits

1. **Mobile App Store Compliant:** PLAY's SDK allows you to integrate Web3 on iOS and Android! Check the In-Game Implementation section for an example of a compliant NFT purchasing flow. <br>
2. **Casual User Friendly:** It's not necessary for the player to be versed in Web3! They need only be versed in wanting to play your game or getting that awesome sword. <br>
3. **External Wallet Support:** Players of course have the option to move their NFTs out of PLAY's proprietary wallet, with Metamask being our initially supported option. More options will be added as players or developers request!<br>
4. **One-Time Setup:** The wallet is associated with a player's PLAY account. This means the player will only need to set up their wallet one time, in one game. After that, if they log in to another game in the ecosystem they will automatically have access to their wallet & be able to purchase or claim NFTs with no extra steps. &#x20;

### In-Game Implementation

Developers maintain the ability to determine the best place to trigger account & wallet creation - you know your player funnels best! However, platform-based regulations (in particular on Android and iOS) mean that in order to get your submission accepted you should follow an implementation like the flow shown below.&#x20;

The flow below illustrates how a player can purchase an NFT in your game on a mobile platform. If a player has *an account, a wallet, and enough currency*, they complete their purchase normally. Whether the player has enough currency and is logged in is handled in-game - whether or not the player has a wallet is handled in the oAUTH form.&#x20;

<figure><img src="https://content.gitbook.com/content/68PKOcmo3zY5smGJcTF4/blobs/O7bWrSAcucb5rhIDB9WI/oauth_nft_purchaseflow.png" alt=""><figcaption></figcaption></figure>

In order for players to create a wallet in your game they'll need to set a password. This is included as part of the oAUTH flow in the web form.&#x20;

{% hint style="info" %}
For Web2 titles migrating to Web3, we do recommend keeping it simple like the above example - there were no issues with player onboarding in previous integrations that triggered account and wallet creation on NFT purchase.

Depending on your audience you may choose to implement a bit more tutorialization, see the [NFT Merchandising](https://app.gitbook.com/o/4PlmL79S7tBnyghf6mp7/s/ZNfwIuW6WHuNp2IqjUvJ/~/changes/56/game-design-guides/store#merchandising-nft-virtual-items) section of the Store guide for an example.
{% endhint %}
