{"id":21850489,"url":"https://github.com/circlefin/w3s-digital-wallet-ios-sample-app","last_synced_at":"2025-04-14T15:02:03.534Z","repository":{"id":218746399,"uuid":"715241220","full_name":"circlefin/w3s-digital-wallet-iOS-sample-app","owner":"circlefin","description":"A demonstration of integrating social sign-in functionality with web3 wallet generation.","archived":false,"fork":false,"pushed_at":"2024-05-10T00:15:37.000Z","size":5907,"stargazers_count":14,"open_issues_count":4,"forks_count":11,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-28T03:51:09.431Z","etag":null,"topics":["ios","web3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/circlefin.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-06T18:44:49.000Z","updated_at":"2025-02-06T13:42:38.000Z","dependencies_parsed_at":"2025-04-14T15:00:56.507Z","dependency_job_id":null,"html_url":"https://github.com/circlefin/w3s-digital-wallet-iOS-sample-app","commit_stats":null,"previous_names":["circlefin/w3s-digital-wallet-ios-sample-app"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fw3s-digital-wallet-iOS-sample-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fw3s-digital-wallet-iOS-sample-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fw3s-digital-wallet-iOS-sample-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fw3s-digital-wallet-iOS-sample-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circlefin","download_url":"https://codeload.github.com/circlefin/w3s-digital-wallet-iOS-sample-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248903635,"owners_count":21180828,"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":["ios","web3"],"created_at":"2024-11-28T00:17:48.602Z","updated_at":"2025-04-14T15:02:03.494Z","avatar_url":"https://github.com/circlefin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nThe Digital Wallet App serves as a demonstration of integrating social sign-in functionality with web3 wallet generation. Upon a successful user authentication, the app automatically generates a web3 wallet, linking it to the authenticated user account. Beyond this, the app supports token transaction fuctionality, allowing users to send and receive tokens, coupled with a fee estimator for customizing transaction speeds.\n\n### Prerequisites\n\n* Sign up for the Circle Developer account here: https://console.circle.com/signup.\n* Make sure you have [Xcode](https://apps.apple.com/tw/app/xcode/id497799835?mt=12) installed for iOS app developement.\n* Ensure you have [Node.js](https://nodejs.org/en/download) and [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) installed.\n* Ensure you have [CocoaPods](https://formulae.brew.sh/formula/cocoapods) installed for managing iOS dependencies\n\n### Setup Instructions\n#### Frontend(iOS)\n1. Navigate to the iOS App Directory\n    ```bash\n    cd frontend/w3s-ios-sample-app-wallets\n    ```\n\n2. Install the Dependencies\n   Run the following command to install the `CircleProgrammableWalletSDK`:\n    ```bash\n    pod install\n    ```\n\n3. Open the App in Xcode\n   Once the dependencies are installed, open the `.xcworkspace` file:\n   ```bash\n    open w3s-ios-sample-app-wallets.xcworkspace\n    ```\n\n4. Insert your App ID\n   In Xcode, navigate to the `ContentView` file inside the `Views` folder. Replace the placeholder with your actual App ID obtained from the web3 developer console. \n\n5. Set Up Google Sign-In\n   a. Download the `GoogleService-Info.plist`\n   Navigate to the Google Developers Console, create or select a project, then enable the Google Sign-In API. Once done, you will be prompted to donwload a configuration file: `GoogleService-Info.plist`.\n   b. Add `GoogleService-Info.plist` to your Xcode project.\n   Ensure that the file is included in your app target.\n   c. Configure URL Schemes\n   Open the `Info.plist` in your Xcode project and look for the `URL Types` key. Add a new item with your reversed client ID from the `GoogleService-Info.plist`. This step ensures that after the sign-in, the app will handle the redirect back to your application correctly.\n\n#### Backend(NextJS)\n1. Navigate to the Backend Directory\n    ```bash\n    cd backend\n    ```\n\n2. Install the Dependencies\n   Install the required packages for the backend using the following command:\n    ```bash\n    mpn install\n    ```\n\n3. Configure Environment Variables\n   In the root of the backend directory, create a `.env` file:\n   ```bash\n    touch .env\n    ```\n\n    Populate the `.env` file with the following content:\n    ```bash\n    CIRCLE_API_KEY=\"YOUR_API_KEY_HERE\"\n    CIRCLE_BASE_URL=\"https://api.circle.com/v1/w3s\"\n    ```\n    Ensure you replace `YOUR_API_KEY_HERE` with your actual API key.\n\n## Running the App\n\n### Frontend (iOS)\n\n1. Run the App on a Simulator or Device\n   With the `.xcworkspace` open in Xcode, select your target simulator or device, then press the play button to compile and run the app.\n\n### Backend(NextJS)\n\n1. Start the NextJS Server\n   Initiate the backend server using:\n   ```bash\n    npm run dev\n    ```\n\nIf you have questions, comments, or need help with code, we're here to help:\n\n* on [Discord](https://discord.com/invite/buildoncircle)\n* on Twitter at [@BuildOnCircle](https://twitter.com/BuildOnCircle)\n\nCheck out our [developer docs](https://developers.circle.com/w3s/docs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fw3s-digital-wallet-ios-sample-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcirclefin%2Fw3s-digital-wallet-ios-sample-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fw3s-digital-wallet-ios-sample-app/lists"}