Skip to content

Commit

Permalink
Update release.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tanay1337 authored Oct 27, 2023
1 parent 82b5bd1 commit a46d8cf
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions safe-apps/release.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,70 @@
# Releasing your Safe App

### Release process
## Release process

#### How to get your Safe Apps into the hands of users
### Get your Safe Apps into the hands of users

As soon as you finish developing and testing your Safe App, you can already let some actual users test it by simply sending them the link to the hosted Safe App and asking them to add it as a Custom App. [This guide](https://help.safe.global/en/articles/40859-add-a-custom-safe-app) explains how to add custom apps.
As soon as you finish developing and testing your Safe App, you can let users test it by sending them the link to the hosted Safe App and asking them to add it as a Custom App. [This guide](https://help.safe.global/en/articles/40859-add-a-custom-safe-app) explains how to add custom apps.

#### Get your Safe App listed in the Safe
### Get your Safe App listed in Safe{Wallet}

{% hint style="info" %} There is currently a delay of up to three months for the Safe App review process. {% endhint %}

Check failure on line 11 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L11

[write-good.ThereIs] Don't start a sentence with 'There is'.
Raw output
{"message": "[write-good.ThereIs] Don't start a sentence with 'There is'.", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 11, "column": 25}}}, "severity": "ERROR"}

If you would like your Safe App to appear in the Safe, it must meet the following criteria:

**1) Smart contracts must be audited**
#### Smart contracts must be audited

Security is the top priority for Safe. If the Safe App includes smart contracts of its own, please provide an external audit result document. If a third party created the smart contracts, ensure they are properly audited.

Check failure on line 17 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L17

[Microsoft.Contractions] Use 'they're' instead of 'they are'.
Raw output
{"message": "[Microsoft.Contractions] Use 'they're' instead of 'they are'.", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 17, "column": 196}}}, "severity": "ERROR"}

Security it's a top priority. If your Safe App includes smart contracts of your own you should provide an external audit result document. If smart contracts were created by a 3rd party you should be using smart contracts that are properly audited.
#### Your Safe App must include a manifest

**2) Your Safe App must include a manifest.json file at the root containing the following data:**
There should be a `manifest.json` at the root directory containing the following data:

`"name": "Name of your Safe App"`

Your Safe App's name, maximum 50 characters.
Your Safe App's name should be a maximum of 50 characters.

`"iconPath": "your_logo.svg"`

A relative file path to your App's logo. The icon must be a square SVG image of at least 128 by 128 pixels.

`"description": "This is the Safe app description."`

Few sentences describing your application, maximum 200 characters
Few sentences describing your application, a maximum of 200 characters

You can find an example manifest file on [Github](https://github.com/safe-global/safe-apps-sdk/blob/main/packages/cra-template-safe-app/template/public/manifest.json). In addition, you can find an example Safe App on IPFS [here](https://ipfs.io/ipfs/QmTgnb1J9FDR9gimptzvaEiNa25s92iQy37GyqYfwZw8Aj/).
You can find an example manifest file on [GitHub](https://github.com/safe-global/safe-apps-sdk/blob/main/packages/cra-template-safe-app/template/public/manifest.json). You can also find an example Safe App on IPFS [here](https://ipfs.io/ipfs/QmTgnb1J9FDR9gimptzvaEiNa25s92iQy37GyqYfwZw8Aj/).

Remember that **CORS** should be configured correctly on the `manifest.json` so we can fetch the information as [mentioned here](./get-started.md#cors).

**3) The app auto-connects to the Safe**
#### The app auto-connects to the Safe

Check failure on line 39 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L39

[Microsoft.Auto] In general, don't hyphenate 'auto-connects'.
Raw output
{"message": "[Microsoft.Auto] In general, don't hyphenate 'auto-connects'.", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 39, "column": 14}}}, "severity": "ERROR"}

When an user opens the app, it should automatically select the Safe as a wallet. Ensure to check the case if the user previously opened the app outside of the Safe with another wallet.
When a user opens the app, it should automatically select the Safe as a wallet. Ensure to check the case if the user previously opened the app outside of the Safe with another wallet.

**4) The Safe team has reviewed the Safe App**
#### The Safe team has reviewed the Safe App

The requirement doesn't apply for battle-tested applications hosted on the same domain like the main dApp.
The requirement doesn't apply for battle-tested applications hosted on the same domain as the main dapp.

While we won't be able to do a proper audit for your Safe App, we still would like to look at the source code to raise issues or suggest improvements. So whether your Safe App is open or closed source, please send us either a **link to the public repo or an invitation to the private code repository**.
While we won't be able to do a proper audit for your Safe App, we still would like to look at the source code to raise issues or suggest improvements. So whether your Safe App is open or closed source, please send us either a link to the public repository or an invitation to the private repository.

Check failure on line 47 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L47

[write-good.So] Don't start a sentence with 'So '.
Raw output
{"message": "[write-good.So] Don't start a sentence with 'So '.", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 47, "column": 152}}}, "severity": "ERROR"}

We also would like to make a rough functional review of the App, so please provide us with a **high-level test plan/feature list** that allows our QA team to make sure everything works as intended in production. Video walkthroughs are also welcome.
We also would like to make a rough functional review of the App, so please provide us with a high-level test plan/feature list that allows our QA team to ensure everything works as intended in production. Video walkthroughs are also welcome.

Check failure on line 49 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L49

[Vale.Spelling] Did you really mean 'walkthroughs'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'walkthroughs'?", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 49, "column": 212}}}, "severity": "ERROR"}

**5) Help us decode your Safe App transactions**
#### Help us decode your Safe App transactions

We want to display interactions with Safe Apps as human-readable as possible. To do this, we need the contract ABI of the contracts that your Safe App interacts with. The ideal way to do this would be to verify your contracts via [Sourcify](https://github.com/ethereum/sourcify), which we can leverage to decode transactions interacting with those contracts.

Alternatively, you can provide us with the ABIs as JSON files or the links to the verified contracts on Etherscan, so we can implement transaction decoding for your Safe App interactions.
Alternatively, you can provide us with the ABIs as JSON files or the links to the verified contracts on Etherscan so we can implement transaction decoding for your Safe App interactions.

**Create an issue in our repository once you've verified that your app meets these requirements:** [https://github.com/5afe/safe-apps-list](https://github.com/5afe/safe-apps-list)
Create an issue in our [repository](https://github.com/5afe/safe-apps-list) once you've verified that your app meets these requirements.

#### The official launch and beyond
### Official launch and beyond

After we have reviewed and integrated your Safe App, the App will first be available in the [staging environment](https://safe-wallet-web.staging.5afe.dev) of the Safe for you to do a final review. We would then approach you to coordinate the launch and a joint announcement.

Check failure on line 61 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L61

[Microsoft.Contractions] Use 'we've' instead of 'we have'.
Raw output
{"message": "[Microsoft.Contractions] Use 'we've' instead of 'we have'.", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 61, "column": 7}}}, "severity": "ERROR"}

At any point after the launch, if you or your users encounter issues with the Safe App, or you want to release an update to an existing Safe App, please get in touch with us via [Discord](https://chat.safe.global).
At any point after the launch, if you or your users encounter issues with the Safe App or want to release an update to an existing Safe App, please contact us via [Discord](https://chat.safe.global).

While developing your Safe App you can directly use [our production interface](https://app.safe.global) for testing it. Some testnets like Goerli are also available there.
While developing your Safe App, you can use [our production interface](https://app.safe.global) to test it. Some testnets like Goerli are also available.

Check failure on line 65 in safe-apps/release.md

View workflow job for this annotation

GitHub Actions / vale

[vale] safe-apps/release.md#L65

[Vale.Spelling] Did you really mean 'testnets'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'testnets'?", "location": {"path": "safe-apps/release.md", "range": {"start": {"line": 65, "column": 114}}}, "severity": "ERROR"}

Once your app is live, even if you are running it locally, you can import it to the Safe application as a custom app. To do so, you should select the "Apps" tab:
Once your app is live, even if you run it locally, you can import it to the Safe application as a custom app. To do so, you should select the "Apps" tab:

<figure><img src="../../.gitbook/assets/side-bar-menu.png" width="100%" alt="" /></figure>

Expand Down

0 comments on commit a46d8cf

Please sign in to comment.