{"id":29103298,"url":"https://github.com/callstack/web3-react-native-siwe","last_synced_at":"2025-09-19T20:54:16.080Z","repository":{"id":246218122,"uuid":"820444205","full_name":"callstack/web3-react-native-siwe","owner":"callstack","description":"Sign-In With Ethereum (SIWE) implementation in React Native","archived":false,"fork":false,"pushed_at":"2024-07-23T17:27:12.000Z","size":10308,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-18T23:58:20.965Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-26T13:31:40.000Z","updated_at":"2025-04-20T13:22:15.000Z","dependencies_parsed_at":"2024-07-08T11:39:07.376Z","dependency_job_id":null,"html_url":"https://github.com/callstack/web3-react-native-siwe","commit_stats":null,"previous_names":["callstack/web3-react-native-siwe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/callstack/web3-react-native-siwe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fweb3-react-native-siwe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fweb3-react-native-siwe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fweb3-react-native-siwe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fweb3-react-native-siwe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callstack","download_url":"https://codeload.github.com/callstack/web3-react-native-siwe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callstack%2Fweb3-react-native-siwe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275998875,"owners_count":25567392,"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","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-06-28T23:41:45.884Z","updated_at":"2025-09-19T20:54:16.074Z","avatar_url":"https://github.com/callstack.png","language":"TypeScript","readme":"# web3-react-native-siwe\n\nThis repository showcases how to configure Sign-In With Ethereum (SIWE) on a React Native app, while validating the SIWE message in a Node.js backend.\n\nThe React Native project is built with [Expo](https://expo.dev/), [Wagmi](https://wagmi.sh/), [Viem](https://viem.sh/) and [WalletConnect AppKit](https://docs.walletconnect.com/appkit/overview). The app asks the backend to validate the SIWE message and navigates to an authenticated route using Expo Router.\n\nBackend nonce generation and SIWE validation is also done using Viem.\n\nTwo implementations are available to test:\n\n- Automatically through WalletConnect AppKit: after connecting the wallet, a WalletConnect modal will appear asking to sign in. This uses the configuration in `/mobile/utils/siweConfig.ts`\n- Manually through Viem: if the WalletConnect modal is dismissed, a green button appears to Sign In With Ethereum manually. This uses Viem manually, in `/mobile/app/index.tsx`\n\n![demo.gif](demo.gif)\n\n## Requirements\n\n- [Expo environment setup](https://docs.expo.dev/get-started/installation/#requirements) (Node.js, Git, Watchman)\n- A [Wallet Connect Cloud](https://cloud.walletconnect.com/sign-in) project ID\n- Expo Go app installed in your smartphone\n- One or more web3 wallets installed in your smartphone (e.g. MetaMask, Rainbow Wallet, Trust Wallet, etc)\n\n## Running the application\n\nRun `npm start` on both the `/backend` and `/mobile` directories.\n\n### Backend\n\n- `cd backend`\n- `npm install`\n- `npm start`\n\n### Mobile\n\n- `cd mobile`\n- Rename `.env.example` to `.env` and fill in your Wallet Connect Cloud project ID, and your computer's local IP\n- `npm install`\n- `npm start`\n- Open Expo Go app in your smartphone\n- If your smartphone is in the same network as your computer, the local dev server should appear as the first option. If it doesn't, use the app to scan the QR Code presented in the terminal\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstack%2Fweb3-react-native-siwe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallstack%2Fweb3-react-native-siwe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallstack%2Fweb3-react-native-siwe/lists"}