{"id":13551576,"url":"https://github.com/RootSoft/walletconnect-dart-sdk","last_synced_at":"2025-04-03T02:31:04.723Z","repository":{"id":37909331,"uuid":"416297050","full_name":"RootSoft/walletconnect-dart-sdk","owner":"RootSoft","description":"Open protocol for connecting dApps to mobile wallets with QR code scanning or deep linking.","archived":false,"fork":false,"pushed_at":"2023-02-28T03:07:39.000Z","size":258,"stargazers_count":105,"open_issues_count":38,"forks_count":63,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T12:03:35.109Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/RootSoft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-10-12T10:51:05.000Z","updated_at":"2025-01-29T07:15:50.000Z","dependencies_parsed_at":"2024-06-18T18:22:45.050Z","dependency_job_id":"dbae8316-0437-4892-892b-90280d1284f6","html_url":"https://github.com/RootSoft/walletconnect-dart-sdk","commit_stats":{"total_commits":40,"total_committers":9,"mean_commits":4.444444444444445,"dds":0.625,"last_synced_commit":"f37e83b02a6a9d7e6b5e0ebf6c2332cb388587b9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RootSoft%2Fwalletconnect-dart-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RootSoft%2Fwalletconnect-dart-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RootSoft%2Fwalletconnect-dart-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RootSoft%2Fwalletconnect-dart-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RootSoft","download_url":"https://codeload.github.com/RootSoft/walletconnect-dart-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246811310,"owners_count":20837752,"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-08-01T12:01:50.657Z","updated_at":"2025-04-03T02:31:04.691Z","avatar_url":"https://github.com/RootSoft.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e \n\u003cimg src=\"https://eidoohelp.zendesk.com/hc/article_attachments/360071262952/mceclip0.png\"\u003e\n\u003c/p\u003e\n\n[![pub.dev][pub-dev-shield]][pub-dev-url]\n[![Effective Dart][effective-dart-shield]][effective-dart-url]\n[![Stars][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\nWalletConnect is an open source protocol for connecting decentralised applications to mobile wallets\nwith QR code scanning or deep linking. A user can interact securely with any Dapp from their mobile\nphone, making WalletConnect wallets a safer choice compared to desktop or browser extension wallets.\n\n## Introduction\nWalletConnect connects mobile \u0026 web applications to supported mobile wallets. The WalletConnect session is started by scanning a QR code (desktop) or by clicking an application deep link (mobile).\n\nWalletConnect-Dart-SDK is a community SDK and port of the official WalletConnect-monorepo.\n\nWalletConnect-Dart currently supports:\n* Algorand\n* Ethereum\n\nYou can easily add your own network by extending from `WalletConnectProvider` and implementing the required methods using `sendCustomRequest`.\nAn example from Binance Smart Chain can be found [here](https://docs.binance.org/walletconnect.html).\nFor more information regarding the implementation, check out `EthereumWalletConnectProvider` and `AlgorandWalletConnectProvider`.\n\n**WalletConnect lets you build:**\n- Decentralized web applications and display QR codes with [qr_flutter](https://pub.dev/packages/qr_flutter)\n- Mobile dApps with deep linking using [url_launcher](https://pub.dev/packages/url_launcher)\n- Cross-platform wallets\n\nOnce installed, you can simply connect your application to a wallet.\n\n```dart\n// Create a connector\nfinal connector = WalletConnect(\n    bridge: 'https://bridge.walletconnect.org',\n    clientMeta: PeerMeta(\n      name: 'WalletConnect',\n      description: 'WalletConnect Developer App',\n      url: 'https://walletconnect.org',\n      icons: [\n        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'\n      ],\n    ),\n);\n```\n\n## Usage\n\n### Dapps\n\n**Initiate connection**\n\n```dart\n// Create a connector\nfinal connector = WalletConnect(\n    bridge: 'https://bridge.walletconnect.org',\n    clientMeta: PeerMeta(\n      name: 'WalletConnect',\n      description: 'WalletConnect Developer App',\n      url: 'https://walletconnect.org',\n      icons: [\n        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'\n      ],\n    ),\n);\n\n// Subscribe to events\nconnector.on('connect', (session) =\u003e print(session));\nconnector.on('session_update', (payload) =\u003e print(payload));\nconnector.on('disconnect', (session) =\u003e print(session));\n\n// Create a new session\nif (!connector.connected) {\n    final session = await connector.createSession(\n        chainId: 4160,\n        onDisplayUri: (uri) =\u003e print(uri),\n    );\n}\n```\n\n**Sign transaction**\n\n```dart\nfinal sender = Address.fromAlgorandAddress(address: session.accounts[0]);\n\n// Fetch the suggested transaction params\nfinal params = await algorand.getSuggestedTransactionParams();\n\n// Build the transaction\nfinal tx = await (PaymentTransactionBuilder()\n  ..sender = sender\n  ..noteText = 'Signed with WalletConnect'\n  ..amount = Algo.toMicroAlgos(0.0001)\n  ..receiver = sender\n  ..suggestedParams = params)\n    .build();\n\n// Sign the transaction\nfinal signedBytes = await provider.signTransaction(\n    tx.toBytes(),\n    params: {\n    'message': 'Optional description message',\n    },\n);\n\n// Broadcast the transaction\nfinal txId = await algorand.sendRawTransactions(\n    signedBytes,\n    waitForConfirmation: true,\n);\n\n// Kill the session\nconnector.killSession();\n```\n\n### Wallets\n\n**Initiate connection**\n\n```dart\n// Create a connector\nfinal connector = WalletConnect(\n    uri: 'wc:8a5e5bdc-a0e4-47...TJRNmhWJmoxdFo6UDk2WlhaOyQ5N0U=',\n    clientMeta: PeerMeta(\n      name: 'WalletConnect',\n      description: 'WalletConnect Developer App',\n      url: 'https://walletconnect.org',\n      icons: [\n        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'\n      ],\n    ),\n);\n\n// Subscribe to events\nconnector.on('connect', (session) =\u003e print(session));\nconnector.on('session_request', (payload) =\u003e print(payload));\nconnector.on('disconnect', (session) =\u003e print(session));\n```\n\n**Manage connection**\n\n```dart\n// Approve session\nawait connector.approveSession(chainId: 4160, accounts: ['0x4292...931B3']);\n\n// Reject session\nawait connector.rejectSession(message: 'Optional error message');\n\n// Update session\nawait connector.updateSession(SessionStatus(chainId: 4000, accounts: ['0x4292...931B3']));\n```\n\n**Kill session**\n\n```dart\nawait connector.killSession();\n```\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Contributing \u0026 Pull Requests\nFeel free to send pull requests.\n\nPlease see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.\n\n## Credits\n\n- [Tomas Verhelst](https://github.com/rootsoft)\n- [Tom Friml](https://github.com/3ph)\n- [juampiq6](https://github.com/juampiq6)  \n- [All Contributors](../../contributors)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[pub-dev-shield]: https://img.shields.io/pub/v/walletconnect_dart?style=for-the-badge\n[pub-dev-url]: https://pub.dev/packages/walletconnect_dart\n[effective-dart-shield]: https://img.shields.io/badge/style-effective_dart-40c4ff.svg?style=for-the-badge\n[effective-dart-url]: https://github.com/tenhobi/effective_dart\n[stars-shield]: https://img.shields.io/github/stars/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge\u0026logo=github\u0026colorB=deeppink\u0026label=stars\n[stars-url]: https://packagist.org/packages/rootsoft/walletconnect-dart-sdk\n[issues-shield]: https://img.shields.io/github/issues/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge\n[issues-url]: https://github.com/rootsoft/walletconnect-dart-sdk/issues\n[license-shield]: https://img.shields.io/github/license/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge\n[license-url]: https://github.com/RootSoft/walletconnect-dart-sdk/blob/master/LICENSE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRootSoft%2Fwalletconnect-dart-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRootSoft%2Fwalletconnect-dart-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRootSoft%2Fwalletconnect-dart-sdk/lists"}