{"id":18263313,"url":"https://github.com/safe-global/safe-react-apps","last_synced_at":"2025-04-04T08:05:55.206Z","repository":{"id":37409896,"uuid":"238713240","full_name":"safe-global/safe-react-apps","owner":"safe-global","description":"A repository for applications for Safe Web Interface","archived":false,"fork":false,"pushed_at":"2025-03-11T07:18:18.000Z","size":7193,"stargazers_count":107,"open_issues_count":66,"forks_count":81,"subscribers_count":18,"default_branch":"development","last_synced_at":"2025-03-28T07:05:11.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://apps-portal.safe.global/","language":"TypeScript","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.md","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":"2020-02-06T14:55:59.000Z","updated_at":"2025-03-12T10:17:24.000Z","dependencies_parsed_at":"2025-01-11T22:11:41.515Z","dependency_job_id":"a69ae453-a507-4bd1-8f63-a699f96895bb","html_url":"https://github.com/safe-global/safe-react-apps","commit_stats":null,"previous_names":[],"tags_count":119,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-react-apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-react-apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-react-apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safe-global%2Fsafe-react-apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/safe-global","download_url":"https://codeload.github.com/safe-global/safe-react-apps/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142032,"owners_count":20890651,"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:44.604Z","updated_at":"2025-04-04T08:05:55.178Z","avatar_url":"https://github.com/safe-global.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Safe Apps\n\n[![Logo](https://raw.githubusercontent.com/safe-global/safe-react-apps/main/assets/logo.svg)](https://safe.global/)\n\n![license](https://img.shields.io/github/license/safe-global/safe-react-apps)\n![build](https://img.shields.io/github/actions/workflow/status/safe-global/safe-react-apps/deployment.yml?branch=main)\n![tests](https://img.shields.io/github/actions/workflow/status/safe-global/safe-react-apps/safe-apps-e2e.yml?branch=main)\n\nThis project contains apps developed by Gnosis to be consumed by the Safe.\n\n## Install\n\n### Install dependencies\n\n```bash\nyarn install\n```\n\n## Configure\n\nConfigure your `.env` file starting from `.env.example` one. You will find the necessary example on each app folder. Fill the provided example values with the necessary information. Don't forget to add your infura API key.\nIf no example file is provided inside the app folder the `.env` file is not needed.\n\n## Build\n\nWe use yarn workspaces to handle different apps inside this project. All apps are built with this command:\n\n```bash\nyarn build\n```\n\n### Run locally\n\nYou can also run each app locally using the following commands:\n\n```bash\nyarn start:drain-safe\nyarn start:ramp-network\nyarn start:tx-builder\nyarn start:wallet-connect\n```\n\n## Contracts\n\nThis project contains some test contracts to check all solidity types in the `tx-builder` Safe App.\n\nYou can deploy your own tests contracts using the following command:\n\n```bash\nyarn workspace tx-builder contract:deploy-all \u003cnetwork\u003e\n```\n\nyou can invoke a read method using the command line:\n\n```bash\nyarn workspace tx-builder contract:read-method --network \u003cnetwork\u003e --address \u003caddress\u003e --method \u003cmethod\u003e\n```\n\n## Project structure\n\nIn `./apps` you can find one folder per each integration app Gnosis develops.\n\nAlso, each app must expose a `manifest.json` in order to be accepted by the Safe, you can find it in their `./public` folder. Besides the `manifest.json` file we also include the app Icon.\n\nThis will allow the Safe to consume these resources like so: `https://apps-portal.safe.global/tx-builder/manifest.json`\n\n## How to Develop a third-party App\n\nDocumentation about how to develop and integrate your third-party app can be found [here](https://docs.safe.global/safe-core-aa-sdk/safe-apps).\n\n## For developers\n\nInside each app folder you can find a `config-overrides.js` that shows how to modify headers with the next information. This is necessary for your app to work properly.\n\n```\nheaders: {\n    \"Access-Control-Allow-Origin\": \"\\*\",\n    \"Access-Control-Allow-Methods\": \"GET\",\n    \"Access-Control-Allow-Headers\": \"X-Requested-With, content-type, Authorization\"\n},\n```\n\n## Environments\n\nThese apps are deployed in the following environments.\n\n- When the code is merged into `development`: https://safe-apps.dev.5afe.dev\n\n  [Drain Account](https://safe-apps.dev.5afe.dev/drain-safe)\n  | [Ramp Network](https://safe-apps.dev.5afe.dev/ramp-network)\n  | [Transaction Builder](https://safe-apps.dev.5afe.dev/tx-builder)\n  | [WalletConnect](https://safe-apps.dev.5afe.dev/wallet-connect)\n\n- When the code is merged into `main`: https://safe-apps.staging.5afe.dev\n\n  [Drain Account](https://safe-apps.staging.5afe.dev/drain-safe)\n  | [Ramp Network](https://safe-apps.staging.5afe.dev/ramp-network)\n  | [Transaction Builder](https://safe-apps.staging.5afe.dev/tx-builder)\n  | [WalletConnect](https://safe-apps.staging.5afe.dev/wallet-connect)\n\n- When the code is released: https://apps-portal.safe.global\n\n  [Drain Account](https://apps-portal.safe.global/drain-safe)\n  | [Ramp Network](https://apps-portal.safe.global/ramp-network)\n  | [Transaction Builder](https://apps-portal.safe.global/tx-builder)\n  | [WalletConnect](https://apps-portal.safe.global/wallet-connect)\n\n## Run e2e tests\n\nThis repo provides e2e tests using Cypress. Ideally to be used on CI can also be handy to check locally that everything works as expected.\nTo run them it will be necessary to provide the following ENV parameters, that can be filled in a `.env` file at the root of the project\n\nExample:\n\n```\nCYPRESS_WEB_BASE_URL=https://app.safe.global\nCYPRESS_CHAIN_ID=1\nCYPRESS_NETWORK_PREFIX=rin\nCYPRESS_TESTING_SAFE_ADDRESS=0x0000000000000000000000000000000000000000\nCYPRESS_CLIENT_GATEWAY_BASE_URL=https://safe-client.safe.global\n```\n\nMake sure to enter the desired values, for example a Safe address that you own\n\n## Deprecated Apps\n\nLatest code version from deprecated apps can be found in the following links:\n\n- [Compound](https://github.com/safe-global/safe-react-apps/releases/tag/compound-1.1.3)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-react-apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsafe-global%2Fsafe-react-apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafe-global%2Fsafe-react-apps/lists"}