├── pull_request_template.md ├── .github └── workflows │ └── ci.yml ├── wallets.json ├── README.md └── wallets-v2.json /pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Add wallet 2 | 3 | ## Supports 4 | - [x] JS bridge as a browser extention for [Google Chrome](), ..., browsers. 5 | - [ ] JS bridge for the in-wallet browser for [iOS]() and [Android](). 6 | - [ ] JS bridge for in-wallet browser for [Windows](), [macOS](), ... . 7 | - [x] HTTP bridge as a mobile wallet app for [iOS]() and [Android](). 8 | - [ ] HTTP bridge as a desctop wallet app for [Windows](), [macOS](), ... . 9 | 10 | ## Supported features 11 | - [ ] [ton_proof](https://github.com/ton-connect/docs/blob/main/requests-responses.md#address-proof-signature-ton_proof) 12 | - [x] [SendTransaction](https://github.com/ton-connect/docs/blob/main/requests-responses.md#methods) 13 | 14 | 15 | ## Tests 16 | [a demo dapp with integrated wallet](link) 17 | 18 | ## Integrator contacts 19 | * telegram 20 | * email 21 | * discord 22 | * ... 23 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Check wallets list 2 | 3 | on: 4 | pull_request: 5 | branches: [ "main" ] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v3 13 | 14 | - name: Read wallets.json 15 | run: | 16 | content=`cat ./wallets.json` 17 | content="${content//'%'/' '}" 18 | content="${content//$'\n'/' '}" 19 | content="${content//$'\r'/'%0D'}" 20 | echo "WALLETS_LIST=$content" >> $GITHUB_ENV 21 | 22 | - name: Check out tonconnect/sdk 23 | uses: actions/checkout@v3 24 | with: 25 | repository: ton-connect/sdk 26 | 27 | - name: Read .nvmrc 28 | run: echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV 29 | 30 | - name: Set up Node.js 31 | uses: actions/setup-node@v2 32 | with: 33 | node-version: '${{ env.NVMRC }}' 34 | 35 | - name: Set up dependencies 36 | run: npm ci 37 | 38 | - name: Build tonconnect/protocol 39 | shell: bash 40 | run: npx nx run protocol:build 41 | 42 | - name: Test sdk with new wallets list 43 | shell: bash 44 | run: | 45 | cd packages/sdk 46 | VITE_WALLETS_LIST='${{ env.WALLETS_LIST }}' npm run test 47 | -------------------------------------------------------------------------------- /wallets.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "app_name": "tonkeeper", 4 | "name": "Tonkeeper", 5 | "image": "https://tonkeeper.com/assets/tonconnect-icon.png", 6 | "tondns": "tonkeeper.ton", 7 | "about_url": "https://tonkeeper.com", 8 | "universal_url": "https://app.tonkeeper.com/ton-connect", 9 | "bridge": [ 10 | { 11 | "type": "sse", 12 | "url": "https://bridge.tonapi.io/bridge" 13 | }, 14 | { 15 | "type": "js", 16 | "key": "tonkeeper" 17 | } 18 | ], 19 | "platforms": ["ios", "android", "chrome", "firefox"] 20 | }, 21 | { 22 | "app_name": "openmask", 23 | "name": "OpenMask", 24 | "image": "https://raw.githubusercontent.com/OpenProduct/openmask-extension/main/public/openmask-logo-288.png", 25 | "about_url": "https://www.openmask.app/", 26 | "bridge": [ 27 | { 28 | "type": "js", 29 | "key": "openmask" 30 | } 31 | ], 32 | "platforms": ["chrome"] 33 | }, 34 | { 35 | "app_name": "mytonwallet", 36 | "name": "MyTonWallet", 37 | "image": "https://mytonwallet.io/icon-256.png", 38 | "about_url": "https://mytonwallet.io", 39 | "universal_url": "https://connect.mytonwallet.org", 40 | "bridge": [ 41 | { 42 | "type": "js", 43 | "key": "mytonwallet" 44 | }, 45 | { 46 | "type": "sse", 47 | "url": "https://tonconnectbridge.mytonwallet.org/bridge/" 48 | } 49 | ], 50 | "platforms": ["chrome", "windows", "macos", "linux"] 51 | }, 52 | { 53 | "app_name": "tonhub", 54 | "name": "Tonhub", 55 | "image": "https://tonhub.com/tonconnect_logo.png", 56 | "about_url": "https://tonhub.com", 57 | "universal_url": "https://tonhub.com/ton-connect", 58 | "bridge": [ 59 | { 60 | "type": "js", 61 | "key": "tonhub" 62 | }, 63 | { 64 | "type": "sse", 65 | "url": "https://connect.tonhubapi.com/tonconnect" 66 | } 67 | ], 68 | "platforms": ["ios", "android"] 69 | }, 70 | { 71 | "app_name": "tonflow", 72 | "name": "TonFlow", 73 | "image": "https://tonflow.net/assets/images/tonflow_ico_192.png", 74 | "about_url": "https://tonflow.net", 75 | "bridge": [ 76 | { 77 | "type": "js", 78 | "key": "tonflow" 79 | } 80 | ], 81 | "platforms": ["chrome"] 82 | }, 83 | { 84 | "app_name": "dewallet", 85 | "name": "DeWallet", 86 | "image": "https://app.delabwallet.com/logo_black.png", 87 | "about_url": "https://delabwallet.com", 88 | "bridge": [ 89 | { 90 | "type": "js", 91 | "key": "dewallet" 92 | } 93 | ], 94 | "platforms": ["chrome"] 95 | }, 96 | { 97 | "app_name": "xtonwallet", 98 | "name": "XTONWallet", 99 | "image": "https://xtonwallet.com/assets/img/icon-256-back.png", 100 | "about_url": "https://xtonwallet.com", 101 | "bridge": [ 102 | { 103 | "type": "js", 104 | "key": "xtonwallet" 105 | } 106 | ], 107 | "platforms": ["chrome", "firefox"] 108 | }, 109 | { 110 | "app_name": "tonwallet", 111 | "name": "TON Wallet", 112 | "image": "https://wallet.ton.org/assets/ui/qr-logo.png", 113 | "about_url": "https://chrome.google.com/webstore/detail/ton-wallet/nphplpgoakhhjchkkhmiggakijnkhfnd", 114 | "bridge": [ 115 | { 116 | "type": "js", 117 | "key": "tonwallet" 118 | } 119 | ], 120 | "platforms": ["chrome"] 121 | } 122 | ] 123 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TON Connect Wallets 2 | 3 | This repository contains the list of wallets that support TON Connect. 4 | 5 | TON Connect [SDK](https://github.com/ton-connect/sdk) uses this list to present a choice of wallets so that dapp knows which bridge to use. 6 | 7 | ### Entry format 8 | 9 | Each entry has the following format (subject to change): 10 | 11 | ```json 12 | { 13 | "app_name": "tonkeeper", 14 | "name": "Tonkeeper", 15 | "image": "https://tonkeeper.com/assets/tonconnect-icon.png", 16 | "tondns": "tonkeeper.ton", 17 | "about_url": "https://tonkeeper.com", 18 | "universal_url": "https://app.tonkeeper.com/ton-connect", 19 | "bridge": [ 20 | { 21 | "type": "sse", 22 | "url": "https://bridge.tonapi.io/bridge" 23 | }, 24 | { 25 | "type": "js", 26 | "key": "tonkeeper" 27 | } 28 | ], 29 | "platforms": ["ios", "android", "chrome", "firefox", "safari", "windows", "macos", "linux"] 30 | } 31 | ``` 32 | 33 | #### Description 34 | - `app_name`: string ID of your wallet. Must be equal with `ConnectEventSuccess.device.appName` and js bridge `key` 35 | - `name`: name of your wallet. Will be displayed in the dapp. 36 | - `image`: url to the icon of your wallet. Will be displayed in the dapp. Resolution 288×288px. On non-transparent background, without rounded corners. PNG format. 37 | - `tondns`: (optional) will be used in the protocol later. 38 | - `about_url`: info or landing page of your wallet. May be useful for TON newcomers. 39 | - `universal_url`: (strictly required for `sse` bridges, optional otherwise) base part of your wallet universal url. Your link should support [Ton Connect parameters](https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link) 40 | - `bridge`: options for connectivity between the app and the wallet 41 | - `type="sse"`: specify the `url` of your wallet's implementation of the [HTTP bridge](https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge). 42 | - `type="js"`: specify the `key` through which your wallet handles [JS Bridge](https://github.com/ton-connect/docs/blob/main/bridge.md#js-bridge) connection, specify the binding for your bridge object accessible through `window`. Example: the key `"tonkeeper"` means the bridge can be accessed as `window.tonkeeper`. 43 | - `platforms`: list of platforms on which your wallet works: mobile app "ios", "android"; desktop app "windows", "macos", "linux"; browser extension "chrome", "firefox", "safari". 44 | 45 | If your wallet supports HTTP Bridge, you should specify `universal_url` and `bridge.type="sse"`. 46 | 47 | If your wallet provides the JS bridge (e.g. as a browser extension), you should specify the `bridge.type="js"`. 48 | 49 | If your wallet supports both bridges, you have to specify `universal_url` and both `bridge.type="sse"` and `bridge.type="js"`. 50 | 51 | ### How do I add my wallet? 52 | 53 | Submit a [pull request](https://github.com/ton-connect/wallets-list/pulls) that modifies the list. 54 | 55 | Note, that you should add your wallet **to the end of the list**. 56 | 57 | We will review correctness of the info (obviously we want this info to be provided by the wallet’s developer) and merge it promptly. 58 | This process may take some time. 59 | 60 | ### What is the policy? 61 | 62 | Our goal is to represent accurate up-to-date list of all TON wallets that support TON Connect. 63 | 64 | In the future it would be a good idea to replicate wallet's info in a TON DNS record so that this repo simply lists the wallet domain names (to filter out spam), while developers have more direct control over the wallet parameters. 65 | -------------------------------------------------------------------------------- /wallets-v2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "app_name": "telegram-wallet", 4 | "name": "Wallet", 5 | "image": "https://wallet.tg/images/logo-288.png", 6 | "about_url": "https://wallet.tg/", 7 | "universal_url": "https://t.me/wallet?attach=wallet&mode=compact", 8 | "bridge": [ 9 | { 10 | "type": "sse", 11 | "url": "https://bridge.ton.space/bridge" 12 | } 13 | ], 14 | "platforms": ["ios", "android", "macos", "windows", "linux"] 15 | }, 16 | { 17 | "app_name": "tonkeeper", 18 | "name": "Tonkeeper", 19 | "image": "https://tonkeeper.com/assets/tonconnect-icon.png", 20 | "tondns": "tonkeeper.ton", 21 | "about_url": "https://tonkeeper.com", 22 | "universal_url": "https://app.tonkeeper.com/ton-connect", 23 | "deepLink": "tonkeeper-tc://", 24 | "bridge": [ 25 | { 26 | "type": "sse", 27 | "url": "https://bridge.tonapi.io/bridge" 28 | }, 29 | { 30 | "type": "js", 31 | "key": "tonkeeper" 32 | } 33 | ], 34 | "platforms": ["ios", "android", "chrome", "firefox", "macos"] 35 | }, 36 | { 37 | "app_name": "mytonwallet", 38 | "name": "MyTonWallet", 39 | "image": "https://static.mytonwallet.io/icon-256.png", 40 | "about_url": "https://mytonwallet.io", 41 | "universal_url": "https://connect.mytonwallet.org", 42 | "bridge": [ 43 | { 44 | "type": "js", 45 | "key": "mytonwallet" 46 | }, 47 | { 48 | "type": "sse", 49 | "url": "https://tonconnectbridge.mytonwallet.org/bridge/" 50 | } 51 | ], 52 | "platforms": [ 53 | "chrome", 54 | "windows", 55 | "macos", 56 | "linux", 57 | "ios", 58 | "android", 59 | "firefox" 60 | ] 61 | }, 62 | { 63 | "app_name": "bitgetTonWallet", 64 | "name": "Bitget Wallet", 65 | "image": "https://raw.githubusercontent.com/bitkeepwallet/download/main/logo/png/bitget_wallet_logo_0_gas_fee.png", 66 | "about_url": "https://web3.bitget.com", 67 | "deepLink": "bitkeep://", 68 | "bridge": [ 69 | { 70 | "type": "js", 71 | "key": "bitgetTonWallet" 72 | }, 73 | { 74 | "type": "sse", 75 | "url": "https://ton-connect-bridge.bgwapi.io/bridge" 76 | } 77 | ], 78 | "platforms": ["ios", "android", "chrome"], 79 | "universal_url": "https://bkcode.vip/ton-connect" 80 | }, 81 | { 82 | "app_name": "binanceWeb3TonWallet", 83 | "name": "Binance Web3 Wallet", 84 | "image": "https://public.bnbstatic.com/static/binance-w3w/ton-provider/binancew3w.png", 85 | "about_url": "https://www.binance.com/en/web3wallet", 86 | "deepLink": "bnc://app.binance.com/cedefi/ton-connect", 87 | "bridge": [ 88 | { 89 | "type": "js", 90 | "key": "binancew3w" 91 | }, 92 | { 93 | "type": "sse", 94 | "url": "https://wallet.binance.com/tonbridge/bridge" 95 | } 96 | ], 97 | "platforms": ["ios", "android", "macos", "windows", "linux"], 98 | "universal_url": "https://app.binance.com/cedefi/ton-connect" 99 | }, 100 | { 101 | "app_name": "fintopio-tg", 102 | "name": "Fintopio", 103 | "image": "https://fintopio.com/tonconnect-icon.png", 104 | "about_url": "https://fintopio.com", 105 | "universal_url": "https://t.me/fintopio?attach=wallet", 106 | "bridge": [ 107 | { 108 | "type": "sse", 109 | "url": "https://wallet-bridge.fintopio.com/bridge" 110 | } 111 | ], 112 | "platforms": ["ios", "android", "macos", "windows", "linux"] 113 | }, 114 | { 115 | "app_name": "dewallet", 116 | "name": "DeWallet", 117 | "image": "https://raw.githubusercontent.com/delab-team/manifests-images/main/WalletAvatar.png", 118 | "about_url": "https://delabwallet.com", 119 | "universal_url": "https://t.me/dewallet?attach=wallet", 120 | "bridge": [ 121 | { 122 | "type": "sse", 123 | "url": "https://bridge.dewallet.pro/bridge" 124 | } 125 | ], 126 | "platforms": ["ios", "android", "macos", "windows", "linux"] 127 | }, 128 | { 129 | "app_name": "safepalwallet", 130 | "name": "SafePal", 131 | "image": "https://s.pvcliping.com/web/public_image/SafePal_x288.png", 132 | "tondns": "", 133 | "about_url": "https://www.safepal.com", 134 | "universal_url": "https://link.safepal.io/ton-connect", 135 | "deepLink": "safepal-tc://", 136 | "bridge": [ 137 | { 138 | "type": "sse", 139 | "url": "https://ton-bridge.safepal.com/tonbridge/v1/bridge" 140 | }, 141 | { 142 | "type": "js", 143 | "key": "safepalwallet" 144 | } 145 | ], 146 | "platforms": ["ios", "android", "chrome", "firefox"] 147 | }, 148 | { 149 | "app_name": "openmask", 150 | "name": "OpenMask", 151 | "image": "https://raw.githubusercontent.com/OpenProduct/openmask-extension/main/public/openmask-logo-288.png", 152 | "about_url": "https://www.openmask.app/", 153 | "bridge": [ 154 | { 155 | "type": "js", 156 | "key": "openmask" 157 | } 158 | ], 159 | "platforms": ["chrome"] 160 | }, 161 | { 162 | "app_name": "tonhub", 163 | "name": "Tonhub", 164 | "image": "https://tonhub.com/tonconnect_logo.png", 165 | "about_url": "https://tonhub.com", 166 | "universal_url": "https://tonhub.com/ton-connect", 167 | "bridge": [ 168 | { 169 | "type": "js", 170 | "key": "tonhub" 171 | }, 172 | { 173 | "type": "sse", 174 | "url": "https://connect.tonhubapi.com/tonconnect" 175 | } 176 | ], 177 | "platforms": ["ios", "android"] 178 | }, 179 | { 180 | "app_name": "xtonwallet", 181 | "name": "XTONWallet", 182 | "image": "https://xtonwallet.com/assets/img/icon-256-back.png", 183 | "about_url": "https://xtonwallet.com", 184 | "bridge": [ 185 | { 186 | "type": "js", 187 | "key": "xtonwallet" 188 | } 189 | ], 190 | "platforms": ["chrome", "firefox"] 191 | }, 192 | { 193 | "app_name": "okxTonWallet", 194 | "name": "OKX Wallet", 195 | "image": "https://static.okx.com/cdn/assets/imgs/247/58E63FEA47A2B7D7.png", 196 | "about_url": "https://www.okx.com/web3", 197 | "universal_url": "https://www.okx.com/download?appendQuery=true&deeplink=okx://web3/wallet/tonconnect", 198 | "bridge": [ 199 | { 200 | "type": "js", 201 | "key": "okxTonWallet" 202 | }, 203 | { 204 | "type": "sse", 205 | "url": "https://www.okx.com/tonbridge/discover/rpc/bridge" 206 | } 207 | ], 208 | "platforms": ["chrome", "safari", "firefox", "ios", "android"] 209 | }, 210 | { 211 | "app_name": "okxMiniWallet", 212 | "name": "OKX Mini Wallet", 213 | "image": "https://static.okx.com/cdn/assets/imgs/2411/8BE1A4A434D8F58A.png", 214 | "about_url": "https://www.okx.com/web3", 215 | "universal_url": "https://t.me/OKX_WALLET_BOT?attach=wallet", 216 | "bridge": [ 217 | { 218 | "type": "sse", 219 | "url": "https://www.okx.com/tonbridge/discover/rpc/bridge" 220 | } 221 | ], 222 | "platforms": ["ios", "android", "macos", "windows", "linux"] 223 | }, 224 | { 225 | "app_name": "hot", 226 | "name": "HOT", 227 | "image": "https://raw.githubusercontent.com/hot-dao/media/main/logo.png", 228 | "about_url": "https://hot-labs.org/", 229 | "universal_url": "https://t.me/herewalletbot?attach=wallet", 230 | "bridge": [ 231 | { 232 | "type": "sse", 233 | "url": "https://sse-bridge.hot-labs.org" 234 | }, 235 | { 236 | "type": "js", 237 | "key": "hotWallet" 238 | } 239 | ], 240 | "platforms": ["ios", "android", "macos", "windows", "linux"] 241 | }, 242 | { 243 | "app_name": "bybitTonWallet", 244 | "name": "Bybit Wallet", 245 | "image": "https://raw.githubusercontent.com/bybit-web3/bybit-web3.github.io/main/docs/images/bybit-logo.png", 246 | "about_url": "https://www.bybit.com/web3", 247 | "universal_url": "https://app.bybit.com/ton-connect", 248 | "deepLink": "bybitapp://", 249 | "bridge": [ 250 | { 251 | "type": "js", 252 | "key": "bybitTonWallet" 253 | }, 254 | { 255 | "type": "sse", 256 | "url": "https://api-node.bybit.com/spot/api/web3/bridge/ton/bridge" 257 | } 258 | ], 259 | "platforms": ["ios", "android", "chrome"] 260 | }, 261 | { 262 | "app_name": "GateWallet", 263 | "name": "GateWallet", 264 | "image": "https://img.gatedataimg.com/prd-ordinal-imgs/036f07bb8730716e/gateio-0925.png", 265 | "about_url": "https://www.gate.io/", 266 | "bridge": [ 267 | { 268 | "type": "js", 269 | "key": "gatetonwallet" 270 | }, 271 | { 272 | "type": "sse", 273 | "url": "https://dapp.gateio.services/tonbridge_api/bridge/v1" 274 | } 275 | ], 276 | "platforms": ["ios", "android"], 277 | "universal_url": "https://gateio.go.link/gateio/web3?adj_t=1ff8khdw_1fu4ccc7" 278 | }, 279 | { 280 | "app_name": "tonwallet", 281 | "name": "TON Wallet", 282 | "image": "https://wallet.ton.org/assets/ui/qr-logo.png", 283 | "about_url": "https://chrome.google.com/webstore/detail/ton-wallet/nphplpgoakhhjchkkhmiggakijnkhfnd", 284 | "bridge": [ 285 | { 286 | "type": "js", 287 | "key": "tonwallet" 288 | } 289 | ], 290 | "platforms": ["chrome"] 291 | } 292 | ] 293 | --------------------------------------------------------------------------------