{"id":18263319,"url":"https://github.com/safe-global/safe-apps-list","last_synced_at":"2025-04-04T20:31:06.634Z","repository":{"id":39001280,"uuid":"354861654","full_name":"safe-global/safe-apps-list","owner":"safe-global","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-11T10:08:00.000Z","size":170,"stargazers_count":22,"open_issues_count":8,"forks_count":34,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-02T11:09:14.282Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/safe-global.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-05T14:27:37.000Z","updated_at":"2025-01-20T09:38:28.000Z","dependencies_parsed_at":"2024-01-08T14:49:54.031Z","dependency_job_id":"764996cd-8c8c-4fe3-afc7-e5d71c3a8cd1","html_url":"https://github.com/safe-global/safe-apps-list","commit_stats":null,"previous_names":["safe-global/safe-apps-list"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-apps-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-apps-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-apps-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-apps-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/safe-global","download_url":"https://codeload.github.com/safe-global/safe-apps-list/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247246284,"owners_count":20907767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:10:46.585Z","updated_at":"2025-04-04T20:31:06.213Z","avatar_url":"https://github.com/safe-global.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ‼️ New submission proccess\nPlease note that from 🗓️ **01.01.24**, new Safe App submissions will first have to go through a [new pre-assessment form](https://forms.gle/PcDcaVx715LKrrQs8).\n\nDo not create GitHub issues directly without submitting that from, otherwise they will not be accepted. Thank you!\n\n---\n\n# Releasing your Safe App\n\nHere are some details about the release process for Safe Apps.\n\n## Get your Safe Apps into the hands of users\n\nOnce you finish developing and testing your Safe App, your users can test it by opening the link to the hosted Safe App and adding 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.\n\n## Get your Safe App listed in Safe\\{Wallet\\}\n\nPlease, remember that when listing your Safe App for the first time you need to fill the [pre-assessment form](https://forms.gle/PcDcaVx715LKrrQs8) before continuing the process.\n\nOnce you get response from the team, you need to make sure your app meets the following criteria:\n\n### Smart contracts must be audited\n\nSecurity is the top priority for Safe. Please provide an external audit result document if the Safe App includes smart contracts. If a third party created the smart contracts, ensure they are audited.\n\n### Your Safe App must include a manifest\n\nThere must be a `manifest.json` at the root directory containing the following data:\n\n`\"name\": \"Name of your Safe App\"`\n\nYour Safe App's name needs to have 50 characters maximum.\n\n`\"iconPath\": \"your_logo.svg\"`\n\nA relative file path to your App's logo. The icon must be a square SVG image of at least 128 by 128 pixels.\n\n`\"description\": \"This is the Safe app description.\"`\n\nFew sentences describing your application, a maximum of 200 characters\n\nYou 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/).\n\nRemember that **CORS** needs to be configured correctly on the `manifest.json` so we can fetch the information as [mentioned here](./get-started.md#cors).\n\n### The app auto connects to the Safe\n\nWhen the 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.\n\n### The Safe team has reviewed the Safe App\n\nThe requirement doesn't apply for battle-tested applications hosted on the same domain as the main dapp.\n\nWhile 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. 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.\n\nWe 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 walk-throughs are also welcome.\n\n### Help us decode your Safe App transactions\n\nWe want to display interactions with Safe Apps as human-readable as possible. To do this, we need the ABI of the contracts 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.\n\nAlternatively, 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.\n\n## Official launch and beyond\n\nAfter 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.\n\nAt 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).\n\nWhile developing your Safe App, you can use [our production interface](https://app.safe.global) to test it. Some testnets like Sepolia are also available.\n\nOnce 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:\n\n![side-bar-menu](./assets/side-bar-menu.png)\n\nUse the `Add custom app` button and add your app using a link:\n\n![add-custom-app](./assets/add-custom-app.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-apps-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsafe-global%2Fsafe-apps-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-apps-list/lists"}