diff --git a/docs/dapp-publishing/publisher-and-app-nft.md b/docs/dapp-publishing/publisher-and-app-nft.md index 3bcbed3..b62d4da 100644 --- a/docs/dapp-publishing/publisher-and-app-nft.md +++ b/docs/dapp-publishing/publisher-and-app-nft.md @@ -1,9 +1,12 @@ # Mint your Publisher and App NFT +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + If this is your first time publishing an app on the dApp Store, then you will need to mint a **Publisher NFT** and an **App NFT**. :::tip -If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing_releases). +If you are looking to publish an update version of an existing app, then skip to [this step](/dapp-publishing/publishing-updates). ::: A Publisher NFT: @@ -58,10 +61,42 @@ To customize this value, use param `-p` or `--priority-fee-lamports + + +By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/). + ```shell npx dapp-store create publisher -k [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create publisher -k -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + :::info This is a **one-time** operation. Once you have created your publisher, the mint address is recorded in your configuration file. @@ -70,10 +105,40 @@ If you have already published an app, you should not mint a new Publisher NFT an ### 2. Create your app NFT + + + +By default the CLI uploads the NFT metadata using [Arweave](https://www.arweave.org/). + ```shell npx dapp-store create app -k [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload the NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create app -k -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + :::info This is a **one-time** operation per app. Once you have created your dApp, the mint address is recorded in your configuration file. ::: diff --git a/docs/dapp-publishing/publishing_releases.md b/docs/dapp-publishing/publishing_releases.md deleted file mode 100644 index 7be41be..0000000 --- a/docs/dapp-publishing/publishing_releases.md +++ /dev/null @@ -1,38 +0,0 @@ -# Publishing subsequent dApp releases - -When you're ready to publish additional releases of your dApp, follow these steps. - -## 1. Create an updated APK file - -Each release of your dApp will require an updated release APK file, signed with the same signing key you used for your initial release. - -It is **very** important that each new APK file include the following updates: - -- The `versionName` value in `build.gradle` must be updated from the previous release. This field can be set to arbitrary values. -- The `versionCode` value in `build.gradle` must be incremented by one monotonically between each update. - -:::tip -You can learn more about APK versioning in the [Android developer docs](https://developer.android.com/studio/publish/versioning). -::: - -## 2. Update your configuration file - -Edit the `release` and `solana_mobile_dapp_publisher_portal` sections of your configuration file to reflect any changes. - -:::tip -Be sure to include `new_in_version` details so users can know what to expect with the update! -::: - -## 3. Mint a new release NFT - -The Solana dApp store requires each new release of your dApp to be minted as a release NFT with all the changes discussed in this section. - -Run the same CLI command as the "Create the release NFT" step from the [Mint a release NFT](submit#mint-a-release-nft) section in these docs. - -## 4. Submit an update to the Publisher Portal - -Submit the update to the Solana dApp Publisher Portal, where the new release will enter a review queue for inclusion in the dApp store catalog: - -``` -npx dapp-store publish update -k --requestor-is-authorized --complies-with-solana-dapp-store-policies -``` diff --git a/docs/dapp-publishing/submit.md b/docs/dapp-publishing/submit.md index 0875f34..8fecc49 100644 --- a/docs/dapp-publishing/submit.md +++ b/docs/dapp-publishing/submit.md @@ -1,5 +1,8 @@ # Submit your dApp release +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + After minting a Publisher and App NFT, you will need to mint a **Release NFT** in order to submit for app review. A Release NFT: @@ -7,14 +10,46 @@ A Release NFT: - Contains metadata that represents a specific release version of an app. - Should be newly created each time an updated app version is submitted. +For reference, you can view this [sample](https://explorer.solana.com/address/EpYpJpFSKX6r5WyAGjhVk2hN8weeJF9XGJHFMvebBW8Q/metadata) of a Release NFT on the Solana Explorer. + ## Mint a release NFT -Using the same wallet that contains your Publisher and App NFTs, run this command. +Using the same wallet that contains your Publisher and App NFTs, run this command to create the Release NFT and upload your app's Android APK. + + + + +By default the CLI uploads both the Android APK and NFT metadata using [Arweave](https://www.arweave.org/). ```shell npx dapp-store create release -k -b [-u ] ``` + + + +Alternatively, you can instruct the CLI to upload both the Android APK and NFT metadata using [Amazon S3](https://aws.amazon.com/s3/), by passing in +the `-s` or `--storage-config` flag. + +```shell +npx dapp-store create release -k -b -s [-u ] +``` + +The `` is are an array of parameters in the expected format: + +``` +s3Params="[\"s3\", \"$releaseAwsAccessKey\", \"$releaseAwsSecretKey\", \"$releaseAwsS3Bucket\", \"$releaseAwsS3Region\"]" +``` + +An example of S3 parameters: + +```shell +-s "[\"s3\", \"TestAccessKey\", \"TestSecret\", \"TestBucket\", \"us-east-1\"]" +``` + + + + **You will repeat this step for each new version of your dApp you want to release**. The mint address of the latest release is recorded in your configuration file. :::tip @@ -29,7 +64,7 @@ Please make sure your network connection is reliable and has a minimum upload sp ## Submit your app -After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog: +After minting a complete set of on-chain NFTs (publisher, dApp, and release), you may choose to submit them to the Solana dApp Publisher Portal, as a candidate for inclusion in the Solana dApp Store catalog. ```shell npx dapp-store publish submit -k -u --requestor-is-authorized --complies-with-solana-dapp-store-policies