diff --git a/.gitmodules b/.gitmodules index 293d9c8d3..8df63d0e8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,3 +20,6 @@ path = core/vendor/secp256k1-zkp url = https://github.com/ElementsProject/secp256k1-zkp.git branch = secp256k1-zkp +[submodule "common/defs/ethereum/tokens"] + path = common/defs/ethereum/tokens + url = https://github.com/ethereum-lists/tokens.git diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 000000000..b13333916 --- /dev/null +++ b/common/.gitignore @@ -0,0 +1,9 @@ +/.vscode +__pycache__/ +defs/coins/tools/coins.json +defs/coins/tools/coindefs.json +tools/coins.json +tools/coindefs.json +tools/coinmarketcap.json +proto.gv* +.idea/* diff --git a/common/.gitmodules b/common/.gitmodules new file mode 100644 index 000000000..d8c45b3c3 --- /dev/null +++ b/common/.gitmodules @@ -0,0 +1,3 @@ +[submodule "defs/ethereum/tokens"] + path = defs/ethereum/tokens + url = https://github.com/ethereum-lists/tokens.git diff --git a/common/.travis.yml b/common/.travis.yml new file mode 100644 index 000000000..978c264a1 --- /dev/null +++ b/common/.travis.yml @@ -0,0 +1,37 @@ +language: python + +# Runs jobs on container based infrastructure +sudo: false + +# Saves pip downloads/wheels between builds +cache: + directories: + - $HOME/.cache/pip + +addons: + apt: + packages: + - graphviz + +python: + - "3.6" + +install: + - pip install demjson graphviz + - pip install -r tools/requirements.txt + +script: + - jsonlint defs/*.json + - jsonlint defs/*/*.json + - python tools/cointool.py check + - python tools/support.py check --ignore-missing + - python protob/check.py + - python protob/graph.py protob/*.proto + +notifications: + webhooks: + urls: + - http://ci-bot.satoshilabs.com:5000/travis + on_success: always + on_failure: always + on_start: always diff --git a/common/COPYING b/common/COPYING new file mode 100644 index 000000000..65c5ca88a --- /dev/null +++ b/common/COPYING @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/common/README.md b/common/README.md new file mode 100644 index 000000000..2a5bf751a --- /dev/null +++ b/common/README.md @@ -0,0 +1,12 @@ +# trezor-common + +[![Build Status](https://travis-ci.org/trezor/trezor-common.svg?branch=master)](https://travis-ci.org/trezor/trezor-common) +[![Gitter](https://badges.gitter.im/trezor/community.svg)](https://gitter.im/trezor/community) + +Common files shared among TREZOR repositories. + +This repo is meant to be included as submodule to others using: + +``` +git submodule add https://github.com/trezor/trezor-common.git trezor-common +``` diff --git a/common/defs/README.md b/common/defs/README.md new file mode 100644 index 000000000..5240a7f3a --- /dev/null +++ b/common/defs/README.md @@ -0,0 +1,148 @@ +# Coin Definitions + +We currently recognize five categories of coins. + +#### `bitcoin` + +The [`bitcoin/`](bitcoin) subdirectory contains definitions for Bitcoin and altcoins +based on Bitcoin code. The `coins/` subdirectory is a compatibility link to `bitcoin`. + +Each Bitcoin-like coin must have a single JSON file in the `bitcoin/` subdirectory, +and a corresponding PNG image with the same name. The PNG must be 96x96 pixels and +the picture must be a circle suitable for displaying on Trezor T. + +Testnet is considered a separate coin, so it must have its own JSON and icon. + +We will not support coins that have `address_type` 0, i.e., same as Bitcoin. + +#### `eth` + +The file [`ethereum/networks.json`](ethereum/networks.json) has a list of descriptions +of Ethereum networks. Each network must also have a PNG icon in `ethereum/.png` +file. + +#### `erc20` + +`ethereum/tokens` is a submodule linking to [Ethereum Lists](https://github.com/ethereum-lists/tokens) +project with descriptions of ERC20 tokens. If you want to add or update a token +definition in Trezor, you need to get your change to the `tokens` repository first. + +Trezor will only support tokens that have a unique symbol. + +#### `nem` + +The file [`nem/nem_mosaics.json`](nem/nem_mosaics.json) describes NEM mosaics. + +#### `misc` + +Supported coins that are not derived from Bitcoin, Ethereum or NEM are currently grouped +and listed in separate file [`misc/misc.json`](misc/misc.json). Each coin must also have +an icon in `misc/.png`, where `short` is lowercased `shortcut` field from the JSON. + +## Keys + +Throughout the system, coins are identified by a _key_ - a colon-separated string +generated from the coin's type and shortcut: + +* for Bitcoin-likes, key is `bitcoin:XYZ` +* for Ethereum networks, key is `eth:XYZ` +* for ERC20 tokens, key is `erc20::XYZ` +* for NEM mosaic, key is `nem:XYZ` +* for others, key is `misc:XYZ` + +If a token shortcut has a suffix, such as `CAT (BlockCat)`, the whole thing is part +of the key (so the key is `erc20:eth:CAT (BlockCat)`). + +Sometimes coins end up with duplicate symbols, which in case of ERC20 tokens leads to +key collisions. We do not allow duplicate symbols in the data, so this doesn't affect +everyday use (see below). However, for validation purposes, it is sometimes useful +to work with unfiltered data that includes the duplicates. In such cases, keys are +deduplicated by adding a counter at end, e.g.: `erc20:eth:SMT:0`, `erc20:eth:SMT:1`. +Note that the suffix _is not stable_, so these coins can't be reliably uniquely identified. + +## Duplicate Detection + +**Duplicate symbols are not allowed** in our data. Tokens that have symbol collisions +are removed from the data set before processing. The duplicate status is mentioned +in `support.json` (see below), but it is impossible to override from there. + +Duplicate detection works as follows: + +1. a _symbol_ is split off from the shortcut string. E.g., for `CAT (BlockCat)`, symbol + is just `CAT`. It is compared, case-insensitive, with other coins (so `WIC` and `WiC` + are considered the same symbol), and identical symbols are put into a _bucket_. +2. if _all_ coins in the bucket also have a suffix (`CAT (BlockCat)` and `CAT (BitClave)`), + they are _not_ considered duplicate. +3. if _any_ coin in the bucket does _not_ have a suffix (`MIT` and `MIT (Mychatcoin)`), + all coins in the bucket are considered duplicate. +4. Duplicate tokens (coins from the `erc20` group) are automatically removed from data. + Duplicate non-tokens are marked but not removed. For instance, `bitcoin:FTC` (Feathercoin) + and `erc20:eth:FTC` (FTC) are duplicate, and `erc20:eth:FTC` is removed. +5. If two non-tokens collide with each other, it is an error that fails the CI build. + +The file [`duplicity_overrides.json`](duplicity_overrides.json) can override detection +results: keys set to `true` are considered duplicate (in a separate bucket), keys set +to `false` are considered non-duplicate even if auto-detected. This is useful for +whitelisting a supported token explicitly, or blacklisting things that the detection +can't match (for instance "Battle" and "Bitlle" have suffixes, but they are too similar). + +External contributors should not make changes to `duplicity_overrides.json`, unless +asked to. + +You can use `./tools/cointool.py check -d all` to inspect duplicate detection in detail. + + +# Coins Details + +The file [`coins_details.json`](coins_details.json) is a list of all known coins +with support status, market cap information and relevant links. This is the source +file for https://trezor.io/coins. + +You should never make changes to `coins_details.json` directly. Use `./tools/coins_details.py` +to regenerate it from known data. + +If you need to change information in this file, modify the source information instead - +one of the JSON files in the groups listed above, support info in `support.json`, or +make a pull request to the tokens repository. + +If you want to add a **wallet link**, modify the file [`wallets.json`](wallets.json). + +If this is not viable for some reason, or if there is no source information , +you can also edit [`coins_details.override.json`](coins_details.override.json). +External contributors should not touch this file unless asked to. + + +# Support Information + +We keep track of support status of each coin over our devices. That is +`trezor1` for Trezor One, `trezor2` for Trezor T, `connect` for [Connect](https://github.com/trezor/connect) +and `webwallet` for [Trezor Wallet](https://wallet.trezor.io/). In further description, the word "device" +applies to Connect and webwallet as well. + +This information is stored in [`support.json`](support.json). +External contributors should not touch this file unless asked to. + +Each coin on each device can be in one of four support states: + +* **supported** explicitly: coin's key is listed in the device's `supported` + dictionary. If it's a Trezor device, it contains the firmware version from which + it is supported. For connect and webwallet, the value is simply `true`. +* **unsupported** explicitly: coin's key is listed in the device's `unsupported` + dictionary. The value is a string with reason for not supporting. + For connect and webwallet, if the key is not listed at all, it is also considered unsupported. + ERC20 tokens detected as duplicates are also considered unsupported. +* **soon**: coin's key is listed in the device's `supported` dictionary, with + the value `"soon"`. + ERC20 tokens that are not listed at all are also considered `soon`, unless detected + as duplicates. +* **unknown**: coin's key is not listed at all. + +_Supported_ and _soon_ coins are used in code generation (i.e., included in built firmware). +_Unsupported_ and _unknown_ coins are excluded from code generation. + +That means that new ERC20 tokens are included as soon as you update the tokens repository. +New coin definitions, on the other hand, are not included until someone sets their +support status to _soon_ (or a version) explicitly. + +You can edit `support.json` manually, but it is usually better to use the `support.py` tool. +See [tools docs](../tools) for details. diff --git a/common/defs/bitcoin/actinium.json b/common/defs/bitcoin/actinium.json new file mode 100644 index 000000000..764799419 --- /dev/null +++ b/common/defs/bitcoin/actinium.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Actinium", + "coin_shortcut": "ACM", + "coin_label": "Actinium", + "website": "https://actinium.org", + "github": "https://github.com/Actinium-project/Actinium", + "maintainer": "Harris Brakmic ", + "curve_name": "secp256k1", + "address_type": 53, + "address_type_p2sh": 55, + "maxfee_kb": 40000000, + "minfee_kb": 100000, + "signed_message_header": "Actinium Signed Message:\n", + "hash_genesis_block": "28d77872e23714562f49a1be792c276623c1bbe3fdcf21b6035cfde78b00b824", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "acm", + "cashaddr_prefix": null, + "slip44": 228, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "actinium", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/actinium.png b/common/defs/bitcoin/actinium.png new file mode 100644 index 000000000..07823ace3 Binary files /dev/null and b/common/defs/bitcoin/actinium.png differ diff --git a/common/defs/bitcoin/axe.json b/common/defs/bitcoin/axe.json new file mode 100644 index 000000000..7804f0375 --- /dev/null +++ b/common/defs/bitcoin/axe.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Axe", + "coin_shortcut": "AXE", + "coin_label": "Axe", + "website": "https://axerunners.com", + "github": "https://github.com/axerunners/axe", + "maintainer": "Kirill Orlov ", + "curve_name": "secp256k1", + "address_type": 55, + "address_type_p2sh": 16, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000c33631ca6f2f61368991ce2dc03306b5bb50bf7cede5cfbba6db38e52e6", + "xprv_magic": 50221816, + "xpub_magic": 50221772, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 4242, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 150, + "uri_prefix": "axe", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/axe.png b/common/defs/bitcoin/axe.png new file mode 100644 index 000000000..a73e6b962 Binary files /dev/null and b/common/defs/bitcoin/axe.png differ diff --git a/common/defs/bitcoin/bcash.json b/common/defs/bitcoin/bcash.json new file mode 100644 index 000000000..95c496eb8 --- /dev/null +++ b/common/defs/bitcoin/bcash.json @@ -0,0 +1,48 @@ +{ + "coin_name": "Bcash", + "coin_shortcut": "BCH", + "coin_label": "Bitcoin Cash", + "website": "https://www.bitcoincash.org", + "github": "https://github.com/Bitcoin-ABC/bitcoin-abc", + "maintainer": "Jochen Hoenicke ", + "curve_name": "secp256k1", + "address_type": 0, + "address_type_p2sh": 5, + "maxfee_kb": 500000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Signed Message:\n", + "hash_genesis_block": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": "bitcoincash", + "slip44": 145, + "segwit": false, + "decred": false, + "fork_id": 0, + "force_bip143": true, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoincash", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://bch1.trezor.io", + "https://bch2.trezor.io", + "https://bch3.trezor.io", + "https://bch4.trezor.io", + "https://bch5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bcash.png b/common/defs/bitcoin/bcash.png new file mode 100644 index 000000000..e6192b007 Binary files /dev/null and b/common/defs/bitcoin/bcash.png differ diff --git a/common/defs/bitcoin/bcash_testnet.json b/common/defs/bitcoin/bcash_testnet.json new file mode 100644 index 000000000..13b8c9365 --- /dev/null +++ b/common/defs/bitcoin/bcash_testnet.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Bcash Testnet", + "coin_shortcut": "TBCH", + "coin_label": "Bitcoin Cash Testnet", + "website": "https://www.bitcoincash.org", + "github": "https://github.com/Bitcoin-ABC/bitcoin-abc", + "maintainer": "Jochen Hoenicke ", + "curve_name": "secp256k1", + "address_type": 111, + "address_type_p2sh": 196, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Signed Message:\n", + "hash_genesis_block": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": "bchtest", + "slip44": 1, + "segwit": false, + "decred": false, + "fork_id": 0, + "force_bip143": true, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoincash", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bcash_testnet.png b/common/defs/bitcoin/bcash_testnet.png new file mode 100644 index 000000000..0da886e85 Binary files /dev/null and b/common/defs/bitcoin/bcash_testnet.png differ diff --git a/common/defs/bitcoin/bgold.json b/common/defs/bitcoin/bgold.json new file mode 100644 index 000000000..8b31d0c10 --- /dev/null +++ b/common/defs/bitcoin/bgold.json @@ -0,0 +1,48 @@ +{ + "coin_name": "Bgold", + "coin_shortcut": "BTG", + "coin_label": "Bitcoin Gold", + "website": "https://bitcoingold.org", + "github": "https://github.com/BTCGPU/BTCGPU", + "maintainer": "Saleem Rashid ", + "curve_name": "secp256k1", + "address_type": 38, + "address_type_p2sh": 23, + "maxfee_kb": 500000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Gold Signed Message:\n", + "hash_genesis_block": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "btg", + "cashaddr_prefix": null, + "slip44": 156, + "segwit": true, + "decred": false, + "fork_id": 79, + "force_bip143": true, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoingold", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://btg1.trezor.io", + "https://btg2.trezor.io", + "https://btg3.trezor.io", + "https://btg4.trezor.io", + "https://btg5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bgold.png b/common/defs/bitcoin/bgold.png new file mode 100644 index 000000000..bb13467c7 Binary files /dev/null and b/common/defs/bitcoin/bgold.png differ diff --git a/common/defs/bitcoin/bgold_testnet.json b/common/defs/bitcoin/bgold_testnet.json new file mode 100644 index 000000000..b9ce5af09 --- /dev/null +++ b/common/defs/bitcoin/bgold_testnet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Bgold Testnet", + "coin_shortcut": "TBTG", + "coin_label": "Bitcoin Gold Testnet", + "website": "https://bitcoingold.org", + "github": "https://github.com/BTCGPU/BTCGPU", + "maintainer": "The Bitcoin Gold Developers ", + "curve_name": "secp256k1", + "address_type": 111, + "address_type_p2sh": 196, + "maxfee_kb": 500000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Gold Signed Message:\n", + "hash_genesis_block": "00000000e0781ebe24b91eedc293adfea2f557b53ec379e78959de3853e6f9f6", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "tbtg", + "cashaddr_prefix": null, + "slip44": 156, + "segwit": true, + "decred": false, + "fork_id": 79, + "force_bip143": true, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoingold", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bgold_testnet.png b/common/defs/bitcoin/bgold_testnet.png new file mode 100644 index 000000000..272de4d07 Binary files /dev/null and b/common/defs/bitcoin/bgold_testnet.png differ diff --git a/common/defs/bitcoin/bitcash.json b/common/defs/bitcoin/bitcash.json new file mode 100644 index 000000000..41c0de6b1 --- /dev/null +++ b/common/defs/bitcoin/bitcash.json @@ -0,0 +1,42 @@ +{ + "coin_name": "BitCash", + "coin_shortcut": "BITC", + "coin_label": "BitCash", + "website": "https://www.choosebitcash.com", + "github": "https://github.com/WillyTheCat/BitCash", + "maintainer": "Christian Kassler ", + "curve_name": "secp256k1", + "address_type": 230, + "address_type_p2sh": 235, + "maxfee_kb": 30000000, + "minfee_kb": 1000, + "signed_message_header": "Bitcash Signed Message:\n", + "hash_genesis_block": "7d57d87ff3c15a521530af60edee1887fba9c193eb518face926785c4cd8f4f1", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 230, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "bitcash", + "min_address_length": 52, + "max_address_length": 53, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitcash.png b/common/defs/bitcoin/bitcash.png new file mode 100644 index 000000000..609955097 Binary files /dev/null and b/common/defs/bitcoin/bitcash.png differ diff --git a/common/defs/bitcoin/bitcloud.json b/common/defs/bitcoin/bitcloud.json new file mode 100644 index 000000000..5b9b1674c --- /dev/null +++ b/common/defs/bitcoin/bitcloud.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Bitcloud", + "coin_shortcut": "BTDX", + "coin_label": "Bitcloud", + "website": "https://bit-cloud.info", + "github": "https://github.com/LIMXTEC/Bitcloud", + "maintainer": "limxdev ", + "curve_name": "secp256k1", + "address_type": 25, + "address_type_p2sh": 5, + "maxfee_kb": 1000000, + "minfee_kb": 10000, + "signed_message_header": "Diamond Signed Message:\n", + "hash_genesis_block": "000002d56463941c20eae5cb474cc805b646515d18bc7dc222a0885b206eadb0", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 218, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 300, + "uri_prefix": "bitcloud", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitcloud.png b/common/defs/bitcoin/bitcloud.png new file mode 100644 index 000000000..f8cdf2c45 Binary files /dev/null and b/common/defs/bitcoin/bitcloud.png differ diff --git a/common/defs/bitcoin/bitcoin.json b/common/defs/bitcoin/bitcoin.json new file mode 100644 index 000000000..f0d4ba3be --- /dev/null +++ b/common/defs/bitcoin/bitcoin.json @@ -0,0 +1,48 @@ +{ + "coin_name": "Bitcoin", + "coin_shortcut": "BTC", + "coin_label": "Bitcoin", + "website": "https://bitcoin.org", + "github": "https://github.com/bitcoin/bitcoin", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 0, + "address_type_p2sh": 5, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Signed Message:\n", + "hash_genesis_block": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "bc", + "cashaddr_prefix": null, + "slip44": 0, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://btc1.trezor.io", + "https://btc2.trezor.io", + "https://btc3.trezor.io", + "https://btc4.trezor.io", + "https://btc5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitcoin.png b/common/defs/bitcoin/bitcoin.png new file mode 100644 index 000000000..a2abccbd3 Binary files /dev/null and b/common/defs/bitcoin/bitcoin.png differ diff --git a/common/defs/bitcoin/bitcoin_testnet.json b/common/defs/bitcoin/bitcoin_testnet.json new file mode 100644 index 000000000..1b6c59c6d --- /dev/null +++ b/common/defs/bitcoin/bitcoin_testnet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Testnet", + "coin_shortcut": "TEST", + "coin_label": "Testnet", + "website": "https://bitcoin.org", + "github": "https://github.com/bitcoin/bitcoin", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 111, + "address_type_p2sh": 196, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Bitcoin Signed Message:\n", + "hash_genesis_block": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "tb", + "cashaddr_prefix": null, + "slip44": 1, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://tbtc1.trezor.io", + "https://tbtc2.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitcoin_testnet.png b/common/defs/bitcoin/bitcoin_testnet.png new file mode 100644 index 000000000..7a2399f61 Binary files /dev/null and b/common/defs/bitcoin/bitcoin_testnet.png differ diff --git a/common/defs/bitcoin/bitcore.json b/common/defs/bitcoin/bitcore.json new file mode 100644 index 000000000..cd226c824 --- /dev/null +++ b/common/defs/bitcoin/bitcore.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Bitcore", + "coin_shortcut": "BTX", + "coin_label": "Bitcore", + "website": "https://bitcore.cc", + "github": "https://github.com/LIMXTEC/BitCore", + "maintainer": "limxdev ", + "curve_name": "secp256k1", + "address_type": 3, + "address_type_p2sh": 125, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "BitCore Signed Message:\n", + "hash_genesis_block": "604148281e5c4b7f2487e5d03cd60d8e6f69411d613f6448034508cea52e9574", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "btx", + "cashaddr_prefix": null, + "slip44": 160, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "bitcore", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://insight.bitcore.cc" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitcore.png b/common/defs/bitcoin/bitcore.png new file mode 100644 index 000000000..aebb9f8ab Binary files /dev/null and b/common/defs/bitcoin/bitcore.png differ diff --git a/common/defs/bitcoin/bitsend.json b/common/defs/bitcoin/bitsend.json new file mode 100644 index 000000000..c141b9e0b --- /dev/null +++ b/common/defs/bitcoin/bitsend.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Bitsend", + "coin_shortcut": "BSD", + "coin_label": "Bitsend", + "website": "https://bitsend.info", + "github": "https://github.com/LIMXTEC/BitSend", + "maintainer": "limxdev ", + "curve_name": "secp256k1", + "address_type": 102, + "address_type_p2sh": 5, + "maxfee_kb": 1000000, + "minfee_kb": 10000, + "signed_message_header": "Bitsend Signed Message:\n", + "hash_genesis_block": "0000012e1b8843ac9ce8c18603658eaf8895f99d3f5e7e1b7b1686f35e3c087a", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "bsd", + "cashaddr_prefix": null, + "slip44": 91, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 200, + "uri_prefix": "bitsend", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bitsend.png b/common/defs/bitcoin/bitsend.png new file mode 100644 index 000000000..cab15264e Binary files /dev/null and b/common/defs/bitcoin/bitsend.png differ diff --git a/common/defs/bitcoin/bprivate.json b/common/defs/bitcoin/bprivate.json new file mode 100644 index 000000000..09f97a6fd --- /dev/null +++ b/common/defs/bitcoin/bprivate.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Bprivate", + "coin_shortcut": "BTCP", + "coin_label": "Bitcoin Private", + "website": "https://btcprivate.org", + "github": "https://github.com/BTCPrivate/BitcoinPrivate", + "maintainer": "Chris Sulmone ", + "curve_name": "secp256k1", + "address_type": 4901, + "address_type_p2sh": 5039, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "BitcoinPrivate Signed Message:\n", + "hash_genesis_block": "0007104ccda289427919efc39dc9e4d499804b7bebc22df55f8b834301260602", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 183, + "segwit": false, + "decred": false, + "fork_id": 42, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "bitcoinprivate", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [ + "https://explorer.btcprivate.org" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/bprivate.png b/common/defs/bitcoin/bprivate.png new file mode 100644 index 000000000..92b3b2e15 Binary files /dev/null and b/common/defs/bitcoin/bprivate.png differ diff --git a/common/defs/bitcoin/brhodium.json b/common/defs/bitcoin/brhodium.json new file mode 100644 index 000000000..ec353e367 --- /dev/null +++ b/common/defs/bitcoin/brhodium.json @@ -0,0 +1,45 @@ +{ + "coin_name": "Brhodium", + "coin_shortcut": "XRC", + "coin_label": "Bitcoin Rhodium", + "website": "https://www.bitcoinrh.org", + "github": "https://gitlab.com/bitcoinrh/BRhodiumNode", + "maintainer": "baff5b ", + "curve_name": "secp256k1", + "address_type": 61, + "address_type_p2sh": 123, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "BitCoin Rhodium Signed Message:\n", + "hash_genesis_block": "baff5bfd9dc43fb672d003ec20fd21428f9282ca46bfa1730d73e1f2c75f5fdd", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 10291, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin-rhodium", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook1.bitcoinrh.org", + "https://blockbook2.bitcoinrh.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/brhodium.png b/common/defs/bitcoin/brhodium.png new file mode 100644 index 000000000..957d7b077 Binary files /dev/null and b/common/defs/bitcoin/brhodium.png differ diff --git a/common/defs/bitcoin/capricoin.json b/common/defs/bitcoin/capricoin.json new file mode 100644 index 000000000..8881cfe7d --- /dev/null +++ b/common/defs/bitcoin/capricoin.json @@ -0,0 +1,47 @@ +{ + "coin_name": "Capricoin", + "coin_shortcut": "CPC", + "coin_label": "Capricoin", + "website": "https://capricoin.org", + "github": "https://github.com/Capricoinofficial/Capricoin", + "maintainer": "Tibor Arpas ", + "curve_name": "secp256k1", + "address_type": 28, + "address_type_p2sh": 35, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Capricoin Signed Message:\n", + "hash_genesis_block": "00000d23fa0fc52c90893adb1181c9ddffb6c797a3e41864b9a23aa2f2981fe3", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 289, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1, + "Economy": 7, + "Normal": 14, + "High": 20 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "capricoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook.capricoin.org", + "https://blockbook2.capricoin.org", + "https://blockbook3.capricoin.org", + "https://blockbook4.capricoin.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/capricoin.png b/common/defs/bitcoin/capricoin.png new file mode 100644 index 000000000..005e907bc Binary files /dev/null and b/common/defs/bitcoin/capricoin.png differ diff --git a/common/defs/bitcoin/crown.json b/common/defs/bitcoin/crown.json new file mode 100644 index 000000000..e84776aee --- /dev/null +++ b/common/defs/bitcoin/crown.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Crown", + "coin_shortcut": "CRW", + "coin_label": "Crown", + "website": "https://crown.tech", + "github": "https://github.com/Crowndev/crowncoin", + "maintainer": "hypermist ", + "curve_name": "secp256k1", + "address_type": 0, + "address_type_p2sh": 28, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Crown Signed Message:\n", + "hash_genesis_block": "0000000085370d5e122f64f4ab19c68614ff3df78c8d13cb814fd7e69a1dc6da", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 72, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "crown", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/crown.png b/common/defs/bitcoin/crown.png new file mode 100644 index 000000000..9ca4e8a48 Binary files /dev/null and b/common/defs/bitcoin/crown.png differ diff --git a/common/defs/bitcoin/dash.json b/common/defs/bitcoin/dash.json new file mode 100644 index 000000000..388bf7a27 --- /dev/null +++ b/common/defs/bitcoin/dash.json @@ -0,0 +1,45 @@ +{ + "coin_name": "Dash", + "coin_shortcut": "DASH", + "coin_label": "Dash", + "website": "https://www.dash.org", + "github": "https://github.com/dashpay/dash", + "maintainer": "Karel Bilek ", + "curve_name": "secp256k1", + "address_type": 76, + "address_type_p2sh": 16, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6", + "xprv_magic": 50221816, + "xpub_magic": 50221772, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 5, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 150, + "uri_prefix": "dash", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://dash1.trezor.io", + "https://dash2.trezor.io", + "https://dash3.trezor.io", + "https://dash4.trezor.io", + "https://dash5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/dash.png b/common/defs/bitcoin/dash.png new file mode 100644 index 000000000..5c3a113db Binary files /dev/null and b/common/defs/bitcoin/dash.png differ diff --git a/common/defs/bitcoin/dash_testnet.json b/common/defs/bitcoin/dash_testnet.json new file mode 100644 index 000000000..1bf8838e0 --- /dev/null +++ b/common/defs/bitcoin/dash_testnet.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Dash Testnet", + "coin_shortcut": "tDASH", + "coin_label": "Dash Testnet", + "website": "https://www.dash.org", + "github": "https://github.com/dashpay/dash", + "maintainer": "Karel Bilek ", + "curve_name": "secp256k1", + "address_type": 140, + "address_type_p2sh": 19, + "maxfee_kb": 100000, + "minfee_kb": 10000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 150, + "uri_prefix": "dash", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/dash_testnet.png b/common/defs/bitcoin/dash_testnet.png new file mode 100644 index 000000000..c751c15ff Binary files /dev/null and b/common/defs/bitcoin/dash_testnet.png differ diff --git a/common/defs/bitcoin/decred.json b/common/defs/bitcoin/decred.json new file mode 100644 index 000000000..64caf3004 --- /dev/null +++ b/common/defs/bitcoin/decred.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Decred", + "coin_shortcut": "DCR", + "coin_label": "Decred", + "website": "https://www.decred.org", + "github": "https://github.com/decred/dcrd", + "maintainer": "Alex Yocom-Piatt ", + "curve_name": "secp256k1_decred", + "address_type": 1855, + "address_type_p2sh": 1818, + "maxfee_kb": 1000000, + "minfee_kb": 10000, + "signed_message_header": "Decred Signed Message:\n", + "hash_genesis_block": "298e5cc3d985bfe7f81dc135f360abe089edd4396b86d2de66b0cef42b21d980", + "xprv_magic": 50177256, + "xpub_magic": 50178342, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 42, + "segwit": false, + "decred": true, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin", + "min_address_length": 35, + "max_address_length": 35, + "bitcore": [ + "https://mainnet.decred.org" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/decred.png b/common/defs/bitcoin/decred.png new file mode 100644 index 000000000..3dd325f3d Binary files /dev/null and b/common/defs/bitcoin/decred.png differ diff --git a/common/defs/bitcoin/decred_testnet.json b/common/defs/bitcoin/decred_testnet.json new file mode 100644 index 000000000..a6f7d1ab2 --- /dev/null +++ b/common/defs/bitcoin/decred_testnet.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Decred Testnet", + "coin_shortcut": "TDCR", + "coin_label": "Decred Testnet", + "website": "https://www.decred.org", + "github": "https://github.com/decred/dcrd", + "maintainer": "Saleem Rashid ", + "curve_name": "secp256k1_decred", + "address_type": 3873, + "address_type_p2sh": 3836, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Decred Signed Message:\n", + "hash_genesis_block": "a649dce53918caf422e9c711c858837e08d626ecfcd198969b24f7b634a49bac", + "xprv_magic": 70615959, + "xpub_magic": 70617041, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1, + "segwit": false, + "decred": true, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "bitcoin", + "min_address_length": 35, + "max_address_length": 35, + "bitcore": [ + "https://testnet.decred.org" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/decred_testnet.png b/common/defs/bitcoin/decred_testnet.png new file mode 100644 index 000000000..961d27b1e Binary files /dev/null and b/common/defs/bitcoin/decred_testnet.png differ diff --git a/common/defs/bitcoin/denarius.json b/common/defs/bitcoin/denarius.json new file mode 100644 index 000000000..e75985d44 --- /dev/null +++ b/common/defs/bitcoin/denarius.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Denarius", + "coin_shortcut": "DNR", + "coin_label": "Denarius", + "website": "https://denarius.io", + "github": "https://github.com/carsenk/denarius", + "maintainer": "carsenk ", + "curve_name": "secp256k1", + "address_type": 30, + "address_type_p2sh": 90, + "maxfee_kb": 100000, + "minfee_kb": 10000, + "signed_message_header": "Denarius Signed Message:\n", + "hash_genesis_block": "00000d5dbbda01621cfc16bbc1f9bf3264d641a5dbf0de89fd0182c2c4828fcd", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 116, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 54600, + "blocktime_seconds": 30, + "uri_prefix": "denarius", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/denarius.png b/common/defs/bitcoin/denarius.png new file mode 100644 index 000000000..e3ba79130 Binary files /dev/null and b/common/defs/bitcoin/denarius.png differ diff --git a/common/defs/bitcoin/digibyte.json b/common/defs/bitcoin/digibyte.json new file mode 100644 index 000000000..3c81a0a7e --- /dev/null +++ b/common/defs/bitcoin/digibyte.json @@ -0,0 +1,45 @@ +{ + "coin_name": "DigiByte", + "coin_shortcut": "DGB", + "coin_label": "DigiByte", + "website": "https://digibyte.io", + "github": "https://github.com/digibyte/digibyte", + "maintainer": "DigiByte ", + "curve_name": "secp256k1", + "address_type": 30, + "address_type_p2sh": 63, + "maxfee_kb": 500000, + "minfee_kb": 1000, + "signed_message_header": "DigiByte Signed Message:\n", + "hash_genesis_block": "7497ea1b465eb39f1c8f507bc877078fe016d6fcb6dfad3a64c98dcc6e1e8496", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "dgb", + "cashaddr_prefix": null, + "slip44": 20, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 15, + "uri_prefix": "digibyte", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://dgb1.trezor.io", + "https://dgb2.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/digibyte.png b/common/defs/bitcoin/digibyte.png new file mode 100644 index 000000000..0045c6852 Binary files /dev/null and b/common/defs/bitcoin/digibyte.png differ diff --git a/common/defs/bitcoin/dogecoin.json b/common/defs/bitcoin/dogecoin.json new file mode 100644 index 000000000..4869603e1 --- /dev/null +++ b/common/defs/bitcoin/dogecoin.json @@ -0,0 +1,45 @@ +{ + "coin_name": "Dogecoin", + "coin_shortcut": "DOGE", + "coin_label": "Dogecoin", + "website": "https://dogecoin.com", + "github": "https://github.com/dogecoin/dogecoin", + "maintainer": "Karel Bilek ", + "curve_name": "secp256k1", + "address_type": 30, + "address_type_p2sh": 22, + "maxfee_kb": 1000000000, + "minfee_kb": 1000, + "signed_message_header": "Dogecoin Signed Message:\n", + "hash_genesis_block": "1a91e3dace36e2be3bf030a65679fe821aa1d6ef92e7c9902eb318182c355691", + "xprv_magic": 49988504, + "xpub_magic": 49990397, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 3, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 100000 + }, + "dust_limit": 10000000, + "blocktime_seconds": 60, + "uri_prefix": "dogecoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://doge1.trezor.io", + "https://doge2.trezor.io", + "https://doge3.trezor.io", + "https://doge4.trezor.io", + "https://doge5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/dogecoin.png b/common/defs/bitcoin/dogecoin.png new file mode 100644 index 000000000..856d99eef Binary files /dev/null and b/common/defs/bitcoin/dogecoin.png differ diff --git a/common/defs/bitcoin/feathercoin.json b/common/defs/bitcoin/feathercoin.json new file mode 100644 index 000000000..504effe99 --- /dev/null +++ b/common/defs/bitcoin/feathercoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Feathercoin", + "coin_shortcut": "FTC", + "coin_label": "Feathercoin", + "website": "https://feathercoin.com", + "github": "https://github.com/FeatherCoin/Feathercoin", + "maintainer": "Lucas Betschart ", + "curve_name": "secp256k1", + "address_type": 14, + "address_type_p2sh": 5, + "maxfee_kb": 40000000, + "minfee_kb": 1000, + "signed_message_header": "Feathercoin Signed Message:\n", + "hash_genesis_block": "12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2", + "xprv_magic": 76077806, + "xpub_magic": 76069926, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "fc", + "cashaddr_prefix": null, + "slip44": 8, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 54600, + "blocktime_seconds": 60, + "uri_prefix": "feathercoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://bitcore.feathercoin.com" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/feathercoin.png b/common/defs/bitcoin/feathercoin.png new file mode 100644 index 000000000..8f2ef24dd Binary files /dev/null and b/common/defs/bitcoin/feathercoin.png differ diff --git a/common/defs/bitcoin/flashcoin.json b/common/defs/bitcoin/flashcoin.json new file mode 100644 index 000000000..e474ad536 --- /dev/null +++ b/common/defs/bitcoin/flashcoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Flashcoin", + "coin_shortcut": "FLASH", + "coin_label": "Flashcoin", + "website": "https://www.flashcoin.io", + "github": "https://github.com/flash-coin", + "maintainer": "flashbountyhunter ", + "curve_name": "secp256k1", + "address_type": 68, + "address_type_p2sh": 130, + "maxfee_kb": 4000000, + "minfee_kb": 1000, + "signed_message_header": "Flashcoin Signed Message:\n", + "hash_genesis_block": "aa0cf4f5ce0a3c550ce5674c1e808c417cf5077b4e95bda1d6fbaeaf4258972b", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "flash", + "cashaddr_prefix": null, + "slip44": 120, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 0 + }, + "dust_limit": 10000, + "blocktime_seconds": 60, + "uri_prefix": "flashcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://explorer.flashcoin.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/flashcoin.png b/common/defs/bitcoin/flashcoin.png new file mode 100644 index 000000000..fdd469468 Binary files /dev/null and b/common/defs/bitcoin/flashcoin.png differ diff --git a/common/defs/bitcoin/florincoin.json b/common/defs/bitcoin/florincoin.json new file mode 100644 index 000000000..f39306429 --- /dev/null +++ b/common/defs/bitcoin/florincoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Florincoin", + "coin_shortcut": "FLO", + "coin_label": "Flo", + "website": "https://flo.cash", + "github": "https://github.com/floblockchain/flo", + "maintainer": "Robert English ", + "curve_name": "secp256k1", + "address_type": 35, + "address_type_p2sh": 94, + "maxfee_kb": 40000000, + "minfee_kb": 100000, + "signed_message_header": "Florincoin Signed Message:\n", + "hash_genesis_block": "09c7781c9df90708e278c35d38ea5c9041d7ecfcdd1c56ba67274b7cff3e1cea", + "xprv_magic": 15264107, + "xpub_magic": 1526049, + "xpub_magic_segwit_p2sh": 28471030, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "flo", + "cashaddr_prefix": null, + "slip44": 216, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 546, + "blocktime_seconds": 40, + "uri_prefix": "florincoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://livenet.flocha.in" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/florincoin.png b/common/defs/bitcoin/florincoin.png new file mode 100644 index 000000000..bee3dc52c Binary files /dev/null and b/common/defs/bitcoin/florincoin.png differ diff --git a/common/defs/bitcoin/fujicoin.json b/common/defs/bitcoin/fujicoin.json new file mode 100644 index 000000000..35fe18dc4 --- /dev/null +++ b/common/defs/bitcoin/fujicoin.json @@ -0,0 +1,44 @@ +{ + "coin_name": "Fujicoin", + "coin_shortcut": "FJC", + "coin_label": "Fujicoin", + "website": "https://fujicoin.org", + "github": "https://github.com/fujicoin/fujicoin", + "maintainer": "motty ", + "curve_name": "secp256k1", + "address_type": 36, + "address_type_p2sh": 16, + "maxfee_kb": 10000000, + "minfee_kb": 100000, + "signed_message_header": "FujiCoin Signed Message:\n", + "hash_genesis_block": "adb6d9cfd74075e7f91608add4bd2a2ea636f70856183086842667a1597714a0", + "xpub_magic": 76067358, + "xprv_magic": 76066276, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "fc", + "cashaddr_prefix": null, + "slip44": 75, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 100, + "Economy": 200, + "Normal": 500, + "High": 1000 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "fujicoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://explorer.fujicoin.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/fujicoin.png b/common/defs/bitcoin/fujicoin.png new file mode 100644 index 000000000..d77fcbe5b Binary files /dev/null and b/common/defs/bitcoin/fujicoin.png differ diff --git a/common/defs/bitcoin/gamecredits.json b/common/defs/bitcoin/gamecredits.json new file mode 100644 index 000000000..d3d32b66a --- /dev/null +++ b/common/defs/bitcoin/gamecredits.json @@ -0,0 +1,41 @@ +{ + "coin_name": "GameCredits", + "coin_shortcut": "GAME", + "coin_label": "GameCredits", + "website": "https://gamecredits.org", + "github": "https://github.com/gamecredits-project/gamecredits", + "maintainer": "Samad Sajanlal ", + "curve_name": "secp256k1", + "address_type": 38, + "address_type_p2sh": 62, + "maxfee_kb": 5000000, + "minfee_kb": 100000, + "signed_message_header": "GameCredits Signed Message:\n", + "hash_genesis_block": "91ec5f25ee9a0ffa1af7d4da4db9a552228dd2dc77cdb15b738be4e1f55f30ee", + "xpub_magic": 27106558, + "xprv_magic": 27108450, + "xpub_magic_segwit_p2sh": 28471030, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "game", + "cashaddr_prefix": null, + "slip44": 101, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 54600, + "blocktime_seconds": 90, + "uri_prefix": "gamecredits", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook.gamecredits.network" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/gamecredits.png b/common/defs/bitcoin/gamecredits.png new file mode 100644 index 000000000..df88f04ca Binary files /dev/null and b/common/defs/bitcoin/gamecredits.png differ diff --git a/common/defs/bitcoin/gincoin.json b/common/defs/bitcoin/gincoin.json new file mode 100644 index 000000000..a23bd8a61 --- /dev/null +++ b/common/defs/bitcoin/gincoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Gincoin", + "coin_shortcut": "GIN", + "coin_label": "GIN", + "website": "https://gincoin.io", + "github": "https://github.com/gincoin-dev/gincoin-core", + "maintainer": "Dragos Badea ", + "curve_name": "secp256k1", + "address_type": 38, + "address_type_p2sh": 10, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000cd6bde619b2c3b23ad2e384328a450a37fa28731debf748c3b17f91f97d", + "xprv_magic": 50221816, + "xpub_magic": 50221772, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 2000, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 120, + "uri_prefix": "gincoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook.gincoin.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/gincoin.png b/common/defs/bitcoin/gincoin.png new file mode 100644 index 000000000..8aa1a30c0 Binary files /dev/null and b/common/defs/bitcoin/gincoin.png differ diff --git a/common/defs/bitcoin/groestlcoin.json b/common/defs/bitcoin/groestlcoin.json new file mode 100644 index 000000000..e229280b4 --- /dev/null +++ b/common/defs/bitcoin/groestlcoin.json @@ -0,0 +1,44 @@ +{ + "coin_name": "Groestlcoin", + "coin_shortcut": "GRS", + "coin_label": "Groestlcoin", + "website": "https://www.groestlcoin.org", + "github": "https://github.com/Groestlcoin/groestlcoin", + "maintainer": "Yura Pakhuchiy ", + "curve_name": "secp256k1_groestl", + "address_type": 36, + "address_type_p2sh": 5, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "GroestlCoin Signed Message:\n", + "hash_genesis_block": "00000ac5927c594d49cc0bdb81759d0da8297eb614683d3acb62f0703b639023", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "grs", + "cashaddr_prefix": null, + "slip44": 17, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "groestlcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://groestlsight.groestlcoin.org", + "https://grsblocks.com" + ], + "blockbook": [ + "https://blockbook.groestlcoin.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/groestlcoin.png b/common/defs/bitcoin/groestlcoin.png new file mode 100644 index 000000000..97bf6bd69 Binary files /dev/null and b/common/defs/bitcoin/groestlcoin.png differ diff --git a/common/defs/bitcoin/groestlcoin_testnet.json b/common/defs/bitcoin/groestlcoin_testnet.json new file mode 100644 index 000000000..530765a96 --- /dev/null +++ b/common/defs/bitcoin/groestlcoin_testnet.json @@ -0,0 +1,43 @@ +{ + "coin_name": "Groestlcoin Testnet", + "coin_shortcut": "tGRS", + "coin_label": "Groestlcoin Testnet", + "website": "https://www.groestlcoin.org", + "github": "https://github.com/Groestlcoin/groestlcoin", + "maintainer": "Yura Pakhuchiy ", + "curve_name": "secp256k1_groestl", + "address_type": 111, + "address_type_p2sh": 196, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "GroestlCoin Signed Message:\n", + "hash_genesis_block": "000000ffbb50fc9898cdd36ec163e6ba23230164c0052a28876255b7dcf2cd36", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "tgrs", + "cashaddr_prefix": null, + "slip44": 1, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "groestlcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://groestlsight-test.groestlcoin.org" + ], + "blockbook": [ + "https://blockbook-test.groestlcoin.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/groestlcoin_testnet.png b/common/defs/bitcoin/groestlcoin_testnet.png new file mode 100644 index 000000000..68ffd86e2 Binary files /dev/null and b/common/defs/bitcoin/groestlcoin_testnet.png differ diff --git a/common/defs/bitcoin/komodo.json b/common/defs/bitcoin/komodo.json new file mode 100644 index 000000000..8c0490e41 --- /dev/null +++ b/common/defs/bitcoin/komodo.json @@ -0,0 +1,46 @@ +{ + "coin_name": "Komodo", + "coin_shortcut": "KMD", + "coin_label": "Komodo", + "website": "https://komodoplatform.com", + "github": "https://github.com/komodoplatform/komodo", + "maintainer": "Kadan Stadelmann ", + "curve_name": "secp256k1", + "address_type": 60, + "address_type_p2sh": 85, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "Komodo Signed Message:\n", + "hash_genesis_block": "027e3758c3a65b12aa1046462b486d0a63bfa1beae327897f56c5cfb7daaae71", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 141, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "komodo", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://api.kmd.dev" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": { + "1": 0, + "2": 0, + "3": 1537743641, + "4": 1991772603 + } +} diff --git a/common/defs/bitcoin/komodo.png b/common/defs/bitcoin/komodo.png new file mode 100644 index 000000000..4e55b520c Binary files /dev/null and b/common/defs/bitcoin/komodo.png differ diff --git a/common/defs/bitcoin/koto.json b/common/defs/bitcoin/koto.json new file mode 100644 index 000000000..0225e1b9d --- /dev/null +++ b/common/defs/bitcoin/koto.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Koto", + "coin_shortcut": "KOTO", + "coin_label": "Koto", + "website": "https://ko-to.org", + "github": "https://github.com/KotoDevelopers/koto", + "maintainer": "WO ", + "curve_name": "secp256k1", + "address_type": 6198, + "address_type_p2sh": 6203, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "Koto Signed Message:\n", + "hash_genesis_block": "6d424c350729ae633275d51dc3496e16cd1b1d195c164da00f39c499a2e9959e", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 510, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "koto", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [ + "https://insight.kotocoin.info" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/koto.png b/common/defs/bitcoin/koto.png new file mode 100644 index 000000000..a9c1d6d18 Binary files /dev/null and b/common/defs/bitcoin/koto.png differ diff --git a/common/defs/bitcoin/litecoin.json b/common/defs/bitcoin/litecoin.json new file mode 100644 index 000000000..55740e9b0 --- /dev/null +++ b/common/defs/bitcoin/litecoin.json @@ -0,0 +1,45 @@ +{ + "coin_name": "Litecoin", + "coin_shortcut": "LTC", + "coin_label": "Litecoin", + "website": "https://litecoin.org", + "github": "https://github.com/litecoin-project/litecoin", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 48, + "address_type_p2sh": 50, + "maxfee_kb": 40000000, + "minfee_kb": 100000, + "signed_message_header": "Litecoin Signed Message:\n", + "hash_genesis_block": "12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2", + "xprv_magic": 27106558, + "xpub_magic": 27108450, + "xpub_magic_segwit_p2sh": 28471030, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "ltc", + "cashaddr_prefix": null, + "slip44": 2, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "litecoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://ltc1.trezor.io", + "https://ltc2.trezor.io", + "https://ltc3.trezor.io", + "https://ltc4.trezor.io", + "https://ltc5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/litecoin.png b/common/defs/bitcoin/litecoin.png new file mode 100644 index 000000000..8c537114c Binary files /dev/null and b/common/defs/bitcoin/litecoin.png differ diff --git a/common/defs/bitcoin/litecoin_testnet.json b/common/defs/bitcoin/litecoin_testnet.json new file mode 100644 index 000000000..cea387b88 --- /dev/null +++ b/common/defs/bitcoin/litecoin_testnet.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Litecoin Testnet", + "coin_shortcut": "tLTC", + "coin_label": "Litecoin Testnet", + "website": "https://litecoin.org", + "github": "https://github.com/litecoin-project/litecoin", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 111, + "address_type_p2sh": 58, + "maxfee_kb": 40000000, + "minfee_kb": 1000, + "signed_message_header": "Litecoin Signed Message:\n", + "hash_genesis_block": "4966625a4b2851d9fdee139e56211a0d88575f59ed816ff5e6a63deb4e3e29a0", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "tltc", + "cashaddr_prefix": null, + "slip44": 1, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 54600, + "blocktime_seconds": 150, + "uri_prefix": "litecoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://testnet.litecore.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/litecoin_testnet.png b/common/defs/bitcoin/litecoin_testnet.png new file mode 100644 index 000000000..8c537114c Binary files /dev/null and b/common/defs/bitcoin/litecoin_testnet.png differ diff --git a/common/defs/bitcoin/megacoin.json b/common/defs/bitcoin/megacoin.json new file mode 100644 index 000000000..2386e6525 --- /dev/null +++ b/common/defs/bitcoin/megacoin.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Megacoin", + "coin_shortcut": "MEC", + "coin_label": "Megacoin", + "website": "https://www.megacoin.eu", + "github": "https://github.com/LIMXTEC/Megacoin", + "maintainer": "limxdev ", + "curve_name": "secp256k1", + "address_type": 50, + "address_type_p2sh": 5, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "MegaCoin Signed Message:\n", + "hash_genesis_block": "7520788e2d99eec7cf6cf7315577e1268e177fff94cb0a7caf6a458ceeea9ac2", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "mec", + "cashaddr_prefix": null, + "slip44": 217, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "megacoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/megacoin.png b/common/defs/bitcoin/megacoin.png new file mode 100644 index 000000000..de0e0e615 Binary files /dev/null and b/common/defs/bitcoin/megacoin.png differ diff --git a/common/defs/bitcoin/monacoin.json b/common/defs/bitcoin/monacoin.json new file mode 100644 index 000000000..81d5634f5 --- /dev/null +++ b/common/defs/bitcoin/monacoin.json @@ -0,0 +1,44 @@ +{ + "coin_name": "Monacoin", + "coin_shortcut": "MONA", + "coin_label": "Monacoin", + "website": "https://monacoin.org", + "github": "https://github.com/monacoinproject/monacoin", + "maintainer": "cryptcoin-junkey ", + "curve_name": "secp256k1", + "address_type": 50, + "address_type_p2sh": 55, + "maxfee_kb": 5000000, + "minfee_kb": 100000, + "signed_message_header": "Monacoin Signed Message:\n", + "hash_genesis_block": "ff9f1c0116d19de7c9963845e129f9ed1bfc0b376eb54fd7afa42e0d418c8bb6", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "mona", + "cashaddr_prefix": null, + "slip44": 22, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 54600, + "blocktime_seconds": 90, + "uri_prefix": "monacoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://mona.chainsight.info", + "https://insight.electrum-mona.org" + ], + "blockbook": [ + "https://blockbook.electrum-mona.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/monacoin.png b/common/defs/bitcoin/monacoin.png new file mode 100644 index 000000000..e026429d3 Binary files /dev/null and b/common/defs/bitcoin/monacoin.png differ diff --git a/common/defs/bitcoin/monetaryunit.json b/common/defs/bitcoin/monetaryunit.json new file mode 100644 index 000000000..d9be035c4 --- /dev/null +++ b/common/defs/bitcoin/monetaryunit.json @@ -0,0 +1,39 @@ +{ + "coin_name": "MonetaryUnit", + "coin_shortcut": "MUE", + "coin_label": "MonetaryUnit", + "website": "https://www.monetaryunit.org", + "github": "https://github.com/muecoin/MUECore", + "maintainer": "Sotiris Blad ", + "curve_name": "secp256k1", + "address_type": 16, + "address_type_p2sh": 76, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "MonetaryUnit Signed Message:\n", + "hash_genesis_block": "000002acd994a815401fbaae0e52404b32857efd0b7b0c77b8e0715ccdd6d437", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 31, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 40, + "uri_prefix": "monetaryunit", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/monetaryunit.png b/common/defs/bitcoin/monetaryunit.png new file mode 100644 index 000000000..19a646b9b Binary files /dev/null and b/common/defs/bitcoin/monetaryunit.png differ diff --git a/common/defs/bitcoin/myriad.json b/common/defs/bitcoin/myriad.json new file mode 100644 index 000000000..ca47fd459 --- /dev/null +++ b/common/defs/bitcoin/myriad.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Myriad", + "coin_shortcut": "XMY", + "coin_label": "Myriad", + "curve_name": "secp256k1", + "website": "https://www.myriadcoin.org", + "github": "https://github.com/myriadcoin/myriadcoin", + "maintainer": "Adam Hickerson ", + "address_type": 50, + "address_type_p2sh": 9, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Myriadcoin Signed Message:\n", + "hash_genesis_block": "00000ffde4c020b5938441a0ea3d314bf619eff0b38f32f78f7583cffa1ea485", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "xmy", + "cashaddr_prefix": null, + "slip44": 90, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "myriadcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/myriad.png b/common/defs/bitcoin/myriad.png new file mode 100644 index 000000000..d24fb5221 Binary files /dev/null and b/common/defs/bitcoin/myriad.png differ diff --git a/common/defs/bitcoin/namecoin.json b/common/defs/bitcoin/namecoin.json new file mode 100644 index 000000000..c7a580918 --- /dev/null +++ b/common/defs/bitcoin/namecoin.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Namecoin", + "coin_shortcut": "NMC", + "coin_label": "Namecoin", + "website": "https://namecoin.org", + "github": "https://github.com/namecoin/namecoin-core", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 52, + "address_type_p2sh": 5, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Namecoin Signed Message:\n", + "hash_genesis_block": "000000000062b72c5e2ceb45fbc8587e807c155b0da735e6483dfba2f0a9c770", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 7, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 2940, + "blocktime_seconds": 600, + "uri_prefix": "namecoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://nmc1.trezor.io", + "https://nmc2.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/namecoin.png b/common/defs/bitcoin/namecoin.png new file mode 100644 index 000000000..7f99692c6 Binary files /dev/null and b/common/defs/bitcoin/namecoin.png differ diff --git a/common/defs/bitcoin/nix.json b/common/defs/bitcoin/nix.json new file mode 100644 index 000000000..031655cf4 --- /dev/null +++ b/common/defs/bitcoin/nix.json @@ -0,0 +1,39 @@ +{ + "coin_name": "NIX", + "coin_shortcut": "NIX", + "coin_label": "NIX", + "website": "https://nixplatform.io", + "github": "https://github.com/nixplatform/nixcore", + "maintainer": "mattt21 ", + "curve_name": "secp256k1", + "address_type": 38, + "address_type_p2sh": 53, + "maxfee_kb": 40000000, + "minfee_kb": 0, + "signed_message_header": "NIX Signed Message:\n", + "hash_genesis_block": "dd28ad86def767c3cfc34267a950d871fc7462bc57ea4a929fc3596d9b598e41", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "nix", + "cashaddr_prefix": null, + "slip44": 400, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 54600, + "blocktime_seconds": 120, + "uri_prefix": "nix", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": ["https://blockchain.nixplatform.io"], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/nix.png b/common/defs/bitcoin/nix.png new file mode 100644 index 000000000..132c4062b Binary files /dev/null and b/common/defs/bitcoin/nix.png differ diff --git a/common/defs/bitcoin/pesetacoin.json b/common/defs/bitcoin/pesetacoin.json new file mode 100644 index 000000000..f05244955 --- /dev/null +++ b/common/defs/bitcoin/pesetacoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Pesetacoin", + "coin_shortcut": "PTC", + "coin_label": "Pesetacoin", + "website": "https://pesetacoin.info", + "github": "https://github.com/FundacionPesetacoin/PesetacoinCore", + "maintainer": "Rw ", + "curve_name": "secp256k1", + "address_type": 47, + "address_type_p2sh": 22, + "maxfee_kb": 1000000000, + "minfee_kb": 1000, + "signed_message_header": "Pesetacoin Signed Message:\n", + "hash_genesis_block": "edfe5830b53251bfff733600b1cd5c192e761c011b055f07924634818c906438", + "xprv_magic": 76079604, + "xpub_magic": 76071982, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 109, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 10000000, + "blocktime_seconds": 60, + "uri_prefix": "pesetacoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://live.pesetacoin.info" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/pesetacoin.png b/common/defs/bitcoin/pesetacoin.png new file mode 100644 index 000000000..3a53fe66a Binary files /dev/null and b/common/defs/bitcoin/pesetacoin.png differ diff --git a/common/defs/bitcoin/pivx.json b/common/defs/bitcoin/pivx.json new file mode 100644 index 000000000..952167686 --- /dev/null +++ b/common/defs/bitcoin/pivx.json @@ -0,0 +1,41 @@ +{ + "coin_name": "PIVX", + "coin_shortcut": "PIVX", + "coin_label": "PIVX", + "website": "https://pivx.org", + "github": "https://github.com/PIVX-Project/PIVX", + "maintainer": "Random Zebra ", + "curve_name": "secp256k1", + "address_type": 30, + "address_type_p2sh": 13, + "maxfee_kb": 100000, + "minfee_kb": 100, + "signed_message_header": "DarkNet Signed Message:\n", + "hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818", + "xprv_magic": 35729707, + "xpub_magic": 36513075, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 119, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "pivx", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook.pivx.link" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/pivx.png b/common/defs/bitcoin/pivx.png new file mode 100644 index 000000000..252fc8d88 Binary files /dev/null and b/common/defs/bitcoin/pivx.png differ diff --git a/common/defs/bitcoin/pivx_testnet.json b/common/defs/bitcoin/pivx_testnet.json new file mode 100644 index 000000000..43767846c --- /dev/null +++ b/common/defs/bitcoin/pivx_testnet.json @@ -0,0 +1,41 @@ +{ + "coin_name": "PIVX Testnet", + "coin_shortcut": "tPIVX", + "coin_label": "PIVX Testnet", + "website": "https://pivx.org", + "github": "https://github.com/PIVX-Project/PIVX", + "maintainer": "Random Zebra ", + "curve_name": "secp256k1", + "address_type": 139, + "address_type_p2sh": 19, + "maxfee_kb": 100000, + "minfee_kb": 100, + "signed_message_header": "DarkNet Signed Message:\n", + "hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818", + "xprv_magic": 981489719, + "xpub_magic": 981492128, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 54600, + "blocktime_seconds": 60, + "uri_prefix": "pivx", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook-testnet.pivx.link" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/pivx_testnet.png b/common/defs/bitcoin/pivx_testnet.png new file mode 100644 index 000000000..314fc8759 Binary files /dev/null and b/common/defs/bitcoin/pivx_testnet.png differ diff --git a/common/defs/bitcoin/polis.json b/common/defs/bitcoin/polis.json new file mode 100644 index 000000000..ab1a25a1b --- /dev/null +++ b/common/defs/bitcoin/polis.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Polis", + "coin_shortcut": "POLIS", + "coin_label": "Polis", + "website": "https://www.polispay.org", + "github": "https://github.com/polispay/polis", + "maintainer": "Cronos ", + "curve_name": "secp256k1", + "address_type": 55, + "address_type_p2sh": 56, + "maxfee_kb": 100000, + "minfee_kb": 1000, + "signed_message_header": "Polis Signed Message:\n", + "hash_genesis_block": "000009701eb781a8113b1af1d814e2f060f6408a2c990db291bc5108a1345c1e", + "xprv_magic": 65165637, + "xpub_magic": 65166718, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1997, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 120, + "uri_prefix": "polis", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://blockbook.polispay.org" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/polis.png b/common/defs/bitcoin/polis.png new file mode 100644 index 000000000..56c8827c8 Binary files /dev/null and b/common/defs/bitcoin/polis.png differ diff --git a/common/defs/bitcoin/primecoin.json b/common/defs/bitcoin/primecoin.json new file mode 100644 index 000000000..dab237e2e --- /dev/null +++ b/common/defs/bitcoin/primecoin.json @@ -0,0 +1,39 @@ +{ + "coin_name": "Primecoin", + "coin_shortcut": "XPM", + "coin_label": "Primecoin", + "website": "https://primecoin.io", + "github": "https://github.com/primecoin/primecoin", + "maintainer": "James Skrowvedeht ", + "curve_name": "secp256k1", + "address_type": 23, + "address_type_p2sh": 83, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "Primecoin Signed Message:\n", + "hash_genesis_block": "963d17ba4dc753138078a2f56afb3af9674e2546822badff26837db9a0152106", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 24, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "primecoin", + "min_address_length": 26, + "max_address_length": 35, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/primecoin.png b/common/defs/bitcoin/primecoin.png new file mode 100644 index 000000000..178ee01cf Binary files /dev/null and b/common/defs/bitcoin/primecoin.png differ diff --git a/common/defs/bitcoin/qtum.json b/common/defs/bitcoin/qtum.json new file mode 100644 index 000000000..552d1fee2 --- /dev/null +++ b/common/defs/bitcoin/qtum.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Qtum", + "coin_shortcut": "QTUM", + "coin_label": "Qtum", + "website": "https://qtum.org", + "github": "https://github.com/qtumproject/qtum", + "maintainer": "CodeFace ", + "curve_name": "secp256k1", + "address_type": 58, + "address_type_p2sh": 50, + "maxfee_kb": 40000000, + "minfee_kb": 400000, + "signed_message_header": "Qtum Signed Message:\n", + "hash_genesis_block": "000075aef83cf2853580f8ae8ce6f8c3096cfa21d98334d6e3f95e5582ed986c", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "qc", + "cashaddr_prefix": null, + "slip44": 2301, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 410, + "Economy": 500, + "Normal": 600, + "High": 2000 + }, + "dust_limit": 218400, + "blocktime_seconds": 128, + "uri_prefix": "qtum", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/qtum.png b/common/defs/bitcoin/qtum.png new file mode 100644 index 000000000..7d6124c1f Binary files /dev/null and b/common/defs/bitcoin/qtum.png differ diff --git a/common/defs/bitcoin/qtum_testnet.json b/common/defs/bitcoin/qtum_testnet.json new file mode 100644 index 000000000..7e897d9fd --- /dev/null +++ b/common/defs/bitcoin/qtum_testnet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Qtum Testnet", + "coin_shortcut": "tQTUM", + "coin_label": "Qtum Testnet", + "website": "https://qtum.org", + "github": "https://github.com/qtumproject/qtum", + "maintainer": "CodeFace ", + "curve_name": "secp256k1", + "address_type": 120, + "address_type_p2sh": 110, + "maxfee_kb": 40000000, + "minfee_kb": 400000, + "signed_message_header": "Qtum Signed Message:\n", + "hash_genesis_block": "0000e803ee215c0684ca0d2f9220594d3f828617972aad66feb2ba51f5e14222", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": 71979618, + "xpub_magic_segwit_native": 73342198, + "bech32_prefix": "tq", + "cashaddr_prefix": null, + "slip44": 1, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 410, + "Economy": 500, + "Normal": 600, + "High": 2000 + }, + "dust_limit": 218400, + "blocktime_seconds": 128, + "uri_prefix": "qtum", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/qtum_testnet.png b/common/defs/bitcoin/qtum_testnet.png new file mode 100644 index 000000000..7d6124c1f Binary files /dev/null and b/common/defs/bitcoin/qtum_testnet.png differ diff --git a/common/defs/bitcoin/ravencoin.json b/common/defs/bitcoin/ravencoin.json new file mode 100644 index 000000000..4374d6239 --- /dev/null +++ b/common/defs/bitcoin/ravencoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Ravencoin", + "coin_shortcut": "RVN", + "coin_label": "Ravencoin", + "website": "https://ravencoin.org", + "github": "https://github.com/RavenProject/Ravencoin", + "maintainer": "Tron Black ", + "curve_name": "secp256k1", + "address_type": 60, + "address_type_p2sh": 122, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Ravencoin Signed Message:\n", + "hash_genesis_block": "0000006b444bc2f2ffe627be9d9e7e7a0730000870ef6eb6da46c8eae389df90", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 175, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 60, + "uri_prefix": "raven", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://ravencoin.network" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/ravencoin.png b/common/defs/bitcoin/ravencoin.png new file mode 100644 index 000000000..4b0124781 Binary files /dev/null and b/common/defs/bitcoin/ravencoin.png differ diff --git a/common/defs/bitcoin/smartcash.json b/common/defs/bitcoin/smartcash.json new file mode 100644 index 000000000..77d5f1716 --- /dev/null +++ b/common/defs/bitcoin/smartcash.json @@ -0,0 +1,44 @@ +{ + "coin_name": "SmartCash", + "coin_shortcut": "SMART", + "coin_label": "SmartCash", + "website": "https://smartcash.cc", + "github": "https://github.com/SmartCash/Core-Smart", + "maintainer": "Leandro Reinaux ", + "curve_name": "secp256k1_smart", + "address_type": 63, + "address_type_p2sh": 18, + "maxfee_kb": 1000000, + "minfee_kb": 0, + "signed_message_header": "SmartCash Signed Message:\n", + "hash_genesis_block": "000007acc6970b812948d14ea5a0a13db0fdd07d5047c7e69101fa8b361e05a4", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 224, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1, + "Economy": 10, + "Normal": 100, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 55, + "uri_prefix": "smart", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://insight.smartcash.cc" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/smartcash.png b/common/defs/bitcoin/smartcash.png new file mode 100644 index 000000000..e8a974e6e Binary files /dev/null and b/common/defs/bitcoin/smartcash.png differ diff --git a/common/defs/bitcoin/smartcash_testnet.json b/common/defs/bitcoin/smartcash_testnet.json new file mode 100644 index 000000000..36bbdd78f --- /dev/null +++ b/common/defs/bitcoin/smartcash_testnet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "SmartCash Testnet", + "coin_shortcut": "tSMART", + "coin_label": "SmartCash Testnet", + "website": "https://smartcash.cc", + "github": "https://github.com/SmartCash/Core-Smart", + "maintainer": "Leandro Reinaux ", + "curve_name": "secp256k1_smart", + "address_type": 65, + "address_type_p2sh": 21, + "maxfee_kb": 1000000, + "minfee_kb": 0, + "signed_message_header": "SmartCash Signed Message:\n", + "hash_genesis_block": "0000027235b5679bcd28c90d03d4bf1a9ba4c07c4efcc1c87d6c68cce25e6e5d", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 224, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1, + "Economy": 10, + "Normal": 100, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 55, + "uri_prefix": "testsmart", + "min_address_length": 27, + "max_address_length": 35, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/smartcash_testnet.png b/common/defs/bitcoin/smartcash_testnet.png new file mode 100644 index 000000000..b6254426f Binary files /dev/null and b/common/defs/bitcoin/smartcash_testnet.png differ diff --git a/common/defs/bitcoin/stakenet.json b/common/defs/bitcoin/stakenet.json new file mode 100644 index 000000000..df1b6e08f --- /dev/null +++ b/common/defs/bitcoin/stakenet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Stakenet", + "coin_shortcut": "XSN", + "coin_label": "Stakenet", + "website": "https://stakenet.io", + "github": "https://github.com/X9Developers/XSN", + "maintainer": "Alexis Hernandez ", + "curve_name": "secp256k1", + "address_type": 76, + "address_type_p2sh": 16, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000c822abdbb23e28f79a49d29b41429737c6c7e15df40d1b1f1b35907ae34", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "xc", + "cashaddr_prefix": null, + "slip44": 199, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 10, + "Economy": 70, + "Normal": 140, + "High": 200 + }, + "dust_limit": 1000, + "blocktime_seconds": 60, + "uri_prefix": "stakenet", + "min_address_length": 27, + "max_address_length": 47, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null + } \ No newline at end of file diff --git a/common/defs/bitcoin/stakenet.png b/common/defs/bitcoin/stakenet.png new file mode 100644 index 000000000..cfe2658c5 Binary files /dev/null and b/common/defs/bitcoin/stakenet.png differ diff --git a/common/defs/bitcoin/terracoin.json b/common/defs/bitcoin/terracoin.json new file mode 100644 index 000000000..76528faa9 --- /dev/null +++ b/common/defs/bitcoin/terracoin.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Terracoin", + "coin_shortcut": "TRC", + "coin_label": "Terracoin", + "website": "https://terracoin.io", + "github": "https://github.com/terracoin/terracoin", + "maintainer": "The Terracoin Foundation ", + "curve_name": "secp256k1", + "address_type": 0, + "address_type_p2sh": 5, + "maxfee_kb": 100000, + "minfee_kb": 10000, + "signed_message_header": "DarkCoin Signed Message:\n", + "hash_genesis_block": "00000000804bbc6a621a9dbb564ce469f492e1ccf2d70f8a6b241e26a277afa2", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 83, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 5460, + "blocktime_seconds": 120, + "uri_prefix": "terracoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://insight.terracoin.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/terracoin.png b/common/defs/bitcoin/terracoin.png new file mode 100644 index 000000000..3c4af1c00 Binary files /dev/null and b/common/defs/bitcoin/terracoin.png differ diff --git a/common/defs/bitcoin/vertcoin.json b/common/defs/bitcoin/vertcoin.json new file mode 100644 index 000000000..636fb79b1 --- /dev/null +++ b/common/defs/bitcoin/vertcoin.json @@ -0,0 +1,45 @@ +{ + "coin_name": "Vertcoin", + "coin_shortcut": "VTC", + "coin_label": "Vertcoin", + "website": "https://vertcoin.org", + "github": "https://github.com/vertcoin-project/vertcoin-core", + "maintainer": "Jochen Hoenicke ", + "curve_name": "secp256k1", + "address_type": 71, + "address_type_p2sh": 5, + "maxfee_kb": 40000000, + "minfee_kb": 100000, + "signed_message_header": "Vertcoin Signed Message:\n", + "hash_genesis_block": "4d96a915f49d40b1e5c2844d1ee2dccb90013a990ccea12c492d22110489f0c4", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "vtc", + "cashaddr_prefix": null, + "slip44": 28, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 1000 + }, + "dust_limit": 54600, + "blocktime_seconds": 150, + "uri_prefix": "vertcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [], + "blockbook": [ + "https://vtc1.trezor.io", + "https://vtc2.trezor.io", + "https://vtc3.trezor.io", + "https://vtc4.trezor.io", + "https://vtc5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/vertcoin.png b/common/defs/bitcoin/vertcoin.png new file mode 100644 index 000000000..22ff022a8 Binary files /dev/null and b/common/defs/bitcoin/vertcoin.png differ diff --git a/common/defs/bitcoin/viacoin.json b/common/defs/bitcoin/viacoin.json new file mode 100644 index 000000000..81ad49a8e --- /dev/null +++ b/common/defs/bitcoin/viacoin.json @@ -0,0 +1,44 @@ +{ + "coin_name": "Viacoin", + "coin_shortcut": "VIA", + "coin_label": "Viacoin", + "website": "https://viacoin.org", + "github": "https://github.com/viacoin", + "maintainer": "romanornr ", + "curve_name": "secp256k1", + "address_type": 71, + "address_type_p2sh": 33, + "maxfee_kb": 40000000, + "minfee_kb": 1000, + "signed_message_header": "Viacoin Signed Message:\n", + "hash_genesis_block": "4e9b54001f9976049830128ec0331515eaabe35a70970d79971da1539a400ba1", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": 77429938, + "xpub_magic_segwit_native": 78792518, + "bech32_prefix": "via", + "cashaddr_prefix": null, + "slip44": 14, + "segwit": true, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1000, + "Economy": 7000, + "Normal": 14000, + "High": 20000 + }, + "dust_limit": 54600, + "blocktime_seconds": 24, + "uri_prefix": "viacoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://explorer.viacoin.org" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/viacoin.png b/common/defs/bitcoin/viacoin.png new file mode 100644 index 000000000..dcb0635da Binary files /dev/null and b/common/defs/bitcoin/viacoin.png differ diff --git a/common/defs/bitcoin/zcash.json b/common/defs/bitcoin/zcash.json new file mode 100644 index 000000000..5e9b5895c --- /dev/null +++ b/common/defs/bitcoin/zcash.json @@ -0,0 +1,50 @@ +{ + "coin_name": "Zcash", + "coin_shortcut": "ZEC", + "coin_label": "Zcash", + "website": "https://z.cash", + "github": "https://github.com/zcash/zcash", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 7352, + "address_type_p2sh": 7357, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "Zcash Signed Message:\n", + "hash_genesis_block": "00040fe8ec8471911baa1db1266ea15dd06b4a8a5c453883c000b031973dce08", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 133, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "zcash", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [], + "blockbook": [ + "https://zec1.trezor.io", + "https://zec2.trezor.io", + "https://zec3.trezor.io", + "https://zec4.trezor.io", + "https://zec5.trezor.io" + ], + "cooldown": 100, + "consensus_branch_id": { + "1": 0, + "2": 0, + "3": 1537743641, + "4": 1991772603 + } +} diff --git a/common/defs/bitcoin/zcash.png b/common/defs/bitcoin/zcash.png new file mode 100644 index 000000000..213908ae4 Binary files /dev/null and b/common/defs/bitcoin/zcash.png differ diff --git a/common/defs/bitcoin/zcash_testnet.json b/common/defs/bitcoin/zcash_testnet.json new file mode 100644 index 000000000..ab95d367b --- /dev/null +++ b/common/defs/bitcoin/zcash_testnet.json @@ -0,0 +1,46 @@ +{ + "coin_name": "Zcash Testnet", + "coin_shortcut": "TAZ", + "coin_label": "Zcash Testnet", + "website": "https://z.cash", + "github": "https://github.com/zcash/zcash", + "maintainer": "Pavol Rusnak ", + "curve_name": "secp256k1", + "address_type": 7461, + "address_type_p2sh": 7354, + "maxfee_kb": 10000000, + "minfee_kb": 1000, + "signed_message_header": "Zcash Signed Message:\n", + "hash_genesis_block": "05a60a92d99d85997cce3b87616c089f6124d7342af37106edc76126334a2c38", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "zcash", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [ + "https://explorer.testnet.z.cash" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": { + "1": 0, + "2": 0, + "3": 1537743641, + "4": 1991772603 + } +} diff --git a/common/defs/bitcoin/zcash_testnet.png b/common/defs/bitcoin/zcash_testnet.png new file mode 100644 index 000000000..3e833cf67 Binary files /dev/null and b/common/defs/bitcoin/zcash_testnet.png differ diff --git a/common/defs/bitcoin/zclassic.json b/common/defs/bitcoin/zclassic.json new file mode 100644 index 000000000..7b4a58445 --- /dev/null +++ b/common/defs/bitcoin/zclassic.json @@ -0,0 +1,41 @@ +{ + "coin_name": "ZClassic", + "coin_shortcut": "ZCL", + "coin_label": "ZClassic", + "website": "https://zclassic.org", + "github": "https://github.com/ZclassicCommunity", + "maintainer": "James Skrowvedeht ", + "curve_name": "secp256k1", + "address_type": 7352, + "address_type_p2sh": 7357, + "maxfee_kb": 1000000, + "minfee_kb": 1000, + "signed_message_header": "Zcash Signed Message:\n", + "hash_genesis_block": "0007104ccda289427919efc39dc9e4d499804b7bebc22df55f8b834301260602", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 147, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "zclassic", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [ + "https://explorer.zcl.zeltrez.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/zclassic.png b/common/defs/bitcoin/zclassic.png new file mode 100644 index 000000000..570835e44 Binary files /dev/null and b/common/defs/bitcoin/zclassic.png differ diff --git a/common/defs/bitcoin/zcoin.json b/common/defs/bitcoin/zcoin.json new file mode 100644 index 000000000..55788a749 --- /dev/null +++ b/common/defs/bitcoin/zcoin.json @@ -0,0 +1,44 @@ +{ + "coin_name": "Zcoin", + "coin_shortcut": "XZC", + "coin_label": "Zcoin", + "website": "https://zcoin.io", + "github": "https://github.com/zcoinofficial/zcoin", + "maintainer": "Yura Pakhuchiy ", + "curve_name": "secp256k1", + "address_type": 82, + "address_type_p2sh": 7, + "maxfee_kb": 1000000, + "minfee_kb": 0, + "signed_message_header": "Zcoin Signed Message:\n", + "hash_genesis_block": "4381deb85b1b2c9843c222944b616d997516dcbd6a964e1eaf0def0830695233", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 136, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1, + "Economy": 10, + "Normal": 100, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "zcoin", + "min_address_length": 27, + "max_address_length": 34, + "bitcore": [ + "https://insight.zcoin.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/zcoin.png b/common/defs/bitcoin/zcoin.png new file mode 100644 index 000000000..68d205458 Binary files /dev/null and b/common/defs/bitcoin/zcoin.png differ diff --git a/common/defs/bitcoin/zcoin_testnet.json b/common/defs/bitcoin/zcoin_testnet.json new file mode 100644 index 000000000..fe7653466 --- /dev/null +++ b/common/defs/bitcoin/zcoin_testnet.json @@ -0,0 +1,42 @@ +{ + "coin_name": "Zcoin Testnet", + "coin_shortcut": "tXZC", + "coin_label": "Zcoin Testnet", + "website": "https://zcoin.io", + "github": "https://github.com/zcoinofficial/zcoin", + "maintainer": "Yura Pakhuchiy ", + "curve_name": "secp256k1", + "address_type": 65, + "address_type_p2sh": 178, + "maxfee_kb": 1000000, + "minfee_kb": 0, + "signed_message_header": "Zcoin Signed Message:\n", + "hash_genesis_block": "7ac038c193c2158c428c59f9ae0c02a07115141c6e9dc244ae96132e99b4e642", + "xprv_magic": 70615956, + "xpub_magic": 70617039, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 1, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": false, + "default_fee_b": { + "Low": 1, + "Economy": 10, + "Normal": 100, + "High": 200 + }, + "dust_limit": 546, + "blocktime_seconds": 600, + "uri_prefix": "testzcoin", + "min_address_length": 27, + "max_address_length": 35, + "bitcore": [], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/zcoin_testnet.png b/common/defs/bitcoin/zcoin_testnet.png new file mode 100644 index 000000000..7eee1674b Binary files /dev/null and b/common/defs/bitcoin/zcoin_testnet.png differ diff --git a/common/defs/bitcoin/zencash.json b/common/defs/bitcoin/zencash.json new file mode 100644 index 000000000..d6c3c8abd --- /dev/null +++ b/common/defs/bitcoin/zencash.json @@ -0,0 +1,41 @@ +{ + "coin_name": "Zencash", + "coin_shortcut": "ZEN", + "coin_label": "Zencash", + "website": "https://zencash.com", + "github": "https://github.com/ZencashOfficial/zen", + "maintainer": "Zencash ", + "curve_name": "secp256k1", + "address_type": 8329, + "address_type_p2sh": 8342, + "maxfee_kb": 2000000, + "minfee_kb": 1000, + "signed_message_header": "Zencash Signed Message:\n", + "hash_genesis_block": "0007104ccda289427919efc39dc9e4d499804b7bebc22df55f8b834301260602", + "xprv_magic": 76066276, + "xpub_magic": 76067358, + "xpub_magic_segwit_p2sh": null, + "xpub_magic_segwit_native": null, + "bech32_prefix": null, + "cashaddr_prefix": null, + "slip44": 121, + "segwit": false, + "decred": false, + "fork_id": null, + "force_bip143": false, + "bip115": true, + "default_fee_b": { + "Normal": 10 + }, + "dust_limit": 546, + "blocktime_seconds": 150, + "uri_prefix": "zencash", + "min_address_length": 35, + "max_address_length": 95, + "bitcore": [ + "https://explorer.zensystem.io" + ], + "blockbook": [], + "cooldown": 100, + "consensus_branch_id": null +} diff --git a/common/defs/bitcoin/zencash.png b/common/defs/bitcoin/zencash.png new file mode 100644 index 000000000..2af517fa9 Binary files /dev/null and b/common/defs/bitcoin/zencash.png differ diff --git a/common/defs/coins b/common/defs/coins new file mode 120000 index 000000000..f3c139563 --- /dev/null +++ b/common/defs/coins @@ -0,0 +1 @@ +bitcoin \ No newline at end of file diff --git a/common/defs/coins_details.json b/common/defs/coins_details.json new file mode 100644 index 000000000..fc979a789 --- /dev/null +++ b/common/defs/coins_details.json @@ -0,0 +1,28545 @@ +{ + "coins": { + "bitcoin:ACM": { + "links": { + "Github": "https://github.com/Actinium-project/Actinium", + "Homepage": "https://actinium.org" + }, + "marketcap_usd": 227400, + "name": "Actinium", + "shortcut": "ACM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Actilectrum", + "url": "https://actilectrum.org" + } + ] + }, + "bitcoin:AXE": { + "links": { + "Github": "https://github.com/axerunners/axe", + "Homepage": "https://axerunners.com" + }, + "marketcap_usd": 0, + "name": "Axe", + "shortcut": "AXE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:BCH": { + "links": { + "Github": "https://github.com/Bitcoin-ABC/bitcoin-abc", + "Homepage": "https://www.bitcoincash.org" + }, + "marketcap_usd": 2347089001, + "name": "Bitcoin Cash", + "shortcut": "BCH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "Electron Cash", + "url": "https://electroncash.org" + } + ] + }, + "bitcoin:BITC": { + "links": { + "Github": "https://github.com/WillyTheCat/BitCash", + "Homepage": "https://www.choosebitcash.com" + }, + "marketcap_usd": 0, + "name": "BitCash", + "shortcut": "BITC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:BSD": { + "links": { + "Github": "https://github.com/LIMXTEC/BitSend", + "Homepage": "https://bitsend.info" + }, + "marketcap_usd": 1150914, + "name": "Bitsend", + "shortcut": "BSD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:BTC": { + "links": { + "Github": "https://github.com/bitcoin/bitcoin", + "Homepage": "https://bitcoin.org" + }, + "marketcap_usd": 69499332314, + "name": "Bitcoin", + "shortcut": "BTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "Electrum", + "url": "https://electrum.org" + } + ] + }, + "bitcoin:BTCP": { + "links": { + "Github": "https://github.com/BTCPrivate/BitcoinPrivate", + "Homepage": "https://btcprivate.org" + }, + "marketcap_usd": 16208893, + "name": "Bitcoin Private", + "shortcut": "BTCP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "BTCP Electrum", + "url": "https://github.com/BTCPrivate/electrum-btcp" + } + ] + }, + "bitcoin:BTDX": { + "links": { + "Github": "https://github.com/LIMXTEC/Bitcloud", + "Homepage": "https://bit-cloud.info" + }, + "marketcap_usd": 91120, + "name": "Bitcloud", + "shortcut": "BTDX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:BTG": { + "links": { + "Github": "https://github.com/BTCGPU/BTCGPU", + "Homepage": "https://bitcoingold.org" + }, + "marketcap_usd": 221836416, + "name": "Bitcoin Gold", + "shortcut": "BTG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "ElectrumG", + "url": "https://github.com/BTCGPU/electrum" + } + ] + }, + "bitcoin:BTX": { + "links": { + "Github": "https://github.com/LIMXTEC/BitCore", + "Homepage": "https://bitcore.cc" + }, + "marketcap_usd": 3272366, + "name": "Bitcore", + "shortcut": "BTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-BTX", + "url": "https://github.com/LIMXTEC/electrum-btx" + } + ] + }, + "bitcoin:CPC": { + "links": { + "Github": "https://github.com/Capricoinofficial/Capricoin", + "Homepage": "https://capricoin.org" + }, + "marketcap_usd": 332153, + "name": "Capricoin", + "shortcut": "CPC", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:DASH": { + "links": { + "Github": "https://github.com/dashpay/dash", + "Homepage": "https://www.dash.org" + }, + "marketcap_usd": 727140656, + "name": "Dash", + "shortcut": "DASH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "Dash Electrum", + "url": "https://electrum.dash.org" + } + ] + }, + "bitcoin:DCR": { + "links": { + "Github": "https://github.com/decred/dcrd", + "Homepage": "https://www.decred.org" + }, + "marketcap_usd": 156674100, + "name": "Decred", + "shortcut": "DCR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:DGB": { + "links": { + "Github": "https://github.com/digibyte/digibyte", + "Homepage": "https://digibyte.io" + }, + "marketcap_usd": 148074464, + "name": "DigiByte", + "shortcut": "DGB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + } + ] + }, + "bitcoin:DNR": { + "coinmarketcap_alias": "denarius-dnr", + "links": { + "Github": "https://github.com/carsenk/denarius", + "Homepage": "https://denarius.io" + }, + "marketcap_usd": 174665, + "name": "Denarius", + "shortcut": "DNR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:DOGE": { + "links": { + "Github": "https://github.com/dogecoin/dogecoin", + "Homepage": "https://dogecoin.com" + }, + "marketcap_usd": 237273507, + "name": "Dogecoin", + "shortcut": "DOGE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + } + ] + }, + "bitcoin:FJC": { + "links": { + "Github": "https://github.com/fujicoin/fujicoin", + "Homepage": "https://fujicoin.org" + }, + "marketcap_usd": 99486, + "name": "Fujicoin", + "shortcut": "FJC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-FJC", + "url": "http://www.fujicoin.org/downloads.php" + } + ] + }, + "bitcoin:FLASH": { + "links": { + "Github": "https://github.com/flash-coin", + "Homepage": "https://www.flashcoin.io" + }, + "marketcap_usd": 2814849, + "name": "Flashcoin", + "shortcut": "FLASH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:FLO": { + "links": { + "Github": "https://github.com/floblockchain/flo", + "Homepage": "https://flo.cash" + }, + "marketcap_usd": 11505280, + "name": "Flo", + "shortcut": "FLO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:FTC": { + "links": { + "Github": "https://github.com/FeatherCoin/Feathercoin", + "Homepage": "https://feathercoin.com" + }, + "marketcap_usd": 3186601, + "name": "Feathercoin", + "shortcut": "FTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-FTC", + "url": "https://github.com/Feathercoin-Foundation/electrum-ftc" + } + ] + }, + "bitcoin:GAME": { + "links": { + "Github": "https://github.com/gamecredits-project/gamecredits", + "Homepage": "https://gamecredits.org" + }, + "marketcap_usd": 6691535, + "name": "GameCredits", + "shortcut": "GAME", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-GAME", + "url": "https://electrum-game.org" + } + ] + }, + "bitcoin:GIN": { + "links": { + "Github": "https://github.com/gincoin-dev/gincoin-core", + "Homepage": "https://gincoin.io" + }, + "marketcap_usd": 0, + "name": "GIN", + "shortcut": "GIN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:GRS": { + "links": { + "Github": "https://github.com/Groestlcoin/groestlcoin", + "Homepage": "https://www.groestlcoin.org" + }, + "marketcap_usd": 17385498, + "name": "Groestlcoin", + "shortcut": "GRS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-GRS", + "url": "https://www.groestlcoin.org/groestlcoin-electrum-wallet" + } + ] + }, + "bitcoin:KMD": { + "links": { + "Github": "https://github.com/komodoplatform/komodo", + "Homepage": "https://komodoplatform.com" + }, + "marketcap_usd": 106553130, + "name": "Komodo", + "shortcut": "KMD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:KOTO": { + "links": { + "Github": "https://github.com/KotoDevelopers/koto", + "Homepage": "https://ko-to.org" + }, + "marketcap_usd": 0, + "name": "Koto", + "shortcut": "KOTO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-KOTO", + "url": "https://electrum.kotocoin.info" + } + ] + }, + "bitcoin:LTC": { + "links": { + "Github": "https://github.com/litecoin-project/litecoin", + "Homepage": "https://litecoin.org" + }, + "marketcap_usd": 3510753342, + "name": "Litecoin", + "shortcut": "LTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "Electrum-LTC", + "url": "https://electrum-ltc.org" + } + ] + }, + "bitcoin:MEC": { + "links": { + "Github": "https://github.com/LIMXTEC/Megacoin", + "Homepage": "https://www.megacoin.eu" + }, + "marketcap_usd": 149590, + "name": "Megacoin", + "shortcut": "MEC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:MONA": { + "links": { + "Github": "https://github.com/monacoinproject/monacoin", + "Homepage": "https://monacoin.org" + }, + "marketcap_usd": 31862429, + "name": "Monacoin", + "shortcut": "MONA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-MONA", + "url": "https://electrum-mona.org" + } + ] + }, + "bitcoin:MUE": { + "links": { + "Github": "https://github.com/muecoin/MUECore", + "Homepage": "https://www.monetaryunit.org" + }, + "marketcap_usd": 2424991, + "name": "MonetaryUnit", + "shortcut": "MUE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:NIX": { + "links": { + "Github": "https://github.com/nixplatform/nixcore", + "Homepage": "https://nixplatform.io" + }, + "marketcap_usd": 8062101, + "name": "NIX", + "shortcut": "NIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Ghostnode Tool", + "url": "https://github.com/nixplatform/ghostnode-tool" + }, + { + "name": "NIX-Electrum", + "url": "https://github.com/nixplatform/electrum-nix" + } + ] + }, + "bitcoin:NMC": { + "links": { + "Github": "https://github.com/namecoin/namecoin-core", + "Homepage": "https://namecoin.org" + }, + "marketcap_usd": 11410742, + "name": "Namecoin", + "shortcut": "NMC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + }, + { + "name": "Electrum-NMC", + "url": "https://github.com/namecoin/electrum-nmc" + } + ] + }, + "bitcoin:PIVX": { + "links": { + "Github": "https://github.com/PIVX-Project/PIVX", + "Homepage": "https://pivx.org" + }, + "marketcap_usd": 43812841, + "name": "PIVX", + "shortcut": "PIVX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:PTC": { + "links": { + "Github": "https://github.com/FundacionPesetacoin/PesetacoinCore", + "Homepage": "https://pesetacoin.info" + }, + "marketcap_usd": 474257, + "name": "Pesetacoin", + "shortcut": "PTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:QTUM": { + "links": { + "Github": "https://github.com/qtumproject/qtum", + "Homepage": "https://qtum.org" + }, + "marketcap_usd": 196331495, + "name": "Qtum", + "shortcut": "QTUM", + "t1_enabled": "soon", + "t2_enabled": "soon", + "type": "coin", + "wallet": [ + { + "name": "Qtum-Electrum", + "url": "https://github.com/qtumproject/qtum-electrum" + } + ] + }, + "bitcoin:RVN": { + "links": { + "Github": "https://github.com/RavenProject/Ravencoin", + "Homepage": "https://ravencoin.org" + }, + "marketcap_usd": 91215383, + "name": "Ravencoin", + "shortcut": "RVN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:SMART": { + "links": { + "Github": "https://github.com/SmartCash/Core-Smart", + "Homepage": "https://smartcash.cc" + }, + "marketcap_usd": 15847613, + "name": "SmartCash", + "shortcut": "SMART", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-SMART", + "url": "https://github.com/smartcash/electrum-smart" + } + ] + }, + "bitcoin:VIA": { + "links": { + "Github": "https://github.com/viacoin", + "Homepage": "https://viacoin.org" + }, + "marketcap_usd": 8667952, + "name": "Viacoin", + "shortcut": "VIA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Vialectrum", + "url": "https://vialectrum.org" + } + ] + }, + "bitcoin:VTC": { + "links": { + "Github": "https://github.com/vertcoin-project/vertcoin-core", + "Homepage": "https://vertcoin.org" + }, + "marketcap_usd": 20347974, + "name": "Vertcoin", + "shortcut": "VTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + } + ] + }, + "bitcoin:XMY": { + "links": { + "Github": "https://github.com/myriadcoin/myriadcoin", + "Homepage": "https://www.myriadcoin.org" + }, + "marketcap_usd": 2153571, + "name": "Myriad", + "shortcut": "XMY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:XPM": { + "links": { + "Github": "https://github.com/primecoin/primecoin", + "Homepage": "https://primecoin.io" + }, + "marketcap_usd": 3854326, + "name": "Primecoin", + "shortcut": "XPM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:XSN": { + "links": { + "Github": "https://github.com/X9Developers/XSN", + "Homepage": "https://stakenet.io" + }, + "marketcap_usd": 8810839, + "name": "Stakenet", + "shortcut": "XSN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:XZC": { + "links": { + "Github": "https://github.com/zcoinofficial/zcoin", + "Homepage": "https://zcoin.io" + }, + "marketcap_usd": 40040213, + "name": "Zcoin", + "shortcut": "XZC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Electrum-XZC", + "url": "https://github.com/zcoinofficial/electrum-xzc" + }, + { + "name": "Znode Tool", + "url": "https://github.com/yura-pakhuchiy/znode-tool" + } + ] + }, + "bitcoin:ZCL": { + "links": { + "Github": "https://github.com/ZclassicCommunity", + "Homepage": "https://zclassic.org" + }, + "marketcap_usd": 6365224, + "name": "ZClassic", + "shortcut": "ZCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "bitcoin:ZEC": { + "links": { + "Github": "https://github.com/zcash/zcash", + "Homepage": "https://z.cash" + }, + "marketcap_usd": 311226146, + "name": "Zcash", + "shortcut": "ZEC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor", + "url": "https://wallet.trezor.io" + } + ] + }, + "bitcoin:ZEN": { + "links": { + "Github": "https://github.com/ZencashOfficial/zen", + "Homepage": "https://zencash.com" + }, + "marketcap_usd": 32674275, + "name": "Zencash", + "shortcut": "ZEN", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "erc20:ella:MINING": { + "address": "0x991e7Fe4b05f2b3db1D788e705963f5D647b0044", + "links": { + "Homepage": "https://pool.ellaism.org" + }, + "marketcap_usd": 0, + "name": "Ella Mining Tokens", + "network": "ella", + "shortcut": "MINING", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:etc:UNV": { + "address": "0x6ADa6F48C815689502C43eC1a59F1b5DD3C04E1F", + "links": { + "Homepage": "https://universalcoin.io/" + }, + "marketcap_usd": 0, + "name": "UniversalCoin", + "network": "etc", + "shortcut": "UNV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:$FFC": { + "address": "0x4E84E9e5fb0A972628Cf4568c403167EF1D40431", + "links": { + "Github": "https://github.com/Fluzcoin", + "Homepage": "https://fluzcoin.io/" + }, + "marketcap_usd": 0, + "name": "$Fluzcoin", + "network": "eth", + "shortcut": "$FFC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:$FXY": { + "address": "0xA024E8057EEC474a9b2356833707Dd0579E26eF3", + "links": { + "Github": "https://github.com/fixynetwork/FIXY-NETWORK", + "Homepage": "https://fixyapp.io" + }, + "marketcap_usd": 0, + "name": "$FIXY NETWORK", + "network": "eth", + "shortcut": "$FXY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:$HUR": { + "address": "0xCDB7eCFd3403Eef3882c65B761ef9B5054890a47", + "links": { + "Github": "https://github.com/HurifyPlatform", + "Homepage": "https://hurify.co/" + }, + "marketcap_usd": 107599, + "name": "$Hurify Token", + "network": "eth", + "shortcut": "$HUR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:$TEAK": { + "address": "0x7DD7F56D697Cc0f2b52bD55C057f378F1fE6Ab4b", + "links": { + "Homepage": "https://steak.network" + }, + "marketcap_usd": 0, + "name": "$TEAK", + "network": "eth", + "shortcut": "$TEAK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:0xBTC": { + "address": "0xB6eD7644C69416d67B522e20bC294A9a9B405B31", + "links": { + "Homepage": "https://0xbitcoin.org/" + }, + "marketcap_usd": 786708, + "name": "0xBitcoin", + "network": "eth", + "shortcut": "0xBTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:1SG": { + "address": "0x0F72714B35a366285Df85886A2eE174601292A17", + "links": { + "Github": "https://github.com/MarsBlockchain/1sg-contract", + "Homepage": "https://www.1.sg" + }, + "marketcap_usd": 0, + "name": "1SG", + "network": "eth", + "shortcut": "1SG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:1ST": { + "address": "0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7", + "links": { + "Homepage": "https://firstblood.io" + }, + "marketcap_usd": 4321927, + "name": "FirstBlood", + "network": "eth", + "shortcut": "1ST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:1WO": { + "address": "0xfDBc1aDc26F0F8f8606a5d63b7D3a3CD21c22B23", + "links": { + "Homepage": "https://ico.1worldonline.com" + }, + "marketcap_usd": 301471, + "name": "1World", + "network": "eth", + "shortcut": "1WO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:300": { + "address": "0xaEc98A708810414878c3BCDF46Aad31dEd4a4557", + "links": { + "Homepage": "https://300tokensparta.com" + }, + "marketcap_usd": 0, + "name": "300 Token Sparta", + "network": "eth", + "shortcut": "300", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:3LT": { + "address": "0x430241368c1D293fdA21DBa8Bb7aF32007c59109", + "links": { + "Homepage": "https://3lt.io" + }, + "marketcap_usd": 0, + "name": "TrillionToken", + "network": "eth", + "shortcut": "3LT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ABCH": { + "address": "0xcc7d26D8eA6281BB363C8448515F2C61F7BC19F0", + "links": { + "Github": "https://github.com/ABBCCash/ABBCCashtoken", + "Homepage": "https://www.abbcfoundation.com/" + }, + "marketcap_usd": 0, + "name": "ABBC Cash", + "network": "eth", + "shortcut": "ABCH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ABT": { + "address": "0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986", + "links": { + "Homepage": "https://www.arcblock.io" + }, + "marketcap_usd": 10480313, + "name": "ArcBlock Token", + "network": "eth", + "shortcut": "ABT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ABYSS": { + "address": "0x0E8d6b471e332F140e7d9dbB99E5E3822F728DA6", + "links": { + "Github": "https://github.com/theabyssportal", + "Homepage": "https://www.theabyss.com" + }, + "marketcap_usd": 2142390, + "name": "The Abyss", + "network": "eth", + "shortcut": "ABYSS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ACC": { + "address": "0x13F1b7FDFbE1fc66676D56483e21B1ecb40b58E2", + "links": { + "Homepage": "http://accelerator.network" + }, + "marketcap_usd": 0, + "name": "Accelerator Network", + "network": "eth", + "shortcut": "ACC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ACE": { + "address": "0x06147110022B768BA8F99A8f385df11a151A9cc8", + "links": { + "Homepage": "https://tokenstars.com/en/ace" + }, + "marketcap_usd": 149512, + "name": "ACE (TokenStars)", + "network": "eth", + "shortcut": "ACE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADB": { + "address": "0x2baac9330Cf9aC479D819195794d79AD0c7616e3", + "links": { + "Homepage": "https://adbank.network" + }, + "marketcap_usd": 1867807, + "name": "adbank", + "network": "eth", + "shortcut": "ADB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADH": { + "address": "0xE69a353b3152Dd7b706ff7dD40fe1d18b7802d31", + "links": { + "Homepage": "https://adhive.tv" + }, + "marketcap_usd": 284980, + "name": "AdHive Token", + "network": "eth", + "shortcut": "ADH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADI": { + "address": "0x8810C63470d38639954c6B41AaC545848C46484a", + "links": { + "Github": "https://github.com/aditus", + "Homepage": "https://aditus.net" + }, + "marketcap_usd": 220986, + "name": "Aditus", + "network": "eth", + "shortcut": "ADI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADL": { + "address": "0x660e71483785f66133548B10f6926dC332b06e61", + "links": { + "Github": "https://github.com/adelecosystem", + "Homepage": "https://adel.io" + }, + "marketcap_usd": 247107, + "name": "Adelphoi", + "network": "eth", + "shortcut": "ADL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADST": { + "address": "0x422866a8F0b032c5cf1DfBDEf31A20F4509562b0", + "links": { + "Homepage": "https://adshares.net" + }, + "marketcap_usd": 0, + "name": "AdShares", + "network": "eth", + "shortcut": "ADST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADT": { + "address": "0xD0D6D6C5Fe4a677D343cC433536BB717bAe167dD", + "links": { + "Github": "https://github.com/adchain", + "Homepage": "https://adtoken.com" + }, + "marketcap_usd": 3801228, + "name": "AdToken", + "network": "eth", + "shortcut": "ADT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ADX": { + "address": "0x4470BB87d77b963A013DB939BE332f927f2b992e", + "links": { + "Github": "https://github.com/AdExBlockchain", + "Homepage": "https://www.adex.network" + }, + "marketcap_usd": 9761006, + "name": "AdEx Network", + "network": "eth", + "shortcut": "ADX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AE": { + "address": "0x5CA9a71B1d01849C0a95490Cc00559717fCF0D1d", + "links": { + "Github": "https://github.com/aeternity", + "Homepage": "https://www.aeternity.com/" + }, + "marketcap_usd": 0, + "name": "aeternity", + "network": "eth", + "shortcut": "AE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AFA": { + "address": "0xfB48E0DEa837f9438309a7e9F0cFe7EE3353A84e", + "links": { + "Github": "https://github.com/mdpienaar/ipparts", + "Homepage": "https://www.africahead.co.za" + }, + "marketcap_usd": 0, + "name": "Africahead Ipparts", + "network": "eth", + "shortcut": "AFA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AGI": { + "address": "0x8eB24319393716668D768dCEC29356ae9CfFe285", + "links": { + "Github": "https://github.com/singnet/singnet", + "Homepage": "https://singularitynet.io" + }, + "marketcap_usd": 24840313, + "name": "SingularityNET", + "network": "eth", + "shortcut": "AGI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AI": { + "address": "0x5121E348e897dAEf1Eef23959Ab290e5557CF274", + "links": { + "Homepage": "https://polynetwork.org" + }, + "marketcap_usd": 360, + "name": "POLY AI", + "network": "eth", + "shortcut": "AI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AID": { + "address": "0x37E8789bB9996CaC9156cD5F5Fd32599E6b91289", + "links": { + "Homepage": "https://www.aidcoin.co" + }, + "marketcap_usd": 2049203, + "name": "AidCoin", + "network": "eth", + "shortcut": "AID", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AION": { + "address": "0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466", + "links": { + "Github": "https://github.com/aionnetwork", + "Homepage": "https://aion.network/" + }, + "marketcap_usd": 0, + "name": "Aion", + "network": "eth", + "shortcut": "AION", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AIR": { + "address": "0x27Dce1eC4d3f72C3E457Cc50354f1F975dDEf488", + "links": { + "Homepage": "https://airtoken.com" + }, + "marketcap_usd": 0, + "name": "AirToken", + "network": "eth", + "shortcut": "AIR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AIX": { + "address": "0x1063ce524265d5a3A624f4914acd573dD89ce988", + "links": { + "Github": "https://github.com/AigangNetwork", + "Homepage": "https://aigang.network/" + }, + "marketcap_usd": 161598, + "name": "Aigang", + "network": "eth", + "shortcut": "AIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AKC": { + "address": "0x1Ca43a170BaD619322e6f54d46b57e504dB663aA", + "links": { + "Github": "https://github.com/artwook", + "Homepage": "https://artwook.com" + }, + "marketcap_usd": 0, + "name": "ARTWOOK COIN", + "network": "eth", + "shortcut": "AKC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ALCO": { + "address": "0x181a63746d3Adcf356CBc73aCE22832FFBB1EE5A", + "links": { + "Homepage": "https://alaricoin.org" + }, + "marketcap_usd": 0, + "name": "ALCO", + "network": "eth", + "shortcut": "ALCO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ALI": { + "address": "0x4289c043A12392F1027307fB58272D8EBd853912", + "links": { + "Homepage": "http://ailink.in" + }, + "marketcap_usd": 168768, + "name": "AiLink Token", + "network": "eth", + "shortcut": "ALI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ALIS": { + "address": "0xEA610B1153477720748DC13ED378003941d84fAB", + "links": { + "Github": "https://github.com/AlisProject", + "Homepage": "https://alismedia.jp" + }, + "marketcap_usd": 692193, + "name": "ALIS Token", + "network": "eth", + "shortcut": "ALIS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ALTS": { + "address": "0x638AC149eA8EF9a1286C41B977017AA7359E6Cfa", + "links": { + "Homepage": "http://www.altcoinstalks.com" + }, + "marketcap_usd": 0, + "name": "ALTS Token", + "network": "eth", + "shortcut": "ALTS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ALX": { + "address": "0x49b127Bc33ce7E1586EC28CEC6a65b112596C822", + "links": { + "Homepage": "https://alax.io" + }, + "marketcap_usd": 1903306, + "name": "ALAX", + "network": "eth", + "shortcut": "ALX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMB": { + "address": "0x4DC3643DbC642b72C158E7F3d2ff232df61cb6CE", + "links": { + "Github": "https://github.com/ambrosus", + "Homepage": "https://ambrosus.com/index.html" + }, + "marketcap_usd": 8465970, + "name": "Amber Token", + "network": "eth", + "shortcut": "AMB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMIS": { + "address": "0x949bEd886c739f1A3273629b3320db0C5024c719", + "links": { + "Github": "https://github.com/amisolution/ERC20-AMIS", + "Homepage": "http://erc20-amis.amisolution.net" + }, + "marketcap_usd": 0, + "name": "AMIS", + "network": "eth", + "shortcut": "AMIS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMLT": { + "address": "0xCA0e7269600d353F70b14Ad118A49575455C0f2f", + "links": { + "Github": "https://github.com/amlt-by-coinfirm", + "Homepage": "https://amlt.coinfirm.io/" + }, + "marketcap_usd": 3435071, + "name": "AMLT", + "network": "eth", + "shortcut": "AMLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMN": { + "address": "0x737F98AC8cA59f2C68aD658E3C3d8C8963E40a4c", + "links": { + "Github": "https://github.com/amontech", + "Homepage": "https://amon.tech" + }, + "marketcap_usd": 226914, + "name": "Amon", + "network": "eth", + "shortcut": "AMN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMO": { + "address": "0x38c87AA89B2B8cD9B95b736e1Fa7b612EA972169", + "links": { + "Github": "https://github.com/AMO-Project/", + "Homepage": "https://amo.foundation" + }, + "marketcap_usd": 7409771, + "name": "AMO Coin", + "network": "eth", + "shortcut": "AMO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AMTC": { + "address": "0x84936cF7630AA3e27Dd9AfF968b140d5AEE49F5a", + "links": { + "Homepage": "https://ambertime.org/" + }, + "marketcap_usd": 0, + "name": "AmberTime Coin", + "network": "eth", + "shortcut": "AMTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ANT": { + "address": "0x960b236A07cf122663c4303350609A66A7B288C0", + "links": { + "Homepage": "https://aragon.org" + }, + "marketcap_usd": 13322497, + "name": "Aragon", + "network": "eth", + "shortcut": "ANT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AOA": { + "address": "0x9ab165D795019b6d8B3e971DdA91071421305e5a", + "links": { + "Homepage": "https://www.aurorachain.io" + }, + "marketcap_usd": 113336039, + "name": "Aurora", + "network": "eth", + "shortcut": "AOA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:APIS": { + "address": "0x4C0fBE1BB46612915E7967d2C3213cd4d87257AD", + "links": { + "Github": "https://github.com/Oxchild/crowdsale", + "Homepage": "https://apisplatform.io" + }, + "marketcap_usd": 10181747, + "name": "APIS", + "network": "eth", + "shortcut": "APIS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:APPC": { + "address": "0x1a7a8BD9106F2B8D977E08582DC7d24c723ab0DB", + "links": { + "Github": "https://github.com/Aptoide/AppCoins-ethereumj", + "Homepage": "https://appcoins.io" + }, + "marketcap_usd": 9169632, + "name": "AppCoins", + "network": "eth", + "shortcut": "APPC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:APT": { + "address": "0x23aE3C5B39B12f0693e05435EeaA1e51d8c61530", + "links": { + "Homepage": "https://aigang.network" + }, + "marketcap_usd": 0, + "name": "AIGang", + "network": "eth", + "shortcut": "APT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARC": { + "address": "0xAc709FcB44a43c35F0DA4e3163b117A17F3770f5", + "links": { + "Github": "https://github.com/swarmcity/ac-token", + "Homepage": "https://arcade.city" + }, + "marketcap_usd": 0, + "name": "Arcade Token", + "network": "eth", + "shortcut": "ARC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARCT": { + "address": "0x1245ef80F4d9e02ED9425375e8F649B9221b31D8", + "links": { + "Homepage": "https://www.arbitragect.com" + }, + "marketcap_usd": 72475, + "name": "ArbitrageCT", + "network": "eth", + "shortcut": "ARCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARD": { + "address": "0x75Aa7B0d02532f3833b66c7f0Ad35376d373ddF8", + "links": { + "Github": "https://github.com/accordtoken", + "Homepage": "https://accordtoken.com" + }, + "marketcap_usd": 0, + "name": "Accord", + "network": "eth", + "shortcut": "ARD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARN": { + "address": "0xBA5F11b16B155792Cf3B2E6880E8706859A8AEB6", + "links": { + "Homepage": "https://aeron.aero" + }, + "marketcap_usd": 5734712, + "name": "Aeron", + "network": "eth", + "shortcut": "ARN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ART": { + "address": "0xfec0cF7fE078a500abf15F1284958F22049c2C7e", + "links": { + "Homepage": "http://www.maecenas.co" + }, + "marketcap_usd": 1003823, + "name": "Maecenas", + "network": "eth", + "shortcut": "ART", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARX": { + "address": "0x7705FaA34B16EB6d77Dfc7812be2367ba6B0248e", + "links": { + "Github": "https://github.com/va109/Artex", + "Homepage": "https://artex.global" + }, + "marketcap_usd": 0, + "name": "ARX", + "network": "eth", + "shortcut": "ARX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARXT": { + "address": "0xb0D926c1BC3d78064F3e1075D5bD9A24F35Ae6C5", + "links": { + "Github": "https://github.com/va109/Artex", + "Homepage": "https://aronline.io" + }, + "marketcap_usd": 0, + "name": "Assistive Reality ARX", + "network": "eth", + "shortcut": "ARXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ARY": { + "address": "0xa5F8fC0921880Cb7342368BD128eb8050442B1a1", + "links": { + "Homepage": "https://www.blockarray.com" + }, + "marketcap_usd": 851307, + "name": "Block Array", + "network": "eth", + "shortcut": "ARY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AST": { + "address": "0x27054b13b1B798B345b591a4d22e6562d47eA75a", + "links": { + "Homepage": "https://airswap.io" + }, + "marketcap_usd": 6019175, + "name": "Airswap", + "network": "eth", + "shortcut": "AST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATL": { + "address": "0x78B7FADA55A64dD895D8c8c35779DD8b67fA8a05", + "links": { + "Homepage": "https://atlant.io" + }, + "marketcap_usd": 1273847, + "name": "ATLANT", + "network": "eth", + "shortcut": "ATL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATM": { + "address": "0x9B11EFcAAA1890f6eE52C6bB7CF8153aC5d74139", + "links": { + "Homepage": "https://www.atmchain.io" + }, + "marketcap_usd": 233307, + "name": "ATMChain", + "network": "eth", + "shortcut": "ATM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATMI": { + "address": "0x97AEB5066E1A590e868b511457BEb6FE99d329F5", + "links": { + "Github": "https://github.com/atonomi", + "Homepage": "https://atonomi.io" + }, + "marketcap_usd": 504114, + "name": "Atonomi", + "network": "eth", + "shortcut": "ATMI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATT": { + "address": "0x887834D3b8D450B6bAB109c252Df3DA286d73CE4", + "links": { + "Github": "https://github.com/ATMatrix", + "Homepage": "https://atmatrix.org/?locale=en" + }, + "marketcap_usd": 0, + "name": "Atmatrix Token", + "network": "eth", + "shortcut": "ATT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATTN": { + "address": "0x6339784d9478dA43106A429196772A029C2f177d", + "links": { + "Homepage": "https://attentionnetwork.io" + }, + "marketcap_usd": 0, + "name": "Attention Token", + "network": "eth", + "shortcut": "ATTN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ATX": { + "address": "0x1A0F2aB46EC630F9FD638029027b552aFA64b94c", + "links": { + "Homepage": "https://www.aston.company" + }, + "marketcap_usd": 8589626, + "name": "Aston", + "network": "eth", + "shortcut": "ATX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AUC": { + "address": "0xc12d099be31567add4e4e4d0D45691C3F58f5663", + "links": { + "Homepage": "https://auctus.org" + }, + "marketcap_usd": 354485, + "name": "Auctus", + "network": "eth", + "shortcut": "AUC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AURA": { + "address": "0xCdCFc0f66c522Fd086A1b725ea3c0Eeb9F9e8814", + "links": { + "Homepage": "https://auroradao.com" + }, + "marketcap_usd": 4480925, + "name": "Aurora DAO", + "network": "eth", + "shortcut": "AURA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AUTO": { + "address": "0x622dFfCc4e83C64ba959530A5a5580687a57581b", + "links": { + "Homepage": "https://cubeint.io" + }, + "marketcap_usd": 17255872, + "name": "Cube", + "network": "eth", + "shortcut": "AUTO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AVA": { + "address": "0xeD247980396B10169BB1d36f6e278eD16700a60f", + "links": { + "Github": "https://github.com/AvalonPlatform", + "Homepage": "https://avalon.nu" + }, + "marketcap_usd": 0, + "name": "AVA", + "network": "eth", + "shortcut": "AVA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AVT": { + "address": "0x0d88eD6E74bbFD96B831231638b66C05571e824F", + "links": { + "Homepage": "https://aventus.io" + }, + "marketcap_usd": 966310, + "name": "Aventus", + "network": "eth", + "shortcut": "AVT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AX1": { + "address": "0xCd4b4b0F3284a33AC49C67961EC6e111708318Cf", + "links": { + "Github": "https://github.com/Pickeringwareltd/AX1_v1.03", + "Homepage": "https://ax1.io" + }, + "marketcap_usd": 0, + "name": "AX1 Mining Token", + "network": "eth", + "shortcut": "AX1", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AXP": { + "address": "0x9af2c6B1A28D3d6BC084bd267F70e90d49741D5B", + "links": { + "Homepage": "https://www.axpire.io/" + }, + "marketcap_usd": 0, + "name": "AXP", + "network": "eth", + "shortcut": "AXP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:AXPR": { + "address": "0xC39E626A04C5971D770e319760D7926502975e47", + "links": { + "Github": "https://www.github.com/axpire", + "Homepage": "https://www.axpire.io" + }, + "marketcap_usd": 1627321, + "name": "aXpire", + "network": "eth", + "shortcut": "AXPR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:B2BX": { + "address": "0x5d51FCceD3114A8bb5E90cDD0f9d682bCbCC5393", + "links": { + "Homepage": "https://www.b2bx.exchange" + }, + "marketcap_usd": 3333567, + "name": "B2BX", + "network": "eth", + "shortcut": "B2BX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BANCA": { + "address": "0x998b3B82bC9dBA173990Be7afb772788B5aCB8Bd", + "links": { + "Homepage": "https://www.banca.world" + }, + "marketcap_usd": 1427465, + "name": "Banca", + "network": "eth", + "shortcut": "BANCA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BANX": { + "address": "0xF87F0D9153fea549c728Ad61cb801595a68b73de", + "links": { + "Homepage": "https://pre.ubanx.io" + }, + "marketcap_usd": 0, + "name": "BANX", + "network": "eth", + "shortcut": "BANX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BAT": { + "address": "0x0D8775F648430679A709E98d2b0Cb6250d2887EF", + "links": { + "Homepage": "https://basicattentiontoken.org" + }, + "marketcap_usd": 262154342, + "name": "Basic Attention Token", + "network": "eth", + "shortcut": "BAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BAX": { + "address": "0x9a0242b7a33DAcbe40eDb927834F96eB39f8fBCB", + "links": { + "Homepage": "https://getbabb.com" + }, + "marketcap_usd": 5188190, + "name": "BABB", + "network": "eth", + "shortcut": "BAX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BBC": { + "address": "0xe7D3e4413E29ae35B0893140F4500965c74365e5", + "links": { + "Homepage": "http://bbcoin.tradove.com" + }, + "marketcap_usd": 1189186, + "name": "TraDove B2BCoin", + "network": "eth", + "shortcut": "BBC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BBK": { + "address": "0x4a6058666cf1057eaC3CD3A5a614620547559fc9", + "links": { + "Github": "https://github.com/brickblock-io", + "Homepage": "https://www.brickblock.io/" + }, + "marketcap_usd": 1170479, + "name": "BRICKBLOCK TOKEN", + "network": "eth", + "shortcut": "BBK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BBN": { + "address": "0x35a69642857083BA2F30bfaB735dacC7F0bac969", + "links": { + "Homepage": "http://www.banyanbbt.org" + }, + "marketcap_usd": 880255, + "name": "Banyan Network", + "network": "eth", + "shortcut": "BBN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BBO": { + "address": "0x84F7c44B6Fed1080f647E354D552595be2Cc602F", + "links": { + "Homepage": "https://bigbom.com" + }, + "marketcap_usd": 333318, + "name": "Bigbom", + "network": "eth", + "shortcut": "BBO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BC": { + "address": "0x2ecB13A8c458c379c4d9a7259e202De03c8F3D19", + "links": { + "Homepage": "https://block-chain.com" + }, + "marketcap_usd": 34932, + "name": "Block-Chain.com", + "network": "eth", + "shortcut": "BC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCBC": { + "address": "0x7367A68039d4704f30BfBF6d948020C3B07DFC59", + "links": { + "Github": "https://github.com/beerchain/beercoin", + "Homepage": "https://www.beerchain.technology" + }, + "marketcap_usd": 0, + "name": "Beercoin", + "network": "eth", + "shortcut": "BCBC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCDN": { + "address": "0x1e797Ce986C3CFF4472F7D38d5C4aba55DfEFE40", + "links": { + "Github": "https://github.com/Blockcdnteam", + "Homepage": "https://www.blockcdn.org" + }, + "marketcap_usd": 0, + "name": "BlockCDN", + "network": "eth", + "shortcut": "BCDN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCDT": { + "address": "0xAcfa209Fb73bF3Dd5bBfb1101B9Bc999C49062a5", + "links": { + "Github": "https://github.com/VinceBCD/BCDiploma", + "Homepage": "https://www.bcdiploma.com" + }, + "marketcap_usd": 193468, + "name": "Blockchain Certified Data Token", + "network": "eth", + "shortcut": "BCDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCL": { + "address": "0xbc1234552EBea32B5121190356bBa6D3Bb225bb5", + "links": { + "Homepage": "https://www.bitclave.com" + }, + "marketcap_usd": 0, + "name": "BCL", + "network": "eth", + "shortcut": "BCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCPT": { + "address": "0x1c4481750daa5Ff521A2a7490d9981eD46465Dbd", + "links": { + "Github": "https://github.com/blockmason", + "Homepage": "https://blockmason.io" + }, + "marketcap_usd": 5668155, + "name": "BlockMason Credit Protocol Token", + "network": "eth", + "shortcut": "BCPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BCV": { + "address": "0x1014613E2B3CBc4d575054D4982E580d9b99d7B1", + "links": { + "Github": "https://github.com/bitcv", + "Homepage": "https://bitcv.one/" + }, + "marketcap_usd": 17337918, + "name": "BitCapitalVendor Token", + "network": "eth", + "shortcut": "BCV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BDG": { + "address": "0x1961B3331969eD52770751fC718ef530838b6dEE", + "links": { + "Github": "https://github.com/bitdegree", + "Homepage": "https://bitdegree.org" + }, + "marketcap_usd": 871516, + "name": "BitDegree Token", + "network": "eth", + "shortcut": "BDG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BEE": { + "address": "0x4D8fc1453a0F359e99c9675954e656D80d996FbF", + "links": { + "Github": "https://github.com/thebeetoken", + "Homepage": "https://www.beetoken.com" + }, + "marketcap_usd": 686824, + "name": "Bee Token", + "network": "eth", + "shortcut": "BEE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BERRY": { + "address": "0x6aEB95F06CDA84cA345c2dE0F3B7f96923a44f4c", + "links": { + "Github": "https://github.com/Rentberry", + "Homepage": "https://rentberry.com" + }, + "marketcap_usd": 597142, + "name": "Berry", + "network": "eth", + "shortcut": "BERRY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BET": { + "address": "0x8aA33A7899FCC8eA5fBe6A608A109c3893A1B8b2", + "links": { + "Github": "https://github.com/daocasino", + "Homepage": "https://dao.casino" + }, + "marketcap_usd": 1451624, + "name": "DAO.Casino", + "network": "eth", + "shortcut": "BET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BETHER": { + "address": "0x14C926F2290044B647e1Bf2072e67B495eff1905", + "links": { + "Github": "https://github.com/bethereumproject", + "Homepage": "https://www.bethereum.com/" + }, + "marketcap_usd": 482376, + "name": "Bethereum", + "network": "eth", + "shortcut": "BETHER", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BETR": { + "address": "0x763186eB8d4856D536eD4478302971214FEbc6A9", + "links": { + "Github": "https://github.com/betterbetting", + "Homepage": "https://www.betterbetting.org" + }, + "marketcap_usd": 531595, + "name": "BetterBetting", + "network": "eth", + "shortcut": "BETR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BEZ": { + "address": "0x3839d8ba312751Aa0248fEd6a8bACB84308E20Ed", + "links": { + "Homepage": "https://bezop.io" + }, + "marketcap_usd": 1410464, + "name": "Bezop", + "network": "eth", + "shortcut": "BEZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BHPC": { + "address": "0xEE74110fB5A1007b06282e0DE5d73A61bf41d9Cd", + "links": { + "Homepage": "https://bhpcash.io/bhpc/index.html" + }, + "marketcap_usd": 0, + "name": "BHPCash", + "network": "eth", + "shortcut": "BHPC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BHR": { + "address": "0xfe5D908c9Ad85f651185dAa6a4770726E2b27d09", + "links": { + "Homepage": "https://www.bether.cc" + }, + "marketcap_usd": 0, + "name": "BETHER", + "network": "eth", + "shortcut": "BHR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BIT": { + "address": "0x089B85FA15f72c1088CBbef23a49DB80B91DD521", + "links": { + "Homepage": "https://www.blockestate.net" + }, + "marketcap_usd": 0, + "name": "BlockEstate Investment Token", + "network": "eth", + "shortcut": "BIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BITCAR": { + "address": "0x08b4c866aE9D1bE56a06e0C302054B4FFe067b43", + "links": { + "Github": "https://github.com/BitCar-io", + "Homepage": "https://bitcar.io/" + }, + "marketcap_usd": 0, + "name": "BitCar Token", + "network": "eth", + "shortcut": "BITCAR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BIX": { + "address": "0xb3104b4B9Da82025E8b9F8Fb28b3553ce2f67069", + "links": { + "Homepage": "https://www.bibox.com" + }, + "marketcap_usd": 24277299, + "name": "Bibox Token", + "network": "eth", + "shortcut": "BIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BKB": { + "address": "0xB2Bfeb70B903F1BAaC7f2ba2c62934C7e5B974C4", + "links": { + "Homepage": "https://betking.io" + }, + "marketcap_usd": 0, + "name": "BetKing Bankroll Token", + "network": "eth", + "shortcut": "BKB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BKRx": { + "address": "0x3cf9E0c385a5ABEC9FD2a71790AA344C4e8E3570", + "links": { + "Homepage": "https://www.blockrx.com" + }, + "marketcap_usd": 0, + "name": "BlockRx", + "network": "eth", + "shortcut": "BKRx", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BKX": { + "address": "0x45245bc59219eeaAF6cD3f382e078A461FF9De7B", + "links": { + "Github": "https://github.com/BankEx", + "Homepage": "https://bankex.com/" + }, + "marketcap_usd": 1300444, + "name": "BANKEX", + "network": "eth", + "shortcut": "BKX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLN": { + "address": "0xCA29db4221c111888a7e80b12eAc8a266Da3Ee0d", + "links": { + "Homepage": "http://bolenum.com" + }, + "marketcap_usd": 0, + "name": "Bolenum", + "network": "eth", + "shortcut": "BLN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLT": { + "address": "0x107c4504cd79C5d2696Ea0030a8dD4e92601B82e", + "links": { + "Github": "https://github.com/hellobloom", + "Homepage": "https://hellobloom.io" + }, + "marketcap_usd": 1833298, + "name": "Bloom", + "network": "eth", + "shortcut": "BLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLUE": { + "address": "0x539EfE69bCDd21a83eFD9122571a64CC25e0282b", + "links": { + "Github": "https://github.com/BlueCrypto", + "Homepage": "https://blueprotocol.com/" + }, + "marketcap_usd": 867547, + "name": "Ethereum Blue", + "network": "eth", + "shortcut": "BLUE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLX (Bullion)": { + "address": "0xcE59d29b09aAE565fEEEf8E52f47c3CD5368C663", + "links": { + "Github": "https://github.com/bullioncoin", + "Homepage": "http://www.bullioncrypto.info" + }, + "marketcap_usd": 0, + "name": "Bullion Crypto", + "network": "eth", + "shortcut": "BLX (Bullion)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLX (Iconomi)": { + "address": "0xE5a7c12972f3bbFe70ed29521C8949b8Af6a0970", + "links": { + "Homepage": "https://www.iconomi.net" + }, + "marketcap_usd": 0, + "name": "Iconomi", + "network": "eth", + "shortcut": "BLX (Iconomi)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BLZ": { + "address": "0x5732046A883704404F284Ce41FfADd5b007FD668", + "links": { + "Homepage": "https://bluzelle.com" + }, + "marketcap_usd": 11175870, + "name": "Bluzelle", + "network": "eth", + "shortcut": "BLZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BMC": { + "address": "0xDf6Ef343350780BF8C3410BF062e0C015B1DD671", + "links": { + "Github": "https://github.com/blackmoonfg", + "Homepage": "https://blackmooncrypto.com" + }, + "marketcap_usd": 4530673, + "name": "Blackmoon Crypto BMC Token", + "network": "eth", + "shortcut": "BMC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BMT": { + "address": "0xf028ADEe51533b1B47BEaa890fEb54a457f51E89", + "links": { + "Github": "https://github.com/BMChain/BMChain-Token-Distribution-Interface", + "Homepage": "https://bmchain.io" + }, + "marketcap_usd": 0, + "name": "BMT", + "network": "eth", + "shortcut": "BMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BMX": { + "address": "0x986EE2B944c42D017F52Af21c4c69B84DBeA35d8", + "links": { + "Homepage": "https://www.bitmart.com" + }, + "marketcap_usd": 1564857, + "name": "BitMart Token", + "network": "eth", + "shortcut": "BMX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BNB": { + "address": "0xB8c77482e45F1F44dE1745F52C74426C631bDD52", + "links": { + "Homepage": "https://www.binance.com" + }, + "marketcap_usd": 2055629817, + "name": "Binance Coin", + "network": "eth", + "shortcut": "BNB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BNN": { + "address": "0xDA80B20038BDF968C7307BB5907A469482CF6251", + "links": { + "Homepage": "https://www.brokerneko.com" + }, + "marketcap_usd": 97496, + "name": "BrokerNekoNetwork", + "network": "eth", + "shortcut": "BNN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BNT": { + "address": "0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C", + "links": { + "Github": "https://github.com/bancorprotocol", + "Homepage": "https://www.bancor.network/discover" + }, + "marketcap_usd": 46494356, + "name": "Bancor", + "network": "eth", + "shortcut": "BNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BNTY": { + "address": "0xd2d6158683aeE4Cc838067727209a0aAF4359de3", + "links": { + "Homepage": "https://bounty0x.io" + }, + "marketcap_usd": 751009, + "name": "Bounty0x Token", + "network": "eth", + "shortcut": "BNTY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BOB": { + "address": "0xDF347911910b6c9A4286bA8E2EE5ea4a39eB2134", + "links": { + "Homepage": "https://bobsrepair.com" + }, + "marketcap_usd": 202850, + "name": "Bob's repair", + "network": "eth", + "shortcut": "BOB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BON": { + "address": "0xCc34366E3842cA1BD36c1f324d15257960fCC801", + "links": { + "Homepage": "https://bonpay.com" + }, + "marketcap_usd": 185456, + "name": "Bonpay", + "network": "eth", + "shortcut": "BON", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BOP": { + "address": "0x7F1E2C7d6A69bf34824D72C53B4550E895C0D8C2", + "links": { + "Homepage": "https://blockoptions.io" + }, + "marketcap_usd": 0, + "name": "BlockOptiopns Token", + "network": "eth", + "shortcut": "BOP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BOU": { + "address": "0xC2C63F23ec5E97efbD7565dF9Ec764FDc7d4e91d", + "links": { + "Homepage": "https://www.boule.one" + }, + "marketcap_usd": 0, + "name": "Boule Coin", + "network": "eth", + "shortcut": "BOU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BOUTS": { + "address": "0x139d9397274bb9E2C29A9aa8Aa0b5874d30D62E3", + "links": { + "Homepage": "https://www.bouts.pro" + }, + "marketcap_usd": 249267, + "name": "BoutsPro", + "network": "eth", + "shortcut": "BOUTS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BOXX": { + "address": "0x780116D91E5592E58a3b3c76A351571b39abCEc6", + "links": { + "Homepage": "https://www.goblockparty.com" + }, + "marketcap_usd": 1640918, + "name": "BOXX Token [Blockparty]", + "network": "eth", + "shortcut": "BOXX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BPT": { + "address": "0x327682779bAB2BF4d1337e8974ab9dE8275A7Ca8", + "links": { + "Github": "https://github.com/Blockport/tokensale", + "Homepage": "https://blockport.io" + }, + "marketcap_usd": 6406812, + "name": "Blockport Token", + "network": "eth", + "shortcut": "BPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BQX": { + "address": "0x5Af2Be193a6ABCa9c8817001F45744777Db30756", + "links": { + "Homepage": "https://www.bitquence.com" + }, + "marketcap_usd": 16008390, + "name": "Bitquence", + "network": "eth", + "shortcut": "BQX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BRAT": { + "address": "0x9E77D5a1251b6F7D456722A6eaC6D2d5980bd891", + "links": { + "Homepage": "http://bro-consortium.io" + }, + "marketcap_usd": 12210, + "name": "BROTHER", + "network": "eth", + "shortcut": "BRAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BRD": { + "address": "0x558EC3152e2eb2174905cd19AeA4e34A23DE9aD6", + "links": { + "Github": "https://github.com/breadwallet", + "Homepage": "https://token.breadapp.com/en" + }, + "marketcap_usd": 20457112, + "name": "Bread", + "network": "eth", + "shortcut": "BRD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BRLN": { + "address": "0x80046305aaab08F6033b56a360c184391165dc2d", + "links": { + "Homepage": "https://berlin.bounties.network" + }, + "marketcap_usd": 0, + "name": "Berlin Coin", + "network": "eth", + "shortcut": "BRLN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BSDC": { + "address": "0xF26ef5E0545384b7Dcc0f297F2674189586830DF", + "links": { + "Github": "https://github.com/BitsIdea/BitsIdea", + "Homepage": "http://bitsidea.org" + }, + "marketcap_usd": 0, + "name": "BSDC", + "network": "eth", + "shortcut": "BSDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BST": { + "address": "0x509A38b7a1cC0dcd83Aa9d06214663D9eC7c7F4a", + "links": { + "Homepage": "https://blocksquare.io" + }, + "marketcap_usd": 0, + "name": "BlocksquareToken", + "network": "eth", + "shortcut": "BST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTCE": { + "address": "0x0886949c1b8C412860c4264Ceb8083d1365e86CF", + "links": { + "Homepage": "https://btcetoken.com" + }, + "marketcap_usd": 0, + "name": "EthereumBitcoin", + "network": "eth", + "shortcut": "BTCE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTCL": { + "address": "0x5acD19b9c91e596b1f062f18e3D02da7eD8D1e50", + "links": { + "Homepage": "http://btclite.org" + }, + "marketcap_usd": 128479, + "name": "BTC Lite", + "network": "eth", + "shortcut": "BTCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTCONE": { + "address": "0x87f5E8c3425218837f3CB67dB941aF0C01323E56", + "links": { + "Homepage": "https://www.bitcoinone.io" + }, + "marketcap_usd": 0, + "name": "BitCoin One", + "network": "eth", + "shortcut": "BTCONE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTE": { + "address": "0x73dD069c299A5d691E9836243BcaeC9c8C1D8734", + "links": { + "Github": "https://github.com/bitcoineum/Sharkpool", + "Homepage": "http://bitcoineum.com/miner" + }, + "marketcap_usd": 0, + "name": "BTE", + "network": "eth", + "shortcut": "BTE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTH": { + "address": "0xFAd572db566E5234AC9Fc3d570c4EdC0050eAA92", + "links": { + "Homepage": "https://www.bytether.com" + }, + "marketcap_usd": 0, + "name": "Bytether", + "network": "eth", + "shortcut": "BTH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTHR": { + "address": "0xa02e3bB9cEbc03952601B3724B4940e0845BeBcf", + "links": { + "Github": "https://github.com/bethereumproject", + "Homepage": "https://www.bethereum.com/" + }, + "marketcap_usd": 0, + "name": "Bethereum", + "network": "eth", + "shortcut": "BTHR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTK": { + "address": "0xdb8646F5b487B5Dd979FAC618350e85018F557d4", + "links": { + "Github": "https://github.com/bitcoin-token", + "Homepage": "https://btk.community" + }, + "marketcap_usd": 151645, + "name": "Bitcoin Token", + "network": "eth", + "shortcut": "BTK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTM": { + "address": "0xcB97e65F07DA24D46BcDD078EBebd7C6E6E3d750", + "links": { + "Github": "https://github.com/bytom", + "Homepage": "https://bytom.io" + }, + "marketcap_usd": 0, + "name": "Bytom", + "network": "eth", + "shortcut": "BTM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTO": { + "address": "0x36905Fc93280f52362A1CBAB151F25DC46742Fb5", + "links": { + "Homepage": "https://www.bottos.org" + }, + "marketcap_usd": 3896343, + "name": "Bottos", + "network": "eth", + "shortcut": "BTO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTQ": { + "address": "0x16B0E62aC13a2fAeD36D18bce2356d25Ab3CfAD3", + "links": { + "Homepage": "https://thebtcbtq.com" + }, + "marketcap_usd": 0, + "name": "Bitcoin Boutique", + "network": "eth", + "shortcut": "BTQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTR": { + "address": "0x499A6B77bc25C26bCf8265E2102B1B3dd1617024", + "links": { + "Homepage": "https://bitether.org" + }, + "marketcap_usd": 98055, + "name": "Bitether", + "network": "eth", + "shortcut": "BTR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTRN": { + "address": "0x03C780cD554598592B97b7256dDAad759945b125", + "links": { + "Homepage": "https://biotron.io" + }, + "marketcap_usd": 83145, + "name": "Biotron", + "network": "eth", + "shortcut": "BTRN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTT": { + "address": "0x080aa07E2C7185150d7e4DA98838A8d2feac3dfC", + "links": { + "Github": "https://github.com/Andyss4545/BitEther", + "Homepage": "https://bytom.io" + }, + "marketcap_usd": 0, + "name": "Bitether", + "network": "eth", + "shortcut": "BTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTTX": { + "address": "0xFA456Cf55250A839088b27EE32A424d7DAcB54Ff", + "links": { + "Homepage": "https://blocktrade.com/" + }, + "marketcap_usd": 1285192, + "name": "Blocktrade.com", + "network": "eth", + "shortcut": "BTTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BTU": { + "address": "0xb683D83a532e2Cb7DFa5275eED3698436371cc9f", + "links": { + "Github": "https://github.com/btuprotocol", + "Homepage": "https://btu-protocol.com" + }, + "marketcap_usd": 3181349, + "name": "BTU Protocol", + "network": "eth", + "shortcut": "BTU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BUC": { + "address": "0xCa3c18a65b802eC267f8f4802545e7F53D24C75e", + "links": { + "Homepage": "https://beeunity.org" + }, + "marketcap_usd": 0, + "name": "BeeUnity Chain", + "network": "eth", + "shortcut": "BUC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BWX": { + "address": "0xbD168CbF9d3a375B38dC51A202B5E8a4E52069Ed", + "links": { + "Homepage": "https://www.bluewhale.foundation" + }, + "marketcap_usd": 2661816, + "name": "Blue Whale Token", + "network": "eth", + "shortcut": "BWX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BZ": { + "address": "0x4375E7aD8A01B8eC3Ed041399f62D9Cd120e0063", + "links": { + "Homepage": "https://www.bitz.com" + }, + "marketcap_usd": 3482190, + "name": "Bit-Z Token", + "network": "eth", + "shortcut": "BZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:BZNT": { + "address": "0xE1Aee98495365fc179699C1bB3E761FA716beE62", + "links": { + "Homepage": "https://bezant.io" + }, + "marketcap_usd": 15411348, + "name": "Bezant", + "network": "eth", + "shortcut": "BZNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:C20": { + "address": "0x26E75307Fc0C021472fEb8F727839531F112f317", + "links": { + "Github": "https://github.com/cryptotwenty", + "Homepage": "https://crypto20.com" + }, + "marketcap_usd": 15864272, + "name": "Crypto20's Token", + "network": "eth", + "shortcut": "C20", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:C8": { + "address": "0xd42debE4eDc92Bd5a3FBb4243e1ecCf6d63A4A5d", + "links": { + "Homepage": "https://www.carboneum.io" + }, + "marketcap_usd": 445723, + "name": "Carboneum", + "network": "eth", + "shortcut": "C8", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAG": { + "address": "0x7d4b8Cce0591C9044a22ee543533b72E976E36C3", + "links": { + "Homepage": "https://change-bank.com" + }, + "marketcap_usd": 2966277, + "name": "Change Bank", + "network": "eth", + "shortcut": "CAG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAN": { + "address": "0x1d462414fe14cf489c7A21CaC78509f4bF8CD7c0", + "links": { + "Homepage": "https://canya.io" + }, + "marketcap_usd": 811541, + "name": "CanYaCoin", + "network": "eth", + "shortcut": "CAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAPP": { + "address": "0x04F2E7221fdb1B52A68169B25793E51478fF0329", + "links": { + "Homepage": "https://cappasity.com/tech/" + }, + "marketcap_usd": 1389713, + "name": "Cappasity", + "network": "eth", + "shortcut": "CAPP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CARB": { + "address": "0xA517a46Baad6B054A76bD19c46844f717fe69fea", + "links": { + "Homepage": "https://carbcoin.eu/" + }, + "marketcap_usd": 0, + "name": "CarbCoin", + "network": "eth", + "shortcut": "CARB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CARCO": { + "address": "0x2108E62D335Bbdc89eC3E9d8582F18DCFB0cDFf4", + "links": { + "Homepage": "https://carcohub.com" + }, + "marketcap_usd": 0, + "name": "CARCO", + "network": "eth", + "shortcut": "CARCO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CARE": { + "address": "0xbF18F246B9301F231e9561B35A3879769BB46375", + "links": { + "Homepage": "https://tombcare.com/" + }, + "marketcap_usd": 0, + "name": "Token CARE", + "network": "eth", + "shortcut": "CARE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAS": { + "address": "0xe8780B48bdb05F928697A5e8155f672ED91462F7", + "links": { + "Homepage": "https://cashaa.com" + }, + "marketcap_usd": 4600835, + "name": "Cashaa", + "network": "eth", + "shortcut": "CAS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAT (BitClave)": { + "address": "0x1234567461d3f8Db7496581774Bd869C83D51c93", + "links": { + "Homepage": "https://www.bitclave.com" + }, + "marketcap_usd": 326457, + "name": "BitClave", + "network": "eth", + "shortcut": "CAT (BitClave)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CAT (BlockCAT)": { + "address": "0x56ba2Ee7890461f463F7be02aAC3099f6d5811A8", + "links": { + "Homepage": "https://blockcat.io" + }, + "marketcap_usd": 329923, + "name": "BlockCAT", + "network": "eth", + "shortcut": "CAT (BlockCAT)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CATs (BitClave)_Old": { + "address": "0x68e14bb5A45B9681327E16E528084B9d962C1a39", + "links": { + "Homepage": "https://www.bitclave.com" + }, + "marketcap_usd": 0, + "name": "CATs (BitClave)_Old", + "network": "eth", + "shortcut": "CATs (BitClave)_Old", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CBC": { + "address": "0x26DB5439F651CAF491A87d48799dA81F191bDB6b", + "links": { + "Homepage": "https://coin.cashbet.com" + }, + "marketcap_usd": 946167, + "name": "CashBet Coin", + "network": "eth", + "shortcut": "CBC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CBIX": { + "address": "0x05C3617cBf1304b9260AA61ec960F115D67beCEA", + "links": { + "Github": "https://github.com/Cubrixio", + "Homepage": "https://cubrix.io" + }, + "marketcap_usd": 0, + "name": "Cubrix", + "network": "eth", + "shortcut": "CBIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CBT": { + "address": "0x076C97e1c869072eE22f8c91978C99B4bcB02591", + "links": { + "Homepage": "https://www.commerceblock.com" + }, + "marketcap_usd": 2664057, + "name": "CommerceBlock", + "network": "eth", + "shortcut": "CBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CC3": { + "address": "0xc166038705FFBAb3794185b3a9D925632A1DF37D", + "links": { + "Homepage": "https://coalcoin.tech/en" + }, + "marketcap_usd": 0, + "name": "Coal Coin", + "network": "eth", + "shortcut": "CC3", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCC (CryptoCrashCourse)": { + "address": "0x28577A6d31559bd265Ce3ADB62d0458550F7b8a7", + "links": { + "Homepage": "http://cryptocrashcourse.com" + }, + "marketcap_usd": 0, + "name": "CryptoCrashCourse", + "network": "eth", + "shortcut": "CCC (CryptoCrashCourse)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCC (ICONOMI)": { + "address": "0xBE11eEb186e624b8f26A5045575a1340E4054552", + "links": { + "Homepage": "https://www.iconomi.net/dashboard/#/daa/CCC" + }, + "marketcap_usd": 0, + "name": "CCC (ICONOMI)", + "network": "eth", + "shortcut": "CCC (ICONOMI)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCCX": { + "address": "0x378903a03FB2C3AC76BB52773e3CE11340377A32", + "links": { + "Homepage": "http://clippercoin.com" + }, + "marketcap_usd": 3661374, + "name": "Clipper Coin", + "network": "eth", + "shortcut": "CCCX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCLC": { + "address": "0xd348e07A2806505B856123045d27aeeD90924b50", + "links": { + "Github": "https://github.com/lifechange-io/christ-coin", + "Homepage": "https://christcoins.io" + }, + "marketcap_usd": 0, + "name": "Christ Coin", + "network": "eth", + "shortcut": "CCLC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCO": { + "address": "0x679BADc551626e01B23CeecEFBc9B877EA18fc46", + "links": { + "Homepage": "https://ccore.io" + }, + "marketcap_usd": 91897, + "name": "Ccore", + "network": "eth", + "shortcut": "CCO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCS": { + "address": "0x315cE59FAFd3A8d562b7Ec1C8542382d2710b06c", + "links": { + "Github": "github.com/AnalemaTechnologies/CacaoShares", + "Homepage": "http://www.cacaoshares.com" + }, + "marketcap_usd": 0, + "name": "CacaoShares", + "network": "eth", + "shortcut": "CCS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CCT": { + "address": "0x336F646F87D9f6bC6Ed42Dd46E8b3fD9DbD15C22", + "links": { + "Homepage": "http://crystal-clear.io" + }, + "marketcap_usd": 31743, + "name": "Crystal Clear Token", + "network": "eth", + "shortcut": "CCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CDL": { + "address": "0x8a95ca448A52C0ADf0054bB3402dC5e09CD6B232", + "links": { + "Github": "https://github.com/confideal", + "Homepage": "https://confideal.io" + }, + "marketcap_usd": 0, + "name": "Confideal", + "network": "eth", + "shortcut": "CDL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CDT": { + "address": "0x177d39AC676ED1C67A2b268AD7F1E58826E5B0af", + "links": { + "Homepage": "https://www.coindash.io" + }, + "marketcap_usd": 5754254, + "name": "CoinDash", + "network": "eth", + "shortcut": "CDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CEEK": { + "address": "0xb056c38f6b7Dc4064367403E26424CD2c60655e1", + "links": { + "Homepage": "https://www.ceek.com/" + }, + "marketcap_usd": 2014031, + "name": "CEEK VR Token", + "network": "eth", + "shortcut": "CEEK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CENNZ": { + "address": "0x1122B6a0E00DCe0563082b6e2953f3A943855c1F", + "links": { + "Homepage": "https://www.centrality.ai" + }, + "marketcap_usd": 16509087, + "name": "Centrality", + "network": "eth", + "shortcut": "CENNZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CET": { + "address": "0xF660cA1e228e7BE1fA8B4f5583145E31147FB577", + "links": { + "Github": "https://github.com/DICE-Money/", + "Homepage": "https://dice.money/" + }, + "marketcap_usd": 0, + "name": "DICE Money Dicet", + "network": "eth", + "shortcut": "CET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CFC": { + "address": "0x5Dff89a2caa4D76bc286F74D67Bd718eb834da61", + "links": { + "Homepage": "https://cryptfillcoin.com" + }, + "marketcap_usd": 0, + "name": "CryptFillCoin", + "network": "eth", + "shortcut": "CFC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CFI": { + "address": "0x12FEF5e57bF45873Cd9B62E9DBd7BFb99e32D73e", + "links": { + "Homepage": "https://cofound.it/" + }, + "marketcap_usd": 0, + "name": "Cofound.it", + "network": "eth", + "shortcut": "CFI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CFTY": { + "address": "0x6956983F8B3Ce173B4AB84361AA0ad52f38D936f", + "links": { + "Github": "https://github.com/crafty-work", + "Homepage": "https://crafty.work/" + }, + "marketcap_usd": 0, + "name": "Crafty Token", + "network": "eth", + "shortcut": "CFTY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CHP": { + "address": "0xf3db7560E820834658B590C96234c333Cd3D5E5e", + "links": { + "Homepage": "https://coinpoker.com" + }, + "marketcap_usd": 599590, + "name": "CoinPoker", + "network": "eth", + "shortcut": "CHP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CHSB": { + "address": "0xba9d4199faB4f26eFE3551D490E3821486f135Ba", + "links": { + "Homepage": "https://swissborg.com" + }, + "marketcap_usd": 5207472, + "name": "SwissBorg", + "network": "eth", + "shortcut": "CHSB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CHX": { + "address": "0x1460a58096d80a50a2F1f956DDA497611Fa4f165", + "links": { + "Homepage": "https://weown.com" + }, + "marketcap_usd": 15454120, + "name": "Own", + "network": "eth", + "shortcut": "CHX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CIYA": { + "address": "0xf75fBfa2f681860B9A6D19FC3FF3D34CB322E2D6", + "links": { + "Github": "https://github.com/cryptoriya", + "Homepage": "https://www.cryptoriya.com" + }, + "marketcap_usd": 0, + "name": "CRYPTORIYA", + "network": "eth", + "shortcut": "CIYA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CJT": { + "address": "0x3abdfF32F76b42E7635bdb7e425f0231A5F3aB17", + "links": { + "Homepage": "https://www.connectjob.io" + }, + "marketcap_usd": 22277, + "name": "ConnectJob", + "network": "eth", + "shortcut": "CJT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CK": { + "address": "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d", + "links": { + "Homepage": "https://cryptokitties.co" + }, + "marketcap_usd": 0, + "name": "CK", + "network": "eth", + "shortcut": "CK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CL": { + "address": "0xe81D72D14B1516e68ac3190a46C93302Cc8eD60f", + "links": { + "Homepage": "https://www.coinlancer.io" + }, + "marketcap_usd": 279850, + "name": "Coinlancer", + "network": "eth", + "shortcut": "CL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CLB": { + "address": "0xb1c1Cb8C7c1992dba24e628bF7d38E71daD46aeB", + "links": { + "Github": "https://github.com/Cloudbric-Project", + "Homepage": "https://www.cloudbric.io/" + }, + "marketcap_usd": 1736199, + "name": "Cloudbric", + "network": "eth", + "shortcut": "CLB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CLL": { + "address": "0x3dC9a42fa7Afe57BE03c58fD7F4411b1E466C508", + "links": { + "Github": "https://github.com/CryptoLiveLeak/CLL-Token", + "Homepage": "https://www.cryptoliveleak.com/" + }, + "marketcap_usd": 0, + "name": "CryptoLiveLeak", + "network": "eth", + "shortcut": "CLL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CLN": { + "address": "0x4162178B78D6985480A308B2190EE5517460406D", + "links": { + "Github": "https://github.com/colucom/CLN-solidity", + "Homepage": "https://cln.network" + }, + "marketcap_usd": 935135, + "name": "ColuLocalNetwork", + "network": "eth", + "shortcut": "CLN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CLP": { + "address": "0x7FCE2856899a6806eeEf70807985fc7554C66340", + "links": { + "Homepage": "https://cryptolending.org" + }, + "marketcap_usd": 0, + "name": "CryptoLending", + "network": "eth", + "shortcut": "CLP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CMBT": { + "address": "0x3EDD235C3E840C1F29286B2e39370a255C7B6fdb", + "links": { + "Homepage": "https://www.coinmarketbrasil.com.br" + }, + "marketcap_usd": 0, + "name": "CMBToken", + "network": "eth", + "shortcut": "CMBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CMC": { + "address": "0x7e667525521cF61352e2E01b50FaaaE7Df39749a", + "links": { + "Homepage": "https://www.cryptomart.me" + }, + "marketcap_usd": 0, + "name": "CryptoMart", + "network": "eth", + "shortcut": "CMC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CMCT": { + "address": "0x47bc01597798DCD7506DCCA36ac4302fc93a8cFb", + "links": { + "Homepage": "https://crowdmachine.com" + }, + "marketcap_usd": 724059, + "name": "Crowd Machine Compute Token", + "network": "eth", + "shortcut": "CMCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CMT": { + "address": "0xf85fEea2FdD81d51177F6b8F35F0e6734Ce45F5F", + "links": { + "Github": "https://github.com/CyberMiles", + "Homepage": "https://cm.5miles.com" + }, + "marketcap_usd": 0, + "name": "CyberMiles Token", + "network": "eth", + "shortcut": "CMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CNB": { + "address": "0xEBf2F9E8De960f64ec0fDCDa6Cb282423133347B", + "links": { + "Homepage": "https://canabio.net" + }, + "marketcap_usd": 0, + "name": "Canabio", + "network": "eth", + "shortcut": "CNB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CND": { + "address": "0xd4c435F5B09F855C3317c8524Cb1F586E42795fa", + "links": { + "Homepage": "https://cindicator.com" + }, + "marketcap_usd": 19642110, + "name": "Cindicator", + "network": "eth", + "shortcut": "CND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CNN": { + "address": "0x8713d26637CF49e1b6B4a7Ce57106AaBc9325343", + "links": { + "Homepage": "https://cnntoken.io" + }, + "marketcap_usd": 5115703, + "name": "Content Neutrality Network", + "network": "eth", + "shortcut": "CNN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CO2": { + "address": "0xB4b1D2C217EC0776584CE08D3DD98F90EDedA44b", + "links": { + "Github": "https://github.com/climatecoinio", + "Homepage": "https://climatecoin.io" + }, + "marketcap_usd": 0, + "name": "Climatecoin", + "network": "eth", + "shortcut": "CO2", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CO2Bit": { + "address": "0x574B36BceD443338875d171CC377E691f7d4F887", + "links": { + "Homepage": "https://co2bit.com" + }, + "marketcap_usd": 0, + "name": "CO2Bit", + "network": "eth", + "shortcut": "CO2Bit", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:COB": { + "address": "0xb2F7EB1f2c37645bE61d73953035360e768D81E6", + "links": { + "Github": "https://github.com/cobinhood", + "Homepage": "https://cobinhood.com" + }, + "marketcap_usd": 4223519, + "name": "Cobinhood Token", + "network": "eth", + "shortcut": "COB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:COFI": { + "address": "0x3136eF851592aCf49CA4C825131E364170FA32b3", + "links": { + "Github": "https://github.com/coinfi", + "Homepage": "https://www.coinfi.com" + }, + "marketcap_usd": 581590, + "name": "CoinFi Token", + "network": "eth", + "shortcut": "COFI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:COIL": { + "address": "0x0C91B015AbA6f7B4738dcD36E7410138b29ADC29", + "links": { + "Github": "https://github.com/CoinOil", + "Homepage": "https://coinoil.io/" + }, + "marketcap_usd": 0, + "name": "CoinOil", + "network": "eth", + "shortcut": "COIL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CORI": { + "address": "0x725B190Bc077FFde17Cf549AA8ba25e298550B18", + "links": { + "Homepage": "https://corrently.de/token/" + }, + "marketcap_usd": 0, + "name": "Corrently Invest Token", + "network": "eth", + "shortcut": "CORI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:COSM": { + "address": "0xC4Bcd64CB216D49fD3C643A32762F34626b45a1a", + "links": { + "Homepage": "https://cosmochain.io" + }, + "marketcap_usd": 36728600, + "name": "Cosmo Coin", + "network": "eth", + "shortcut": "COSM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:COV": { + "address": "0xE2FB6529EF566a080e6d23dE0bd351311087D567", + "links": { + "Homepage": "https://covesting.io/" + }, + "marketcap_usd": 1717394, + "name": "Covesting", + "network": "eth", + "shortcut": "COV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CPAY": { + "address": "0x0Ebb614204E47c09B6C3FeB9AAeCad8EE060E23E", + "links": { + "Homepage": "https://cryptopay.me" + }, + "marketcap_usd": 1379519, + "name": "Cryptopay", + "network": "eth", + "shortcut": "CPAY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CPEX": { + "address": "0xb787d4eAc8899730bb8C57fc3c998c49c5244ec0", + "links": { + "Github": "https://github.com/coinpulse", + "Homepage": "https://CoinPulse.io" + }, + "marketcap_usd": 0, + "name": "CoinPulseToken", + "network": "eth", + "shortcut": "CPEX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CPLO": { + "address": "0x7064aAb39A0Fcf7221c3396719D0917a65E35515", + "links": { + "Github": "https://github.com/Cpollo", + "Homepage": "https://cpollo.info/" + }, + "marketcap_usd": 143645, + "name": "CPOLLO", + "network": "eth", + "shortcut": "CPLO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CPY": { + "address": "0xf44745fBd41F6A1ba151df190db0564c5fCc4410", + "links": { + "Github": "https://github.com/aditus", + "Homepage": "https://copytrack.io" + }, + "marketcap_usd": 1160328, + "name": "COPYTRACK", + "network": "eth", + "shortcut": "CPY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CR7": { + "address": "0x7F585B9130c64e9e9F470b618A7badD03D79cA7E", + "links": { + "Github": "https://github.com/CR7CoinProject", + "Homepage": "https://cr7coin.org" + }, + "marketcap_usd": 0, + "name": "CR7Coin", + "network": "eth", + "shortcut": "CR7", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRB": { + "address": "0xAef38fBFBF932D1AeF3B808Bc8fBd8Cd8E1f8BC5", + "links": { + "Homepage": "https://www.creditbit.org" + }, + "marketcap_usd": 126123, + "name": "Creditbit", + "network": "eth", + "shortcut": "CRB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRBT": { + "address": "0x2cF618c19041D9Db330d8222B860A624021F30fb", + "links": { + "Homepage": "https://www.cruisebit.com" + }, + "marketcap_usd": 224255, + "name": "Cruisebit", + "network": "eth", + "shortcut": "CRBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRC": { + "address": "0xF41e5Fbc2F6Aac200Dd8619E121CE1f05D150077", + "links": { + "Homepage": "https://crycash.io" + }, + "marketcap_usd": 176823, + "name": "CryCash", + "network": "eth", + "shortcut": "CRC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRED": { + "address": "0x672a1AD4f667FB18A333Af13667aa0Af1F5b5bDD", + "links": { + "Github": "https://github.com/verifyas", + "Homepage": "https://token.verify.as" + }, + "marketcap_usd": 383146, + "name": "Verify", + "network": "eth", + "shortcut": "CRED", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CREDO": { + "address": "0x4E0603e2A27A30480E5e3a4Fe548e29EF12F64bE", + "links": { + "Homepage": "https://bitbounce.io" + }, + "marketcap_usd": 17300200, + "name": "Credo / Bitbounce", + "network": "eth", + "shortcut": "CREDO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRGO": { + "address": "0xf49CDD50aD408d387d611F88A647179C3de3492b", + "links": { + "Github": "https://github.com/CargoCoinRepo/Cargo-Coin", + "Homepage": "https://thecargocoin.com" + }, + "marketcap_usd": 0, + "name": "CargoCoin", + "network": "eth", + "shortcut": "CRGO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRMT": { + "address": "0x9238bfB781A55eACC3Cf05F7DF94038c198CD9B9", + "links": { + "Homepage": "https://www.cremit.co" + }, + "marketcap_usd": 0, + "name": "Cremit", + "network": "eth", + "shortcut": "CRMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRPT": { + "address": "0x80A7E048F37A50500351C204Cb407766fA3baE7f", + "links": { + "Homepage": "https://crypterium.io" + }, + "marketcap_usd": 14301333, + "name": "CrypteriumToken", + "network": "eth", + "shortcut": "CRPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CRT": { + "address": "0xF0da1186a4977226b9135d0613ee72e229EC3F4d", + "links": { + "Homepage": "http://creamtoecoin.com" + }, + "marketcap_usd": 0, + "name": "CreamtoeCoin", + "network": "eth", + "shortcut": "CRT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CS": { + "address": "0x46b9Ad944d1059450Da1163511069C718F699D31", + "links": { + "Homepage": "https://credits.com/en" + }, + "marketcap_usd": 11112383, + "name": "Credits", + "network": "eth", + "shortcut": "CS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CSNO": { + "address": "0x29D75277aC7F0335b2165D0895E8725cbF658d73", + "links": { + "Homepage": "https://www.bitdice.me" + }, + "marketcap_usd": 2350163, + "name": "BitDice", + "network": "eth", + "shortcut": "CSNO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CST": { + "address": "0xBB49A51Ee5a66ca3a8CbE529379bA44Ba67E6771", + "links": { + "Homepage": "https://cryptosolartech.org" + }, + "marketcap_usd": 279638, + "name": "Cryptosolartech", + "network": "eth", + "shortcut": "CST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTF": { + "address": "0x4545750F39aF6Be4F237B6869D4EccA928Fd5A85", + "links": { + "Github": "https://github.com/vkajic/cryptotask", + "Homepage": "http://www.cryptotask.org" + }, + "marketcap_usd": 0, + "name": "CryptoTask", + "network": "eth", + "shortcut": "CTF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTG": { + "address": "0xC87c5dD86A3d567fF28701886fB0745aaa898da4", + "links": { + "Github": "github.com/CTGlobal/ChristianTraders", + "Homepage": "https://christiantraders.com" + }, + "marketcap_usd": 0, + "name": "CT Global Token", + "network": "eth", + "shortcut": "CTG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTGC": { + "address": "0x9E7D29bd499B6c7da2a5B2EaFCF4A39d3BD845D1", + "links": { + "Github": "https://github.com/ctgcoin/", + "Homepage": "https://www.ctgcoin.org" + }, + "marketcap_usd": 0, + "name": "Convenient To Go", + "network": "eth", + "shortcut": "CTGC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTT": { + "address": "0xE3Fa177AcecfB86721Cf6f9f4206bd3Bd672D7d5", + "links": { + "Homepage": "https://chaintrade.net" + }, + "marketcap_usd": 0, + "name": "ChainTrade Token", + "network": "eth", + "shortcut": "CTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTX": { + "address": "0x662aBcAd0b7f345AB7FfB1b1fbb9Df7894f18e66", + "links": { + "Homepage": "https://cartaxi.io" + }, + "marketcap_usd": 0, + "name": "CarTaxi", + "network": "eth", + "shortcut": "CTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CTXC": { + "address": "0xEa11755Ae41D889CeEc39A63E6FF75a02Bc1C00d", + "links": { + "Homepage": "http://www.cortexlabs.ai" + }, + "marketcap_usd": 22038800, + "name": "Cortex", + "network": "eth", + "shortcut": "CTXC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CVC": { + "address": "0x41e5560054824eA6B0732E656E3Ad64E20e94E45", + "links": { + "Homepage": "https://www.civic.com" + }, + "marketcap_usd": 22337812, + "name": "Civic", + "network": "eth", + "shortcut": "CVC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CVT": { + "address": "0xBe428c3867F05deA2A89Fc76a102b544eaC7f772", + "links": { + "Homepage": "http://www.cybervein.org" + }, + "marketcap_usd": 6609903, + "name": "CyberVein", + "network": "eth", + "shortcut": "CVT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CXC": { + "address": "0x2134057C0b461F898D375Cead652Acae62b59541", + "links": { + "Github": "https://github.com/coxxxcoin/smart_contract", + "Homepage": "http://coxxxcoin.com" + }, + "marketcap_usd": 0, + "name": "CoxxxCoin", + "network": "eth", + "shortcut": "CXC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CXO": { + "address": "0xb6EE9668771a79be7967ee29a63D4184F8097143", + "links": { + "Github": "https://github.com/cargoxio", + "Homepage": "https://cargox.io" + }, + "marketcap_usd": 1466592, + "name": "CargoX", + "network": "eth", + "shortcut": "CXO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CYFM": { + "address": "0x3f06B5D78406cD97bdf10f5C420B241D32759c80", + "links": { + "Homepage": "https://cyberfmradio.com" + }, + "marketcap_usd": 147659, + "name": "CyberFM", + "network": "eth", + "shortcut": "CYFM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CYMT": { + "address": "0x78c292D1445E6b9558bf42e8BC369271DeD062eA", + "links": { + "Homepage": "https://cybermusic.io" + }, + "marketcap_usd": 36785, + "name": "CyberMusic", + "network": "eth", + "shortcut": "CYMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CZR": { + "address": "0x0223fc70574214F65813fE336D870Ac47E147fAe", + "links": { + "Homepage": "http://www.canonchain.com" + }, + "marketcap_usd": 5858513, + "name": "CanonChain", + "network": "eth", + "shortcut": "CZR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:CryptoCarbon": { + "address": "0xE4c94d45f7Aef7018a5D66f44aF780ec6023378e", + "links": { + "Homepage": "https://ccrb.io" + }, + "marketcap_usd": 0, + "name": "CryptoCarbon", + "network": "eth", + "shortcut": "CryptoCarbon", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAB": { + "address": "0xdab0C31BF34C897Fb0Fe90D12EC9401caf5c36Ec", + "links": { + "Homepage": "https://dabco.in" + }, + "marketcap_usd": 0, + "name": "DAB", + "network": "eth", + "shortcut": "DAB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DACS": { + "address": "0xA31108E5BAB5494560Db34c95492658AF239357C", + "links": { + "Homepage": "https://dacsee.io/#" + }, + "marketcap_usd": 2308283, + "name": "DACSEE", + "network": "eth", + "shortcut": "DACS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DADI": { + "address": "0xFb2f26F266Fb2805a387230f2aa0a331b4d96Fba", + "links": { + "Homepage": "https://dadi.cloud" + }, + "marketcap_usd": 2596795, + "name": "DADI", + "network": "eth", + "shortcut": "DADI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAI": { + "address": "0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359", + "links": { + "Github": "https://github.com/makerdao", + "Homepage": "https://makerdao.com" + }, + "marketcap_usd": 88588820, + "name": "Dai Stablecoin v1.0", + "network": "eth", + "shortcut": "DAI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DALC": { + "address": "0x07D9e49Ea402194bf48A8276dAfB16E4eD633317", + "links": { + "Homepage": "http://www.dalecoin.org" + }, + "marketcap_usd": 6704, + "name": "DaleCoin", + "network": "eth", + "shortcut": "DALC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAN": { + "address": "0x9B70740e708a083C6fF38Df52297020f5DfAa5EE", + "links": { + "Github": "https://github.com/project-daneel", + "Homepage": "https://daneel.io" + }, + "marketcap_usd": 340084, + "name": "DaneelToken", + "network": "eth", + "shortcut": "DAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAO": { + "address": "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413", + "links": { + "Homepage": "https://blog.daohub.org" + }, + "marketcap_usd": 0, + "name": "DAO", + "network": "eth", + "shortcut": "DAO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAT": { + "address": "0x81c9151de0C8bafCd325a57E3dB5a5dF1CEBf79c", + "links": { + "Homepage": "https://datum.org" + }, + "marketcap_usd": 973025, + "name": "Datum Token", + "network": "eth", + "shortcut": "DAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DATA": { + "address": "0x0Cf0Ee63788A0849fE5297F3407f701E122cC023", + "links": { + "Github": "https://github.com/streamr-dev", + "Homepage": "https://www.streamr.com" + }, + "marketcap_usd": 13001102, + "name": "Streamr DATAcoin", + "network": "eth", + "shortcut": "DATA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DATABroker": { + "address": "0x1B5f21ee98eed48d292e8e2d3Ed82b40a9728A22", + "links": { + "Github": "https://github.com/DataBrokerDAO", + "Homepage": "https://databrokerdao.com" + }, + "marketcap_usd": 0, + "name": "DataBrokerDAO Token", + "network": "eth", + "shortcut": "DATABroker", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DATX": { + "address": "0xaBbBB6447B68ffD6141DA77C18c7B5876eD6c5ab", + "links": { + "Homepage": "https://www.datx.co" + }, + "marketcap_usd": 1227838, + "name": "DATx", + "network": "eth", + "shortcut": "DATX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAV": { + "address": "0xd82Df0ABD3f51425Eb15ef7580fDA55727875f14", + "links": { + "Github": "https://github.com/DAVFoundation", + "Homepage": "https://dav.network/" + }, + "marketcap_usd": 918631, + "name": "DAV Token", + "network": "eth", + "shortcut": "DAV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAX": { + "address": "0x0B4BdC478791897274652DC15eF5C135cae61E60", + "links": { + "Homepage": "https://www.daex.io" + }, + "marketcap_usd": 1846210, + "name": "DAEX", + "network": "eth", + "shortcut": "DAX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAXT": { + "address": "0x61725f3db4004AFE014745B21DAb1E1677CC328b", + "links": { + "Homepage": "https://www.daxt.io" + }, + "marketcap_usd": 0, + "name": "Digital Asset Exchange Token", + "network": "eth", + "shortcut": "DAXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DAY": { + "address": "0xE814aeE960a85208C3dB542C53E7D4a6C8D5f60F", + "links": { + "Github": "https://github.com/chronologic", + "Homepage": "https://chronologic.network" + }, + "marketcap_usd": 124915, + "name": "ChronoLogic DAY", + "network": "eth", + "shortcut": "DAY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DBET": { + "address": "0x9b68bFaE21DF5A510931A262CECf63f41338F264", + "links": { + "Homepage": "https://www.decent.bet" + }, + "marketcap_usd": 8900462, + "name": "DecentBet", + "network": "eth", + "shortcut": "DBET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DCA": { + "address": "0x386Faa4703a34a7Fdb19Bec2e14Fd427C9638416", + "links": { + "Github": "https://github.com/dobetacceptbet", + "Homepage": "http://www.dobetacceptbet.com" + }, + "marketcap_usd": 0, + "name": "DoBetAcceptBet", + "network": "eth", + "shortcut": "DCA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DCC": { + "address": "0xFFa93Aacf49297D51E211817452839052FDFB961", + "links": { + "Github": "https://github.com/DistributedBanking/DCC", + "Homepage": "http://dcc.finance" + }, + "marketcap_usd": 3658398, + "name": "Distributed Credit Chain", + "network": "eth", + "shortcut": "DCC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DCL": { + "address": "0x399A0e6FbEb3d74c85357439f4c8AeD9678a5cbF", + "links": { + "Homepage": "https://www.DisLedger.com" + }, + "marketcap_usd": 0, + "name": "DCL", + "network": "eth", + "shortcut": "DCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DCN": { + "address": "0x08d32b0da63e2C3bcF8019c9c5d849d7a9d791e6", + "links": { + "Github": "https://github.com/Dentacoin", + "Homepage": "https://dentacoin.com" + }, + "marketcap_usd": 11503563, + "name": "Dentacoin", + "network": "eth", + "shortcut": "DCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DDF": { + "address": "0xcC4eF9EEAF656aC1a2Ab886743E98e97E090ed38", + "links": { + "Github": "https://github.com/digitaldevelopersfund/ddf", + "Homepage": "https://www.digitaldevelopersfund.com" + }, + "marketcap_usd": 0, + "name": "DDF", + "network": "eth", + "shortcut": "DDF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DEB": { + "address": "0x151202C9c18e495656f372281F493EB7698961D5", + "links": { + "Homepage": "https://debitum.network/" + }, + "marketcap_usd": 780409, + "name": "DEBITUM", + "network": "eth", + "shortcut": "DEB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DEEZ": { + "address": "0x075c60EE2cD308ff47873b38Bd9A0Fa5853382c4", + "links": { + "Github": "https://github.com/DeezNutsToken/DEEZ", + "Homepage": "https://deeznuts.in" + }, + "marketcap_usd": 0, + "name": "DeezNuts", + "network": "eth", + "shortcut": "DEEZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DELTA": { + "address": "0xDE1E0AE6101b46520cF66fDC0B1059c5cC3d106c", + "links": { + "Homepage": "https://deltachain.tech" + }, + "marketcap_usd": 23952, + "name": "DeltaChain", + "network": "eth", + "shortcut": "DELTA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DENT": { + "address": "0x3597bfD533a99c9aa083587B074434E61Eb0A258", + "links": { + "Homepage": "https://www.dentwireless.com" + }, + "marketcap_usd": 31569282, + "name": "DENT", + "network": "eth", + "shortcut": "DENT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DEW": { + "address": "0x20E94867794dBA030Ee287F1406E100d03C84Cd3", + "links": { + "Homepage": "https://www.dew.one" + }, + "marketcap_usd": 5985344, + "name": "DEW", + "network": "eth", + "shortcut": "DEW", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DEX": { + "address": "0x497bAEF294c11a5f0f5Bea3f2AdB3073DB448B56", + "links": { + "Homepage": "https://www.coinbit.co.kr/" + }, + "marketcap_usd": 3831106, + "name": "DEX", + "network": "eth", + "shortcut": "DEX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGD": { + "address": "0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A", + "links": { + "Homepage": "https://www.dgx.io" + }, + "marketcap_usd": 31687514, + "name": "Digix DAO", + "network": "eth", + "shortcut": "DGD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGPT": { + "address": "0xf6cFe53d6FEbaEEA051f400ff5fc14F0cBBDacA1", + "links": { + "Github": "https://github.com/digipulseio", + "Homepage": "https://www.digipulse.io" + }, + "marketcap_usd": 0, + "name": "DigiPulse", + "network": "eth", + "shortcut": "DGPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGS": { + "address": "0x6aEDbF8dFF31437220dF351950Ba2a3362168d1b", + "links": { + "Github": "https://github.com/dragonglasscom", + "Homepage": "https://dragonglass.com/" + }, + "marketcap_usd": 77329, + "name": "Dragonglass", + "network": "eth", + "shortcut": "DGS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGTX": { + "address": "0x1C83501478f1320977047008496DACBD60Bb15ef", + "links": { + "Github": "https://github.com/DigitexFutures", + "Homepage": "https://digitexfutures.com/" + }, + "marketcap_usd": 60748587, + "name": "DigitexFutures", + "network": "eth", + "shortcut": "DGTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGX": { + "address": "0x4f3AfEC4E5a3F2A6a1A411DEF7D7dFe50eE057bF", + "links": { + "Github": "https://github.com/DigixGlobal", + "Homepage": "https://digix.global" + }, + "marketcap_usd": 3934362, + "name": "Digix Gold Token", + "network": "eth", + "shortcut": "DGX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DGX1": { + "address": "0x55b9a11c2e8351b4Ffc7b11561148bfaC9977855", + "links": { + "Github": "https://github.com/DigixGlobal", + "Homepage": "https://digix.global" + }, + "marketcap_usd": 0, + "name": "Digix Gold Token 1.0", + "network": "eth", + "shortcut": "DGX1", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DICE": { + "address": "0x2e071D2966Aa7D8dECB1005885bA1977D6038A65", + "links": { + "Homepage": "https://etheroll.com" + }, + "marketcap_usd": 2235185, + "name": "Etheroll", + "network": "eth", + "shortcut": "DICE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DIT": { + "address": "0xf14922001A2FB8541a433905437ae954419C2439", + "links": { + "Homepage": "https://inmediate.io" + }, + "marketcap_usd": 447687, + "name": "Digital Insurance Token", + "network": "eth", + "shortcut": "DIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DIVX": { + "address": "0x13f11C9905A08ca76e3e853bE63D4f0944326C72", + "links": { + "Homepage": "https://www.diviproject.org" + }, + "marketcap_usd": 0, + "name": "DIVX", + "network": "eth", + "shortcut": "DIVX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DLT": { + "address": "0x07e3c70653548B04f0A75970C1F81B4CBbFB606f", + "links": { + "Homepage": "https://www.agrello.org" + }, + "marketcap_usd": 8708899, + "name": "Agrello", + "network": "eth", + "shortcut": "DLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DMT": { + "address": "0x2ccbFF3A042c68716Ed2a2Cb0c544A9f1d1935E1", + "links": { + "Github": "https://github.com/suntechsoft/dmarket-smartcontract", + "Homepage": "https://dmarket.com" + }, + "marketcap_usd": 9967255, + "name": "DMarket Token", + "network": "eth", + "shortcut": "DMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DNA": { + "address": "0x82b0E50478eeaFde392D45D1259Ed1071B6fDa81", + "links": { + "Homepage": "https://www.encrypgen.com" + }, + "marketcap_usd": 633207, + "name": "EncrypGen", + "network": "eth", + "shortcut": "DNA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DNT": { + "address": "0x0AbdAce70D3790235af448C88547603b945604ea", + "links": { + "Github": "https://github.com/district0x", + "Homepage": "https://district0x.io" + }, + "marketcap_usd": 7988231, + "name": "District0x Network Token", + "network": "eth", + "shortcut": "DNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DNX": { + "address": "0xE43E2041dc3786e166961eD9484a5539033d10fB", + "links": { + "Github": "https://github.com/DenCity-life", + "Homepage": "https://dencity.life" + }, + "marketcap_usd": 0, + "name": "DenCity", + "network": "eth", + "shortcut": "DNX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DOCK": { + "address": "0xE5Dada80Aa6477e85d09747f2842f7993D0Df71C", + "links": { + "Homepage": "https://dock.io" + }, + "marketcap_usd": 4462218, + "name": "Dock", + "network": "eth", + "shortcut": "DOCK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DOR": { + "address": "0x906b3f8b7845840188Eab53c3f5AD348A787752f", + "links": { + "Homepage": "https://www.dorado.tech" + }, + "marketcap_usd": 64382, + "name": "Dorado", + "network": "eth", + "shortcut": "DOR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DOV": { + "address": "0xac3211a5025414Af2866FF09c23FC18bc97e79b1", + "links": { + "Homepage": "https://dovu.io" + }, + "marketcap_usd": 1567495, + "name": "Dovu", + "network": "eth", + "shortcut": "DOV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DPP": { + "address": "0x01b3Ec4aAe1B8729529BEB4965F27d008788B0EB", + "links": { + "Homepage": "https://cofound.it/en/projects/digital-assets-power-play" + }, + "marketcap_usd": 0, + "name": "Digital Assets Power Play", + "network": "eth", + "shortcut": "DPP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DREAM": { + "address": "0x82f4dED9Cec9B5750FBFf5C2185AEe35AfC16587", + "links": { + "Homepage": "https://dreamteam.gg" + }, + "marketcap_usd": 0, + "name": "DREAM", + "network": "eth", + "shortcut": "DREAM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DRGN": { + "address": "0x419c4dB4B9e25d6Db2AD9691ccb832C8D9fDA05E", + "links": { + "Github": "https://github.com/dragonchain/dragonchain", + "Homepage": "https://dragonchain.com" + }, + "marketcap_usd": 22483906, + "name": "Dragon", + "network": "eth", + "shortcut": "DRGN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DRPU": { + "address": "0xe30e02f049957e2A5907589e06Ba646fB2c321bA", + "links": { + "Homepage": "https://www.dcorp.it" + }, + "marketcap_usd": 154139, + "name": "DCORP Utility", + "network": "eth", + "shortcut": "DRPU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DRT": { + "address": "0x9AF4f26941677C706cfEcf6D3379FF01bB85D5Ab", + "links": { + "Homepage": "https://token.domraider.com" + }, + "marketcap_usd": 1087006, + "name": "DomRaider", + "network": "eth", + "shortcut": "DRT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DRVH": { + "address": "0x62D4c04644314F35868Ba4c65cc27a77681dE7a9", + "links": { + "Github": "https://github.com/TeamDriveholic", + "Homepage": "https://driveholic.com/" + }, + "marketcap_usd": 0, + "name": "Driveholic Token", + "network": "eth", + "shortcut": "DRVH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DSC": { + "address": "0x1e09BD8Cadb441632e441Db3e1D79909EE0A2256", + "links": { + "Homepage": "https://github.com/xxxxyy1" + }, + "marketcap_usd": 0, + "name": "Digital Safe Coin", + "network": "eth", + "shortcut": "DSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DSCP": { + "address": "0x03e3f0c25965f13DbbC58246738C183E27b26a56", + "links": { + "Github": "https://github.com/DisciplinaOU/disciplina", + "Homepage": "https://disciplina.io" + }, + "marketcap_usd": 0, + "name": "Disciplina Token", + "network": "eth", + "shortcut": "DSCP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DST": { + "address": "0x68d53441c0e253f76c500e551bdeA3D102206C9a", + "links": { + "Github": "https://github.com/DimensionsNetwork", + "Homepage": "https://dimensions.network/" + }, + "marketcap_usd": 0, + "name": "Dimensions Strike Token", + "network": "eth", + "shortcut": "DST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DTH": { + "address": "0x5adc961D6AC3f7062D2eA45FEFB8D8167d44b190", + "links": { + "Github": "https://github.com/dethertech", + "Homepage": "https://dether.io" + }, + "marketcap_usd": 558755, + "name": "dether", + "network": "eth", + "shortcut": "DTH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DTR": { + "address": "0xd234BF2410a0009dF9c3C63b610c09738f18ccD7", + "links": { + "Homepage": "https://www.tokens.net" + }, + "marketcap_usd": 20758066, + "name": "Dynamic Trading Rights", + "network": "eth", + "shortcut": "DTR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DTRC": { + "address": "0xc20464e0C373486d2B3335576e83a218b1618A5E", + "links": { + "Homepage": "https://datarius.io" + }, + "marketcap_usd": 121421, + "name": "Datarius Credit", + "network": "eth", + "shortcut": "DTRC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DTT": { + "address": "0xf9F7c29CFdf19FCf1f2AA6B84aA367Bcf1bD1676", + "links": { + "Github": "https://github.com/DTToken", + "Homepage": "https://delphifund.org/" + }, + "marketcap_usd": 0, + "name": "Delphi Tech Token", + "network": "eth", + "shortcut": "DTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:DXT": { + "address": "0x8dB54ca569D3019A2ba126D03C37c44b5eF81EF6", + "links": { + "Homepage": "https://datawallet.com" + }, + "marketcap_usd": 677937, + "name": "Datawallet", + "network": "eth", + "shortcut": "DXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:Devcon2 Token": { + "address": "0xdd94De9cFE063577051A5eb7465D08317d8808B6", + "links": { + "Homepage": "https://www.devcon2-token.com" + }, + "marketcap_usd": 0, + "name": "Devcon2 Token", + "network": "eth", + "shortcut": "Devcon2 Token", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EAGLE": { + "address": "0x994f0DffdbaE0BbF09b652D6f11A493fd33F42B9", + "links": { + "Github": "https://github.com/elangindonesia/EagleCoin", + "Homepage": "https://eaglepay.io" + }, + "marketcap_usd": 0, + "name": "EagleCoin", + "network": "eth", + "shortcut": "EAGLE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EARTH": { + "address": "0x900b4449236a7bb26b286601dD14d2bDe7a6aC6c", + "links": { + "Homepage": "https://earth-token.com" + }, + "marketcap_usd": 24199, + "name": "Earth Token", + "network": "eth", + "shortcut": "EARTH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EBC": { + "address": "0x31f3D9D1BeCE0c033fF78fA6DA60a6048F3E13c5", + "links": { + "Homepage": "https://ebcoin.io" + }, + "marketcap_usd": 2623831, + "name": "EBCoin", + "network": "eth", + "shortcut": "EBC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EBTC": { + "address": "0xeB7C20027172E5d143fB030d50f91Cece2D1485D", + "links": { + "Github": "https://github.com/eBTCCommunityTrustToken/eBTC", + "Homepage": "https://ebitcoin.org" + }, + "marketcap_usd": 350358, + "name": "eBitcoin", + "network": "eth", + "shortcut": "EBTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ECN": { + "address": "0xa578aCc0cB7875781b7880903F4594D13cFa8B98", + "links": { + "Homepage": "http://www.cewrd.com" + }, + "marketcap_usd": 0, + "name": "ECN", + "network": "eth", + "shortcut": "ECN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ECO2": { + "address": "0x17F93475d2A978f527c3f7c44aBf44AdfBa60D5C", + "links": { + "Homepage": "http://www.ethco2.com" + }, + "marketcap_usd": 0, + "name": "EtherCO2", + "network": "eth", + "shortcut": "ECO2", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ECOM": { + "address": "0x171D750d42d661B62C277a6B486ADb82348c3Eca", + "links": { + "Homepage": "https://omnitude.tech" + }, + "marketcap_usd": 3733431, + "name": "Omnitude", + "network": "eth", + "shortcut": "ECOM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EDC": { + "address": "0xFA1DE2Ee97e4c10C94C91Cb2b5062b89Fb140b82", + "links": { + "Homepage": "https://www.edc.network" + }, + "marketcap_usd": 0, + "name": "Education Credits", + "network": "eth", + "shortcut": "EDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EDG": { + "address": "0x08711D3B02C8758F2FB3ab4e80228418a7F8e39c", + "links": { + "Homepage": "https://edgeless.io" + }, + "marketcap_usd": 14599629, + "name": "Edgeless", + "network": "eth", + "shortcut": "EDG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EDO": { + "address": "0xCeD4E93198734dDaFf8492d525Bd258D49eb388E", + "links": { + "Homepage": "https://eidoo.io" + }, + "marketcap_usd": 23700139, + "name": "Eidoo", + "network": "eth", + "shortcut": "EDO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EDR": { + "address": "0xc528c28FEC0A90C083328BC45f587eE215760A0F", + "links": { + "Github": "https://github.com/EndorCoin", + "Homepage": "https://www.endor.com" + }, + "marketcap_usd": 20494888, + "name": "Endor Protocol Token", + "network": "eth", + "shortcut": "EDR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EGT": { + "address": "0x8e1b448EC7aDFc7Fa35FC2e885678bD323176E34", + "links": { + "Github": "https://github.com/egretia", + "Homepage": "https://www.egretia.io" + }, + "marketcap_usd": 1395069, + "name": "Egretia Token", + "network": "eth", + "shortcut": "EGT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EHT": { + "address": "0xf9F0FC7167c311Dd2F1e21E9204F87EBA9012fB2", + "links": { + "Github": "https://github.com/team-easyhomes", + "Homepage": "https://easyhomes.io" + }, + "marketcap_usd": 0, + "name": "EasyHomes", + "network": "eth", + "shortcut": "EHT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EKO": { + "address": "0xa6a840E50bCaa50dA017b91A0D86B8b2d41156EE", + "links": { + "Homepage": "https://echolink.info" + }, + "marketcap_usd": 1327852, + "name": "EchoLink", + "network": "eth", + "shortcut": "EKO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EKT": { + "address": "0xBAb165dF9455AA0F2AeD1f2565520B91DDadB4c8", + "links": { + "Homepage": "http://ekt8.io" + }, + "marketcap_usd": 4027539, + "name": "EDUCare", + "network": "eth", + "shortcut": "EKT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ELEC": { + "address": "0xD49ff13661451313cA1553fd6954BD1d9b6E02b9", + "links": { + "Homepage": "https://electrify.asia" + }, + "marketcap_usd": 1114086, + "name": "Electrify.Asia", + "network": "eth", + "shortcut": "ELEC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ELF": { + "address": "0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e", + "links": { + "Github": "https://github.com/aelfProject", + "Homepage": "https://aelf.io/" + }, + "marketcap_usd": 47474900, + "name": "ELF Token", + "network": "eth", + "shortcut": "ELF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ELIX": { + "address": "0xc8C6A31A4A806d3710A7B38b7B296D2fABCCDBA8", + "links": { + "Homepage": "https://elixirtoken.io" + }, + "marketcap_usd": 104111, + "name": "Elixir Token", + "network": "eth", + "shortcut": "ELIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ELTCOIN": { + "address": "0x44197A4c44D6A059297cAf6be4F7e172BD56Caaf", + "links": { + "Github": "https://github.com/eltcoin", + "Homepage": "http://www.eltcoin.tech/" + }, + "marketcap_usd": 50896, + "name": "ELTCOIN", + "network": "eth", + "shortcut": "ELTCOIN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ELY": { + "address": "0xa95592DCFfA3C080B4B40E459c5f5692F67DB7F8", + "links": { + "Github": "https://github.com/Elysian-ELY", + "Homepage": "https://elycoin.io" + }, + "marketcap_usd": 149751, + "name": "ELYCOIN", + "network": "eth", + "shortcut": "ELY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EMON": { + "address": "0xb67b88a25708a35AE7c2d736D398D268CE4f7F83", + "links": { + "Github": "https://github.com/etheremon/smartcontract", + "Homepage": "https://www.etheremon.com/" + }, + "marketcap_usd": 0, + "name": "Etheremon", + "network": "eth", + "shortcut": "EMON", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EMONT": { + "address": "0x95dAaaB98046846bF4B2853e23cba236fa394A31", + "links": { + "Homepage": "https://www.etheremon.com" + }, + "marketcap_usd": 0, + "name": "Etheremon Token", + "network": "eth", + "shortcut": "EMONT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EMT": { + "address": "0x9501BFc48897DCEEadf73113EF635d2fF7ee4B97", + "links": { + "Github": "https://github.com/easyMINE", + "Homepage": "https://easymine.io" + }, + "marketcap_usd": 0, + "name": "easyMINE Token", + "network": "eth", + "shortcut": "EMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EMV": { + "address": "0xB802b24E0637c2B87D2E8b7784C055BBE921011a", + "links": { + "Homepage": "http://emovieventure.com" + }, + "marketcap_usd": 0, + "name": "EMovieVenture", + "network": "eth", + "shortcut": "EMV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ENC": { + "address": "0x039F5050dE4908f9b5ddF40A4F3Aa3f329086387", + "links": { + "Github": "https://github.com/ethernetcash", + "Homepage": "https://ethernet.cash" + }, + "marketcap_usd": 0, + "name": "Ethernet.Cash", + "network": "eth", + "shortcut": "ENC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ENG": { + "address": "0xf0Ee6b27b759C9893Ce4f094b49ad28fd15A23e4", + "links": { + "Github": "https://github.com/enigmampc", + "Homepage": "https://enigma.co/" + }, + "marketcap_usd": 29401241, + "name": "Enigma", + "network": "eth", + "shortcut": "ENG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ENGT": { + "address": "0x5DBAC24e98E2a4f43ADC0DC82Af403fca063Ce2c", + "links": { + "Homepage": "https://engagementtoken.com" + }, + "marketcap_usd": 55488, + "name": "Engagement Token", + "network": "eth", + "shortcut": "ENGT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ENJ": { + "address": "0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c", + "links": { + "Github": "https://github.com/enjin/contracts", + "Homepage": "https://enjincoin.io" + }, + "marketcap_usd": 174642443, + "name": "ENJIN", + "network": "eth", + "shortcut": "ENJ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ENTRP": { + "address": "0x5BC7e5f0Ab8b2E10D2D0a3F21739FCe62459aeF3", + "links": { + "Github": "https://github.com/hut34", + "Homepage": "https://hut34.io/" + }, + "marketcap_usd": 0, + "name": "Hut34 Entropy Token", + "network": "eth", + "shortcut": "ENTRP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EPX": { + "address": "0x35BAA72038F127f9f8C8f9B491049f64f377914d", + "links": { + "Github": "https://github.com/EthPokerIO/ethpokerIO", + "Homepage": "https://ethPoker.io" + }, + "marketcap_usd": 0, + "name": "ethPoker.io EPX", + "network": "eth", + "shortcut": "EPX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EPY": { + "address": "0x50Ee674689d75C0f88E8f83cfE8c4B69E8fd590D", + "links": { + "Homepage": "https://emphy.io" + }, + "marketcap_usd": 78997, + "name": "Emphy", + "network": "eth", + "shortcut": "EPY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EQL": { + "address": "0x47dD62D4D075DeAd71d0e00299fc56a2d747beBb", + "links": { + "Homepage": "http://www.equaltoken.io" + }, + "marketcap_usd": 363367, + "name": "Equal", + "network": "eth", + "shortcut": "EQL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ERO": { + "address": "0x74CEDa77281b339142A36817Fa5F9E29412bAb85", + "links": { + "Homepage": "https://eroscoin.org" + }, + "marketcap_usd": 1336200, + "name": "Eroscoin", + "network": "eth", + "shortcut": "ERO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ERT": { + "address": "0x92A5B04D0ED5D94D7a193d1d334D3D16996f4E13", + "links": { + "Github": "https://github.com/Krishtopa/ContractEristica", + "Homepage": "https://eristica.com/" + }, + "marketcap_usd": 898265, + "name": "Eristica", + "network": "eth", + "shortcut": "ERT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ESZ": { + "address": "0xe8A1Df958bE379045E2B46a31A98B93A2eCDfDeD", + "links": { + "Github": "https://github.com/EtherSportz/ESZCoin", + "Homepage": "https://ethersportz.com" + }, + "marketcap_usd": 232151, + "name": "ESZCoin", + "network": "eth", + "shortcut": "ESZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETBS": { + "address": "0x1B9743f556D65e757c4c650B4555bAF354cB8bd3", + "links": { + "Homepage": "https://www.ethbits.com" + }, + "marketcap_usd": 750688, + "name": "Ethbits", + "network": "eth", + "shortcut": "ETBS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETCH": { + "address": "0xDd74a7A3769fA72561B3A69e65968F49748c690c", + "links": { + "Homepage": "https://etch.work" + }, + "marketcap_usd": 0, + "name": "ETCH", + "network": "eth", + "shortcut": "ETCH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETG": { + "address": "0x28c8d01FF633eA9Cd8fc6a451D7457889E698de6", + "links": { + "Homepage": "https://www.etgproject.org" + }, + "marketcap_usd": 45355, + "name": "Ethereum Gold", + "network": "eth", + "shortcut": "ETG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETHB": { + "address": "0x3a26746Ddb79B1B8e4450e3F4FFE3285A307387E", + "links": { + "Homepage": "https://etherbtc.io/faq" + }, + "marketcap_usd": 0, + "name": "EtherBTC", + "network": "eth", + "shortcut": "ETHB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETK": { + "address": "0x3c4a3ffd813a107febd57B2f01BC344264D90FdE", + "links": { + "Homepage": "https://energitoken.com" + }, + "marketcap_usd": 949390, + "name": "EnergiToken", + "network": "eth", + "shortcut": "ETK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ETR": { + "address": "0x6927C69fb4daf2043fbB1Cb7b86c5661416bea29", + "links": { + "Github": "https://github.com/pironmind/EthereumRisen", + "Homepage": "http://ethereumrisen.io" + }, + "marketcap_usd": 0, + "name": "Etheruem Risen", + "network": "eth", + "shortcut": "ETR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EURS": { + "address": "0xdB25f211AB05b1c97D595516F45794528a807ad8", + "links": { + "Homepage": "https://stasis.net" + }, + "marketcap_usd": 33513133, + "name": "STASIS EURS", + "network": "eth", + "shortcut": "EURS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EURT": { + "address": "0xAbdf147870235FcFC34153828c769A70B3FAe01F", + "links": { + "Homepage": "https://tether.to" + }, + "marketcap_usd": 0, + "name": "EUR Tether (erc20)", + "network": "eth", + "shortcut": "EURT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EVC": { + "address": "0xb62d18DeA74045E822352CE4B3EE77319DC5ff2F", + "links": { + "Homepage": "https://eventchain.io" + }, + "marketcap_usd": 450690, + "name": "EventChain", + "network": "eth", + "shortcut": "EVC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EVE": { + "address": "0x923108a439C4e8C2315c4f6521E5cE95B44e9B4c", + "links": { + "Github": "https://github.com/devery", + "Homepage": "https://devery.io" + }, + "marketcap_usd": 310513, + "name": "Devery", + "network": "eth", + "shortcut": "EVE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EVX": { + "address": "0xf3Db5Fa2C66B7aF3Eb0C0b782510816cbe4813b8", + "links": { + "Homepage": "https://everex.io " + }, + "marketcap_usd": 6031337, + "name": "EVX Token", + "network": "eth", + "shortcut": "EVX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EWO": { + "address": "0x444997b7e7fC830E20089afea3078cd518fCF2A2", + "links": { + "Github": "https://github.com/ewoplace", + "Homepage": "https://www.ewoplace.com/" + }, + "marketcap_usd": 0, + "name": "EWO Token", + "network": "eth", + "shortcut": "EWO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EXMR": { + "address": "0xc98e0639c6d2EC037A615341c369666B110e80E5", + "links": { + "Github": "https://github.com/eXMRcoin/", + "Homepage": "https://exmr.io/" + }, + "marketcap_usd": 163472, + "name": "eXMRcoin", + "network": "eth", + "shortcut": "EXMR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EXRN": { + "address": "0xe469c4473af82217B30CF17b10BcDb6C8c796e75", + "links": { + "Homepage": "https://exrnchain.com" + }, + "marketcap_usd": 1973498, + "name": "EXRNchain", + "network": "eth", + "shortcut": "EXRN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EXY": { + "address": "0x5c743a35E903F6c584514ec617ACEe0611Cf44f3", + "links": { + "Homepage": "https://experty.io/en" + }, + "marketcap_usd": 844609, + "name": "Experty", + "network": "eth", + "shortcut": "EXY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:EZT": { + "address": "0x5e6016Ae7d7C49d347dcF834860B9f3Ee282812b", + "links": { + "Homepage": "https://ico.ezpos.io" + }, + "marketcap_usd": 89621, + "name": "EZToken", + "network": "eth", + "shortcut": "EZT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:E\u20b9": { + "address": "0xb67734521eAbBE9C773729dB73E16CC2dfb20A58", + "links": { + "Github": "https://github.com/eRupee", + "Homepage": "https://erupee.wordpress.com" + }, + "marketcap_usd": 0, + "name": "eRupee", + "network": "eth", + "shortcut": "E\u20b9", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FABA": { + "address": "0x0a1D2fF7156a48131553CF381F220bbedB4eFa37", + "links": { + "Homepage": "https://vc.fabainvest.com" + }, + "marketcap_usd": 0, + "name": "FABA", + "network": "eth", + "shortcut": "FABA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FACE": { + "address": "0x1CCAA0F2a7210d76E1fDec740d5F323E2E1b1672", + "links": { + "Homepage": "https://tokensale.faceter.io" + }, + "marketcap_usd": 632595, + "name": "Faceter", + "network": "eth", + "shortcut": "FACE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FAM": { + "address": "0x190e569bE071F40c704e15825F285481CB74B6cC", + "links": { + "Github": "https://github.com/BattleDrome", + "Homepage": "http://www.battledrome.io" + }, + "marketcap_usd": 0, + "name": "FAM", + "network": "eth", + "shortcut": "FAM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FAN": { + "address": "0x90162f41886c0946D09999736f1C15c8a105A421", + "links": { + "Homepage": "https://tokensale.fanfare.global" + }, + "marketcap_usd": 0, + "name": "Fan Token", + "network": "eth", + "shortcut": "FAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FDZ": { + "address": "0x23352036E911A22Cfc692B5E2E196692658ADED9", + "links": { + "Homepage": "https://friendz.io" + }, + "marketcap_usd": 1716491, + "name": "Friendz", + "network": "eth", + "shortcut": "FDZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FGP": { + "address": "0xd9A8cfe21C232D485065cb62a96866799d4645f7", + "links": { + "Github": "https://github.com/FGPTEAM/FingerPrint", + "Homepage": "https://fingerprintcoin.org/" + }, + "marketcap_usd": 0, + "name": "FingerPrint", + "network": "eth", + "shortcut": "FGP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FID": { + "address": "0x52fb36C83ad33C1824912FC81071cA5eEB8AB390", + "links": { + "Homepage": "http://www.fidelium.io" + }, + "marketcap_usd": 564466, + "name": "Fidelium", + "network": "eth", + "shortcut": "FID", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FIH": { + "address": "0xdfC3e857c8cCEA7657E0ed98AB92e048e38deE0f", + "links": { + "Github": "https://github.com/FidelityHouseInternational", + "Homepage": "https://www.fidelityhouse.io" + }, + "marketcap_usd": 0, + "name": "FidelityHouse Token", + "network": "eth", + "shortcut": "FIH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FKX": { + "address": "0x009e864923b49263c7F10D19B7f8Ab7a9A5AAd33", + "links": { + "Github": "https://github.com/FortKnoxster", + "Homepage": "https://fortknoxster.com" + }, + "marketcap_usd": 505807, + "name": "Knoxstertoken", + "network": "eth", + "shortcut": "FKX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLIXX": { + "address": "0xf04a8ac553FceDB5BA99A64799155826C136b0Be", + "links": { + "Homepage": "https://www.flixxo.com" + }, + "marketcap_usd": 1525143, + "name": "Flixxo", + "network": "eth", + "shortcut": "FLIXX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLOT": { + "address": "0x049399a6B048D52971F7D122aE21A1532722285F", + "links": { + "Homepage": "https://firelotto.io" + }, + "marketcap_usd": 500594, + "name": "Fire Lotto", + "network": "eth", + "shortcut": "FLOT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLP": { + "address": "0x3a1Bda28AdB5B0a812a7CF10A1950c920F79BcD3", + "links": { + "Github": "https://github.com/gameflip", + "Homepage": "https://gameflip.com" + }, + "marketcap_usd": 818417, + "name": "FLIP Token", + "network": "eth", + "shortcut": "FLP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLR": { + "address": "0x9aeFBE0b3C3ba9Eab262CB9856E8157AB7648e09", + "links": { + "Homepage": "https://flaircoin.co/" + }, + "marketcap_usd": 0, + "name": "Flair Coin", + "network": "eth", + "shortcut": "FLR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLUZ": { + "address": "0x954b5De09A55e59755aCBda29e1Eb74A45D30175", + "links": { + "Homepage": "https://ico.fluzfluz.com" + }, + "marketcap_usd": 2400319, + "name": "Fluz Fluz Global", + "network": "eth", + "shortcut": "FLUZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FLX": { + "address": "0x70b147E01E9285E7cE68B9BA437Fe3a9190E756a", + "links": { + "Homepage": "http://fluxproject.xyz" + }, + "marketcap_usd": 0, + "name": "BitFlux", + "network": "eth", + "shortcut": "FLX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FMF": { + "address": "0xb4d0FDFC8497AEF97d3c2892AE682eE06064A2BC", + "links": { + "Github": "https://github.com/FormosaFinancial", + "Homepage": "https://www.formosa.financial/" + }, + "marketcap_usd": 556824, + "name": "Formosa Financial Token", + "network": "eth", + "shortcut": "FMF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FND": { + "address": "0x4DF47B4969B2911C966506E3592c41389493953b", + "links": { + "Github": "https://github.com/FundRequest", + "Homepage": "https://fundrequest.io" + }, + "marketcap_usd": 167871, + "name": "FundRequest", + "network": "eth", + "shortcut": "FND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FNKOS": { + "address": "0x0707681F344dEB24184037fC0228856F2137B02E", + "links": { + "Homepage": "https://www.foglink.io" + }, + "marketcap_usd": 1639277, + "name": "FNKOS", + "network": "eth", + "shortcut": "FNKOS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FNTB": { + "address": "0xbD4B60a138b3fce3584EA01f50c0908c18f9677A", + "links": { + "Homepage": "https://fintab.io/ico" + }, + "marketcap_usd": 10206, + "name": "Fintab", + "network": "eth", + "shortcut": "FNTB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FOOD": { + "address": "0x2a093BcF0C98Ef744Bb6F69D74f2F85605324290", + "links": { + "Homepage": "https://www.foodcoin.io" + }, + "marketcap_usd": 996188, + "name": "FoodCoin", + "network": "eth", + "shortcut": "FOOD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FOTA": { + "address": "0x4270bb238f6DD8B1c3ca01f96CA65b2647c06D3C", + "links": { + "Homepage": "https://www.fota.io" + }, + "marketcap_usd": 6775428, + "name": "Fortuna", + "network": "eth", + "shortcut": "FOTA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FR8": { + "address": "0x8c39afDf7B17F12c553208555E51ab86E69C35aA", + "links": { + "Github": "https://github.com/fr8network", + "Homepage": "https://www.fr8.network" + }, + "marketcap_usd": 0, + "name": "Fr8 Network", + "network": "eth", + "shortcut": "FR8", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FRD": { + "address": "0x0ABeFb7611Cb3A01EA3FaD85f33C3C934F8e2cF4", + "links": { + "Homepage": "https://farad.energy" + }, + "marketcap_usd": 0, + "name": "FARAD Cryptoken", + "network": "eth", + "shortcut": "FRD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FREC": { + "address": "0x17e67d1CB4e349B9CA4Bc3e17C7DF2a397A7BB64", + "links": { + "Homepage": "http://www.freyrchain.org" + }, + "marketcap_usd": 552089, + "name": "Freyrchain", + "network": "eth", + "shortcut": "FREC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FSN": { + "address": "0xD0352a019e9AB9d757776F532377aAEbd36Fd541", + "links": { + "Homepage": "https://fusion.org" + }, + "marketcap_usd": 16563557, + "name": "Fusion", + "network": "eth", + "shortcut": "FSN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FT": { + "address": "0x78a73B6CBc5D183CE56e786f6e905CaDEC63547B", + "links": { + "Homepage": "https://fabrictoken.io" + }, + "marketcap_usd": 243505, + "name": "Fabric Token", + "network": "eth", + "shortcut": "FT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FTI": { + "address": "0x943ED852DadB5C3938ECdC6883718df8142DE4C8", + "links": { + "Homepage": "https://fanstime.org" + }, + "marketcap_usd": 2586139, + "name": "FansTime", + "network": "eth", + "shortcut": "FTI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FTR": { + "address": "0x2023DCf7c438c8C8C0B0F28dBaE15520B4f3Ee20", + "links": { + "Homepage": "https://futourist.io/" + }, + "marketcap_usd": 0, + "name": "Futourist Token", + "network": "eth", + "shortcut": "FTR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FTT": { + "address": "0x2AEC18c5500f21359CE1BEA5Dc1777344dF4C0Dc", + "links": { + "Github": "https://github.com/farmatrust", + "Homepage": "https://www.farmatrust.io" + }, + "marketcap_usd": 2002386, + "name": "FarmaTrust Token", + "network": "eth", + "shortcut": "FTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FTX": { + "address": "0xd559f20296FF4895da39b5bd9ADd54b442596a61", + "links": { + "Homepage": "https://www.fintrux.com" + }, + "marketcap_usd": 2504783, + "name": "FintruX Network", + "network": "eth", + "shortcut": "FTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FTXT": { + "address": "0x41875C2332B0877cDFAA699B641402b7D4642c32", + "links": { + "Github": "https://github.com/futuraxproject", + "Homepage": "https://futurax.global" + }, + "marketcap_usd": 118699, + "name": "FUTURAX", + "network": "eth", + "shortcut": "FTXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FUEL": { + "address": "0xEA38eAa3C86c8F9B751533Ba2E562deb9acDED40", + "links": { + "Github": "https://github.com/etherparty", + "Homepage": "https://etherparty.io" + }, + "marketcap_usd": 5710625, + "name": "Etherparty FUEL", + "network": "eth", + "shortcut": "FUEL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FUN": { + "address": "0x419D0d8BdD9aF5e606Ae2232ed285Aff190E711b", + "links": { + "Homepage": "https://funfair.io" + }, + "marketcap_usd": 24470996, + "name": "Funfair", + "network": "eth", + "shortcut": "FUN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FXC": { + "address": "0xc92D6E3E64302C59d734f3292E2A13A13D7E1817", + "links": { + "Github": "https://github.com/futuraxproject", + "Homepage": "https://futurax.global" + }, + "marketcap_usd": 0, + "name": "FUTURAX", + "network": "eth", + "shortcut": "FXC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FXT": { + "address": "0x1829aA045E21E0D59580024A951DB48096e01782", + "links": { + "Homepage": "https://fuzex.co" + }, + "marketcap_usd": 1815972, + "name": "FuzeX", + "network": "eth", + "shortcut": "FXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FYN": { + "address": "0x88FCFBc22C6d3dBaa25aF478C578978339BDe77a", + "links": { + "Homepage": "http://www.fundyourselfnow.com" + }, + "marketcap_usd": 0, + "name": "Fund Yourself Now", + "network": "eth", + "shortcut": "FYN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:FYP": { + "address": "0x8F0921f30555624143d427b340b1156914882C10", + "links": { + "Homepage": "https://flyp.me" + }, + "marketcap_usd": 417860, + "name": "FlypMe", + "network": "eth", + "shortcut": "FYP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:Fzcoin": { + "address": "0xE5aeE163513119F4F750376C718766B40fA37A5F", + "links": { + "Github": "https://github.com/fzcoinProtocol", + "Homepage": "https://fzcoin.cc/" + }, + "marketcap_usd": 0, + "name": "Frozencoin Network", + "network": "eth", + "shortcut": "Fzcoin", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GAM": { + "address": "0xF67451Dc8421F0e0afEB52faa8101034ed081Ed9", + "links": { + "Github": "https://github.com/BlockchainLabsNZ/gambit", + "Homepage": "http://gambitcrypto.com" + }, + "marketcap_usd": 1555632, + "name": "Gambit", + "network": "eth", + "shortcut": "GAM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GAT": { + "address": "0x687174f8C49ceb7729D925C3A961507ea4Ac7b28", + "links": { + "Homepage": "https://www.gatcoin.io" + }, + "marketcap_usd": 1641747, + "name": "Global Awards Token", + "network": "eth", + "shortcut": "GAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GAVEL": { + "address": "0x708876f486e448Ee89eB332bFbC8E593553058b9", + "links": { + "Homepage": "http://gavelcoin.com" + }, + "marketcap_usd": 0, + "name": "GAVEL", + "network": "eth", + "shortcut": "GAVEL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GBT": { + "address": "0x7585F835ae2d522722d2684323a0ba83401f32f5", + "links": { + "Github": "https://github.com/myHelloGold/Foundation", + "Homepage": "https://www.hellogold.org" + }, + "marketcap_usd": 0, + "name": "GBT", + "network": "eth", + "shortcut": "GBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GBX": { + "address": "0x12fCd6463E66974cF7bBC24FFC4d40d6bE458283", + "links": { + "Homepage": "https://www.globitexico.com" + }, + "marketcap_usd": 0, + "name": "Globitex", + "network": "eth", + "shortcut": "GBX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GCP": { + "address": "0xdb0F69306FF8F949f258E83f6b87ee5D052d0b23", + "links": { + "Github": "https://github.com/Globcoin", + "Homepage": "https://globcoin.io/" + }, + "marketcap_usd": 0, + "name": "Globcoin Crypto Platform", + "network": "eth", + "shortcut": "GCP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GEE": { + "address": "0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3", + "links": { + "Github": "https://github.com/GeensNPO", + "Homepage": "https://www.geens.com" + }, + "marketcap_usd": 0, + "name": "Geens NPO", + "network": "eth", + "shortcut": "GEE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GELD": { + "address": "0x24083Bb30072643C3bB90B44B7285860a755e687", + "links": { + "Homepage": "https://www.soerengelder.com" + }, + "marketcap_usd": 0, + "name": "GELD", + "network": "eth", + "shortcut": "GELD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GEM": { + "address": "0xc7BbA5b765581eFb2Cdd2679DB5Bea9eE79b201f", + "links": { + "Homepage": "https://gems.org" + }, + "marketcap_usd": 1045299, + "name": "Gems", + "network": "eth", + "shortcut": "GEM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GEN": { + "address": "0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf", + "links": { + "Github": "https://github.com/daostack", + "Homepage": "https://daostack.io" + }, + "marketcap_usd": 3833467, + "name": "DAOstack", + "network": "eth", + "shortcut": "GEN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GENE": { + "address": "0x6DD4e4Aad29A40eDd6A409b9c1625186C9855b4D", + "links": { + "Homepage": "https://parkgene.io" + }, + "marketcap_usd": 180752, + "name": "Parkgene", + "network": "eth", + "shortcut": "GENE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GET": { + "address": "0x8a854288a5976036A725879164Ca3e91d30c6A1B", + "links": { + "Github": "https://github.com/Getprotocol", + "Homepage": "http://www.get-protocol.io" + }, + "marketcap_usd": 2944842, + "name": "GET Protocol", + "network": "eth", + "shortcut": "GET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GIF": { + "address": "0xFcD862985628b254061F7A918035B80340D045d3", + "links": { + "Homepage": "https://gifcoin.io/" + }, + "marketcap_usd": 0, + "name": "GIFcoin Token", + "network": "eth", + "shortcut": "GIF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GIM": { + "address": "0xaE4f56F072c34C0a65B3ae3E4DB797D831439D93", + "links": { + "Github": "https://github.com/thegimliproject/GimliToken", + "Homepage": "https://gimli.io" + }, + "marketcap_usd": 0, + "name": "Gimli", + "network": "eth", + "shortcut": "GIM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GLA": { + "address": "0x71D01dB8d6a2fBEa7f8d434599C237980C234e4C", + "links": { + "Homepage": "https://gladius.io" + }, + "marketcap_usd": 0, + "name": "Gladius", + "network": "eth", + "shortcut": "GLA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GMT": { + "address": "0xb3Bd49E28f8F832b8d1E246106991e546c323502", + "links": { + "Homepage": "http://www.mercuryprotocol.com" + }, + "marketcap_usd": 0, + "name": "GMT", + "network": "eth", + "shortcut": "GMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GNO": { + "address": "0x6810e776880C02933D47DB1b9fc05908e5386b96", + "links": { + "Homepage": "https://gnosis.pm" + }, + "marketcap_usd": 15550378, + "name": "Gnosis", + "network": "eth", + "shortcut": "GNO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GNT": { + "address": "0xa74476443119A942dE498590Fe1f2454d7D4aC0d", + "links": { + "Homepage": "https://golem.network" + }, + "marketcap_usd": 67533793, + "name": "Golem", + "network": "eth", + "shortcut": "GNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GNX": { + "address": "0x6EC8a24CaBdc339A06a172F8223ea557055aDAa5", + "links": { + "Homepage": "https://genaro.network" + }, + "marketcap_usd": 4754961, + "name": "Genaro Network", + "network": "eth", + "shortcut": "GNX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GNY": { + "address": "0x247551F2EB3362E222c742E9c788B8957D9BC87e", + "links": { + "Github": "https://github.com/GNYIO", + "Homepage": "https://www.gny.io/" + }, + "marketcap_usd": 0, + "name": "GNY", + "network": "eth", + "shortcut": "GNY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GOLDX": { + "address": "0xeAb43193CF0623073Ca89DB9B712796356FA7414", + "links": { + "Github": "https://github.com/myHelloGold/Foundation", + "Homepage": "https://www.hellogold.org/" + }, + "marketcap_usd": 0, + "name": "GOLDX", + "network": "eth", + "shortcut": "GOLDX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GOT": { + "address": "0x423b5F62b328D0D6D44870F4Eee316befA0b2dF5", + "links": { + "Homepage": "https://gonetwork.co/index.html" + }, + "marketcap_usd": 2123465, + "name": "GoNetwork", + "network": "eth", + "shortcut": "GOT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GRID": { + "address": "0x12B19D3e2ccc14Da04FAe33e63652ce469b3F2FD", + "links": { + "Homepage": "http://gridplus.io" + }, + "marketcap_usd": 4077813, + "name": "Grid+", + "network": "eth", + "shortcut": "GRID", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GRMD": { + "address": "0xb444208cB0516C150178fCf9a52604BC04A1aCEa", + "links": { + "Homepage": "https://www.greenmed.io" + }, + "marketcap_usd": 61981, + "name": "GreenMed", + "network": "eth", + "shortcut": "GRMD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GROO": { + "address": "0xC17195bde49D70CefCF8A9F2ee1759FFC27BF0B1", + "links": { + "Github": "https://github.com/groocoindev", + "Homepage": "https://groo.io/" + }, + "marketcap_usd": 0, + "name": "Groocoin", + "network": "eth", + "shortcut": "GROO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GROW": { + "address": "0x0a9A9ce600D08BF9b76F49FA4e7b38A67EBEB1E6", + "links": { + "Github": "https://github.com/growchainnet", + "Homepage": "http://www.growchain.us" + }, + "marketcap_usd": 0, + "name": "Growchain", + "network": "eth", + "shortcut": "GROW", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GSC": { + "address": "0x228ba514309FFDF03A81a205a6D040E429d6E80C", + "links": { + "Homepage": "https://www.gsc.social" + }, + "marketcap_usd": 2366899, + "name": "Global Social Chain", + "network": "eth", + "shortcut": "GSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GSE": { + "address": "0xe530441f4f73bDB6DC2fA5aF7c3fC5fD551Ec838", + "links": { + "Homepage": "https://gse.network" + }, + "marketcap_usd": 0, + "name": "GSENetwork", + "network": "eth", + "shortcut": "GSE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GTC": { + "address": "0xB70835D7822eBB9426B56543E391846C107bd32C", + "links": { + "Github": "https://github.com/GameLeLe", + "Homepage": "https://game.com" + }, + "marketcap_usd": 7515811, + "name": "GTC Token", + "network": "eth", + "shortcut": "GTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GTKT": { + "address": "0x025abAD9e518516fdaAFBDcdB9701b37fb7eF0FA", + "links": { + "Github": "https://github.com/sprux/BackToEarth", + "Homepage": "https://backto.earth" + }, + "marketcap_usd": 0, + "name": "GTKT", + "network": "eth", + "shortcut": "GTKT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GTO": { + "address": "0xC5bBaE50781Be1669306b9e001EFF57a2957b09d", + "links": { + "Github": "https://github.com/GIFTO-io", + "Homepage": "https://gifto.io/" + }, + "marketcap_usd": 17964517, + "name": "Gifto", + "network": "eth", + "shortcut": "GTO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GUESS": { + "address": "0xBDCFbf5C4D91Abc0bC9709C7286d00063c0e6F22", + "links": { + "Homepage": "https://peerguess.com" + }, + "marketcap_usd": 19123, + "name": "Peerguess", + "network": "eth", + "shortcut": "GUESS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GULD": { + "address": "0x9847345de8b614c956146bbea549336d9C8d26b6", + "links": { + "Github": "https://github.com/guldcoin", + "Homepage": "https://guld.io" + }, + "marketcap_usd": 0, + "name": "GULD ERC20", + "network": "eth", + "shortcut": "GULD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GUP": { + "address": "0xf7B098298f7C69Fc14610bf71d5e02c60792894C", + "links": { + "Homepage": "https://matchpool.co" + }, + "marketcap_usd": 1409650, + "name": "Matchpool", + "network": "eth", + "shortcut": "GUP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GVT": { + "address": "0x103c3A209da59d3E7C4A89307e66521e081CFDF0", + "links": { + "Github": "https://github.com/GenesisVision", + "Homepage": "https://genesis.vision" + }, + "marketcap_usd": 17247786, + "name": "Genesis Vision", + "network": "eth", + "shortcut": "GVT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GXC": { + "address": "0x58ca3065C0F24C7c96Aee8d6056b5B5deCf9c2f8", + "links": { + "Homepage": "https://genevieveco.com" + }, + "marketcap_usd": 0, + "name": "GXC", + "network": "eth", + "shortcut": "GXC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GXVC": { + "address": "0x22F0AF8D78851b72EE799e05F54A77001586B18A", + "links": { + "Github": "https://github.com/GxC17Genevieve/GXVC", + "Homepage": "https://genevieveco.io" + }, + "marketcap_usd": 0, + "name": "Genevieve VC", + "network": "eth", + "shortcut": "GXVC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GZB": { + "address": "0x9DAe8b7F6D37ea8e5d32C6c3E856a6d8a1d3B363", + "links": { + "Github": "https://github.com/Gigzi", + "Homepage": "https://gigzi.com" + }, + "marketcap_usd": 0, + "name": "GigziBlack", + "network": "eth", + "shortcut": "GZB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GZE": { + "address": "0x8C65e992297d5f092A756dEf24F4781a280198Ff", + "links": { + "Homepage": "https://gazecoin.io" + }, + "marketcap_usd": 0, + "name": "GazeCoin", + "network": "eth", + "shortcut": "GZE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:GZR": { + "address": "0xE638dc39b6aDBEE8526b5C22380b4b45dAf46d8e", + "links": { + "Github": "https://github.com/GizerInc/Gizer", + "Homepage": "https://gizer.io" + }, + "marketcap_usd": 0, + "name": "Gizer", + "network": "eth", + "shortcut": "GZR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HAND": { + "address": "0x48C1B2f3eFA85fbafb2ab951bF4Ba860a08cdBB7", + "links": { + "Homepage": "https://www.showhand.io" + }, + "marketcap_usd": 99801, + "name": "ShowHand", + "network": "eth", + "shortcut": "HAND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HAPPY": { + "address": "0x5A567e28dbFa2bBD3ef13C0a01be114745349657", + "links": { + "Homepage": "https://btr.works" + }, + "marketcap_usd": 0, + "name": "Happiness", + "network": "eth", + "shortcut": "HAPPY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HAT": { + "address": "0x9002D4485b7594e3E850F0a206713B305113f69e", + "links": { + "Homepage": "https://www.hawala.today/" + }, + "marketcap_usd": 0, + "name": "Hawala Today", + "network": "eth", + "shortcut": "HAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HB": { + "address": "0xE2492F8D2A2618d8709Ca99b1d8d75713Bd84089", + "links": { + "Homepage": "https://heartbout.com" + }, + "marketcap_usd": 732325, + "name": "HeartBout", + "network": "eth", + "shortcut": "HB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HBT": { + "address": "0xDd6C68bb32462e01705011a4e2Ad1a60740f217F", + "links": { + "Homepage": "https://www.hubii.network" + }, + "marketcap_usd": 2076413, + "name": "Hubii Network", + "network": "eth", + "shortcut": "HBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HBZ": { + "address": "0xE34e1944E776f39B9252790a0527eBDa647aE668", + "links": { + "Homepage": "https://www.hbzcoin.com/#" + }, + "marketcap_usd": 413791, + "name": "HBZ coin", + "network": "eth", + "shortcut": "HBZ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HDG": { + "address": "0xfFe8196bc259E8dEDc544d935786Aa4709eC3E64", + "links": { + "Homepage": "https://www.hedge-crypto.com" + }, + "marketcap_usd": 0, + "name": "Hedge Crypto", + "network": "eth", + "shortcut": "HDG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HER": { + "address": "0x491C9A23DB85623EEd455a8EfDd6AbA9b911C5dF", + "links": { + "Homepage": "https://heronode.io" + }, + "marketcap_usd": 429127, + "name": "HeroNode", + "network": "eth", + "shortcut": "HER", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HGT": { + "address": "0xba2184520A1cC49a6159c57e61E1844E085615B6", + "links": { + "Github": "https://github.com/myHelloGold/Foundation", + "Homepage": "https://www.hellogold.org" + }, + "marketcap_usd": 356148, + "name": "HelloGold", + "network": "eth", + "shortcut": "HGT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HIBT": { + "address": "0x9bb1Db1445b83213a56d90d331894b3f26218e4e", + "links": { + "Homepage": "https://www.hibtc.com/" + }, + "marketcap_usd": 0, + "name": "HiBTC Token", + "network": "eth", + "shortcut": "HIBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HIG": { + "address": "0xa9240fBCAC1F0b9A6aDfB04a53c8E3B0cC1D1444", + "links": { + "Github": "https://github.com/ethereumhigh/Ethereum-High", + "Homepage": "https://www.ethereumhigh.org/" + }, + "marketcap_usd": 0, + "name": "ethereumhigh", + "network": "eth", + "shortcut": "HIG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HKG": { + "address": "0x14F37B574242D366558dB61f3335289a5035c506", + "links": { + "Homepage": "http://www.ether.camp" + }, + "marketcap_usd": 0, + "name": "HKG", + "network": "eth", + "shortcut": "HKG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HKN": { + "address": "0x9e6B2B11542f2BC52f3029077acE37E8fD838D7F", + "links": { + "Homepage": "https://hacken.io" + }, + "marketcap_usd": 857985, + "name": "Hacken", + "network": "eth", + "shortcut": "HKN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HKY": { + "address": "0x88aC94D5d175130347Fc95E109d77AC09dbF5ab7", + "links": { + "Github": "https://github.com/HickyToken/hickycontracts", + "Homepage": "https://hicky.io" + }, + "marketcap_usd": 0, + "name": "Hicky", + "network": "eth", + "shortcut": "HKY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HLX": { + "address": "0x66eb65D7Ab8e9567ba0fa6E37c305956c5341574", + "links": { + "Homepage": "https://helex.world" + }, + "marketcap_usd": 0, + "name": "Helex", + "network": "eth", + "shortcut": "HLX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HMQ": { + "address": "0xcbCC0F036ED4788F63FC0fEE32873d6A7487b908", + "links": { + "Homepage": "https://humaniq.com" + }, + "marketcap_usd": 1765599, + "name": "Humaniq", + "network": "eth", + "shortcut": "HMQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HODL": { + "address": "0xb45d7Bc4cEBcAB98aD09BABDF8C818B2292B672c", + "links": { + "Homepage": "https://github.com/arachnid/hodlcoin" + }, + "marketcap_usd": 0, + "name": "HODLCoin", + "network": "eth", + "shortcut": "HODL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HORSE": { + "address": "0x5B0751713b2527d7f002c0c4e2a37e1219610A6B", + "links": { + "Github": "https://github.com/ethorse", + "Homepage": "https://ethorse.com" + }, + "marketcap_usd": 394759, + "name": "Ethorse", + "network": "eth", + "shortcut": "HORSE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HOT (Holo)": { + "address": "0x6c6EE5e31d828De241282B9606C8e98Ea48526E2", + "links": { + "Github": "https://github.com/Holo-Host", + "Homepage": "https://holo.host/" + }, + "marketcap_usd": 145509145, + "name": "Holo Token", + "network": "eth", + "shortcut": "HOT (Holo)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HOT (Hydro)": { + "address": "0x9AF839687F6C94542ac5ece2e317dAAE355493A1", + "links": { + "Homepage": "https://thehydrofoundation.com/" + }, + "marketcap_usd": 2303782, + "name": "Hydro Protocol", + "network": "eth", + "shortcut": "HOT (Hydro)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HST": { + "address": "0x554C20B7c486beeE439277b4540A434566dC4C02", + "links": { + "Homepage": "https://horizonstate.com" + }, + "marketcap_usd": 2290540, + "name": "Decision Token", + "network": "eth", + "shortcut": "HST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HT": { + "address": "0x6f259637dcD74C767781E37Bc6133cd6A68aa161", + "links": { + "Homepage": "https://www.hbg.com" + }, + "marketcap_usd": 92995834, + "name": "Huobi Token", + "network": "eth", + "shortcut": "HT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HVN": { + "address": "0xC0Eb85285d83217CD7c891702bcbC0FC401E2D9D", + "links": { + "Github": "https://github.com/HiveProjectLTD", + "Homepage": "https://www.hiveterminal.com" + }, + "marketcap_usd": 1398465, + "name": "Hiveterminal Token", + "network": "eth", + "shortcut": "HVN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:HYDRO": { + "address": "0xEBBdf302c940c6bfd49C6b165f457fdb324649bc", + "links": { + "Github": "https://github.com/hydrogen-dev", + "Homepage": "https://www.hydrogenplatform.com/hydro" + }, + "marketcap_usd": 6165934, + "name": "Hydro", + "network": "eth", + "shortcut": "HYDRO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IAD": { + "address": "0xC1E2097d788d33701BA3Cc2773BF67155ec93FC4", + "links": { + "Github": "https://github.com/IADOWR", + "Homepage": "https://www.iadowrcoin.com" + }, + "marketcap_usd": 0, + "name": "IADOWR Coin", + "network": "eth", + "shortcut": "IAD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ICE": { + "address": "0x5a84969bb663fb64F6d015DcF9F622Aedc796750", + "links": { + "Homepage": "https://idice.io" + }, + "marketcap_usd": 0, + "name": "ICE", + "network": "eth", + "shortcut": "ICE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ICN": { + "address": "0x888666CA69E0f178DED6D75b5726Cee99A87D698", + "links": { + "Homepage": "https://www.iconomi.net" + }, + "marketcap_usd": 10066698, + "name": "ICONOMI", + "network": "eth", + "shortcut": "ICN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ICO": { + "address": "0xa33e729bf4fdeb868B534e1f20523463D9C46bEe", + "links": { + "Homepage": "http://icocoin.org" + }, + "marketcap_usd": 0, + "name": "ICO", + "network": "eth", + "shortcut": "ICO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ICOS": { + "address": "0x014B50466590340D41307Cc54DCee990c8D58aa8", + "links": { + "Homepage": "https://icos.icobox.io" + }, + "marketcap_usd": 0, + "name": "ICOS", + "network": "eth", + "shortcut": "ICOS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ICX": { + "address": "0xb5A5F22694352C15B00323844aD545ABb2B11028", + "links": { + "Homepage": "https://www.icon.foundation" + }, + "marketcap_usd": 0, + "name": "ICON", + "network": "eth", + "shortcut": "ICX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IDEA": { + "address": "0x814CAfd4782d2e728170FDA68257983F03321c58", + "links": { + "Homepage": "http://www.ideatoken.io/" + }, + "marketcap_usd": 0, + "name": "IDEA Token", + "network": "eth", + "shortcut": "IDEA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IDH": { + "address": "0x5136C98A80811C3f46bDda8B5c4555CFd9f812F0", + "links": { + "Homepage": "https://indahash.com" + }, + "marketcap_usd": 1233386, + "name": "indaHash", + "network": "eth", + "shortcut": "IDH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IETH": { + "address": "0x859a9C0b44cb7066D956a958B0b82e54C9e44b4B", + "links": { + "Homepage": "http://iethereum.trade" + }, + "marketcap_usd": 730708, + "name": "iEthereum", + "network": "eth", + "shortcut": "IETH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IFT": { + "address": "0x7654915A1b82D6D2D0AFc37c52Af556eA8983c7E", + "links": { + "Homepage": "https://investfeed.com" + }, + "marketcap_usd": 60722, + "name": "InvestFeed", + "network": "eth", + "shortcut": "IFT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IG": { + "address": "0x8a88f04e0c905054D2F33b26BB3A46D7091A039A", + "links": { + "Homepage": "http://igtoken.net" + }, + "marketcap_usd": 45880, + "name": "IGToken", + "network": "eth", + "shortcut": "IG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IHT": { + "address": "0xEda8B016efA8b1161208Cf041cD86972eeE0F31E", + "links": { + "Homepage": "https://ihtcoin.com" + }, + "marketcap_usd": 6233575, + "name": "I HOUSE TOKEN", + "network": "eth", + "shortcut": "IHT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IIC": { + "address": "0x16662F73dF3e79e54c6c5938b4313f92C524C120", + "links": { + "Homepage": "https://ibiscoin.co" + }, + "marketcap_usd": 0, + "name": "IIC", + "network": "eth", + "shortcut": "IIC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IKB": { + "address": "0x88AE96845e157558ef59e9Ff90E766E22E480390", + "links": { + "Github": "https://github.com/mitchellfchan/IKB", + "Homepage": "http://www.mitchellfchan.com" + }, + "marketcap_usd": 0, + "name": "IKB", + "network": "eth", + "shortcut": "IKB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IMC": { + "address": "0xe3831c5A982B279A198456D577cfb90424cb6340", + "links": { + "Homepage": "http://immunecoin.info" + }, + "marketcap_usd": 0, + "name": "Immune Coin", + "network": "eth", + "shortcut": "IMC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IND": { + "address": "0xf8e386EDa857484f5a12e4B5DAa9984E06E73705", + "links": { + "Homepage": "https://indorse.io" + }, + "marketcap_usd": 6685363, + "name": "Indorse", + "network": "eth", + "shortcut": "IND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ING": { + "address": "0x24dDFf6D8B8a42d835af3b440De91f3386554Aa4", + "links": { + "Homepage": "https://iungo.network" + }, + "marketcap_usd": 220757, + "name": "Iungo", + "network": "eth", + "shortcut": "ING", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:INS": { + "address": "0x5B2e4a700dfBc560061e957edec8F6EeEb74a320", + "links": { + "Homepage": "https://insolar.io" + }, + "marketcap_usd": 9062133, + "name": "Insolar", + "network": "eth", + "shortcut": "INS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:INSTAR": { + "address": "0xc72fe8e3Dd5BeF0F9f31f259399F301272eF2a2D", + "links": { + "Homepage": "https://insights.network" + }, + "marketcap_usd": 947095, + "name": "Insights Network", + "network": "eth", + "shortcut": "INSTAR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:INT": { + "address": "0x0b76544F6C413a555F309Bf76260d1E02377c02A", + "links": { + "Homepage": "https://intchain.io" + }, + "marketcap_usd": 4417283, + "name": "Internet Node Token", + "network": "eth", + "shortcut": "INT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:INV": { + "address": "0xEcE83617Db208Ad255Ad4f45Daf81E25137535bb", + "links": { + "Homepage": "https://www.invacio.com" + }, + "marketcap_usd": 1185602, + "name": "Invacio", + "network": "eth", + "shortcut": "INV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:INXT": { + "address": "0xa8006C4ca56F24d6836727D106349320dB7fEF82", + "links": { + "Github": "https://github.com/Internxt/", + "Homepage": "https://internxt.com/" + }, + "marketcap_usd": 1048444, + "name": "Internxt", + "network": "eth", + "shortcut": "INXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IOST": { + "address": "0xFA1a856Cfa3409CFa145Fa4e20Eb270dF3EB21ab", + "links": { + "Homepage": "https://iost.io/" + }, + "marketcap_usd": 95663972, + "name": "IOSToken", + "network": "eth", + "shortcut": "IOST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IOTX": { + "address": "0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69", + "links": { + "Github": "https://github.com/iotexproject/iotex-core", + "Homepage": "http://iotex.io/" + }, + "marketcap_usd": 20781767, + "name": "IoTeX Network", + "network": "eth", + "shortcut": "IOTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IPL": { + "address": "0x64CdF819d3E75Ac8eC217B3496d7cE167Be42e80", + "links": { + "Github": "https://github.com/InsurePal", + "Homepage": "https://insurepal.io/" + }, + "marketcap_usd": 1004015, + "name": "InsurePal token", + "network": "eth", + "shortcut": "IPL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IPSX": { + "address": "0x001F0aA5dA15585e5b2305DbaB2bac425ea71007", + "links": { + "Homepage": "https://ip.sx" + }, + "marketcap_usd": 358382, + "name": "IP Exchange", + "network": "eth", + "shortcut": "IPSX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IQN": { + "address": "0x0DB8D8b76BC361bAcbB72E2C491E06085A97Ab31", + "links": { + "Github": "https://github.com/iqeon", + "Homepage": "https://iqeon.io/" + }, + "marketcap_usd": 553215, + "name": "IQeon", + "network": "eth", + "shortcut": "IQN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IST34": { + "address": "0x0cF713b11C9b986EC40D65bD4F7fbd50F6ff2d64", + "links": { + "Github": "https://github.com/IST34Token", + "Homepage": "https://hiperteknoloji.org" + }, + "marketcap_usd": 0, + "name": "IST34 Token", + "network": "eth", + "shortcut": "IST34", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ITC": { + "address": "0x5E6b6d9aBAd9093fdc861Ea1600eBa1b355Cd940", + "links": { + "Github": "https://github.com/IoTChainCode", + "Homepage": "https://iotchain.io/" + }, + "marketcap_usd": 8725807, + "name": "IoT Chain", + "network": "eth", + "shortcut": "ITC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ITT": { + "address": "0x0aeF06DcCCC531e581f0440059E6FfCC206039EE", + "links": { + "Github": "https://github.com/IntelligentTrading", + "Homepage": "http://intelligenttrading.org" + }, + "marketcap_usd": 93477, + "name": "ITT Token", + "network": "eth", + "shortcut": "ITT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IVY": { + "address": "0xA4eA687A2A7F29cF2dc66B39c68e4411C0D00C49", + "links": { + "Homepage": "https://www.ivykoin.com" + }, + "marketcap_usd": 2099990, + "name": "IvyKoin Public Network Tokens", + "network": "eth", + "shortcut": "IVY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IXT": { + "address": "0xfcA47962D45ADFdfd1Ab2D972315dB4ce7CCf094", + "links": { + "Homepage": "https://www.insurex.co" + }, + "marketcap_usd": 770054, + "name": "InsureX", + "network": "eth", + "shortcut": "IXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:IoT": { + "address": "0xC34B21f6F8e51cC965c2393B3ccFa3b82BEb2403", + "links": { + "Homepage": "http://www.bitcoin-biz.net" + }, + "marketcap_usd": 0, + "name": "IoT\u30b3\u30a4\u30f3", + "network": "eth", + "shortcut": "IoT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:J8T": { + "address": "0x0D262e5dC4A06a0F1c90cE79C7a60C09DfC884E4", + "links": { + "Github": "https://github.com/jet8", + "Homepage": "https://jet8.io" + }, + "marketcap_usd": 449730, + "name": "J8T Token", + "network": "eth", + "shortcut": "J8T", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:JC": { + "address": "0xE2D82Dc7dA0E6f882E96846451F4faBcc8f90528", + "links": { + "Homepage": "https://jesuscoin.network" + }, + "marketcap_usd": 95966, + "name": "Jesus Coin", + "network": "eth", + "shortcut": "JC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:JET": { + "address": "0x8727c112C712c4a03371AC87a74dD6aB104Af768", + "links": { + "Homepage": "https://jetcoin.io" + }, + "marketcap_usd": 165028, + "name": "JET", + "network": "eth", + "shortcut": "JET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:JNT": { + "address": "0xa5Fd1A791C4dfcaacC963D4F73c6Ae5824149eA7", + "links": { + "Github": "https://github.com/jibrelnetwork", + "Homepage": "https://jibrel.network" + }, + "marketcap_usd": 6802552, + "name": "Jibrel Network", + "network": "eth", + "shortcut": "JNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:JOT": { + "address": "0xdb455c71C1bC2de4e80cA451184041Ef32054001", + "links": { + "Homepage": "https://jury.online" + }, + "marketcap_usd": 53286, + "name": "Jury.Online Token", + "network": "eth", + "shortcut": "JOT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:JOY": { + "address": "0xDDe12a12A6f67156e0DA672be05c374e1B0a3e57", + "links": { + "Homepage": "https://joyso.io/" + }, + "marketcap_usd": 0, + "name": "JOYSO", + "network": "eth", + "shortcut": "JOY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KAN": { + "address": "0x1410434b0346f5bE678d0FB554E5c7ab620f8f4a", + "links": { + "Homepage": "http://www.kan.land" + }, + "marketcap_usd": 6708042, + "name": "BitKan", + "network": "eth", + "shortcut": "KAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KC": { + "address": "0x0D6DD9f68d24EC1d5fE2174f3EC8DAB52B52BaF5", + "links": { + "Homepage": "https://www.kmcc.io" + }, + "marketcap_usd": 0, + "name": "KMCC", + "network": "eth", + "shortcut": "KC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KICK": { + "address": "0x27695E09149AdC738A978e9A678F99E4c39e9eb9", + "links": { + "Github": "https://github.com/kickico", + "Homepage": "https://www.kickico.com" + }, + "marketcap_usd": 2370341, + "name": "KICK", + "network": "eth", + "shortcut": "KICK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KIN": { + "address": "0x818Fc6C2Ec5986bc6E2CBf00939d90556aB12ce5", + "links": { + "Github": "https://github.com/kikinteractive/kin-token", + "Homepage": "https://kin.kik.com" + }, + "marketcap_usd": 18941752, + "name": "Kin Foundation", + "network": "eth", + "shortcut": "KIN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KIND": { + "address": "0x4618519de4C304F3444ffa7f812dddC2971cc688", + "links": { + "Homepage": "https://kindads.io" + }, + "marketcap_usd": 1781816, + "name": "Kind Ads Token", + "network": "eth", + "shortcut": "KIND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KNC": { + "address": "0xdd974D5C2e2928deA5F71b9825b8b646686BD200", + "links": { + "Github": "https://github.com/KyberNetwork", + "Homepage": "https://kyber.network" + }, + "marketcap_usd": 59785963, + "name": "Kyber Network", + "network": "eth", + "shortcut": "KNC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KNDC": { + "address": "0x8E5610ab5E39d26828167640EA29823fe1dD5843", + "links": { + "Homepage": "https://kanadecoin.com" + }, + "marketcap_usd": 75430, + "name": "KanadeCoin", + "network": "eth", + "shortcut": "KNDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KNT": { + "address": "0xfF5c25D2F40B47C4a37f989DE933E26562Ef0Ac0", + "links": { + "Homepage": "https://kora.network" + }, + "marketcap_usd": 92236, + "name": "Kora Network Token", + "network": "eth", + "shortcut": "KNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KPR": { + "address": "0xb5C33F965C8899D255c34CDD2A3efA8AbCbB3DeA", + "links": { + "Github": "https://github.com/KPRToken/KPR-code-for-ICO", + "Homepage": "https://www.kprms.com/" + }, + "marketcap_usd": 0, + "name": "KPRCoin", + "network": "eth", + "shortcut": "KPR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KRL": { + "address": "0x464eBE77c293E473B48cFe96dDCf88fcF7bFDAC0", + "links": { + "Github": "https://github.com/Cryptense/", + "Homepage": "https://kryll.io/" + }, + "marketcap_usd": 1737895, + "name": "Kryll", + "network": "eth", + "shortcut": "KRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KUE": { + "address": "0xdf1338FbAfe7aF1789151627B886781ba556eF9a", + "links": { + "Homepage": "https://ico.kuende.com" + }, + "marketcap_usd": 0, + "name": "Kuende Token", + "network": "eth", + "shortcut": "KUE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KWATT": { + "address": "0x241bA672574A78a3A604CDd0a94429A73a84a324", + "links": { + "Homepage": "https://4new.io" + }, + "marketcap_usd": 427538, + "name": "4NEW", + "network": "eth", + "shortcut": "KWATT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:KZN": { + "address": "0x9541FD8B9b5FA97381783783CeBF2F5fA793C262", + "links": { + "Homepage": "http://kaizencoin.io" + }, + "marketcap_usd": 0, + "name": "KaizenCoin", + "network": "eth", + "shortcut": "KZN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LA": { + "address": "0xE50365f5D679CB98a1dd62D6F6e58e59321BcdDf", + "links": { + "Github": "https://github.com/latoken", + "Homepage": "https://latoken.com/" + }, + "marketcap_usd": 25747311, + "name": "LATOKEN", + "network": "eth", + "shortcut": "LA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LALA": { + "address": "0xfD107B473AB90e8Fbd89872144a3DC92C40Fa8C9", + "links": { + "Homepage": "https://lalaworld.io/" + }, + "marketcap_usd": 193055, + "name": "LALA World Token", + "network": "eth", + "shortcut": "LALA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LATX": { + "address": "0x2f85E502a988AF76f7ee6D83b7db8d6c0A823bf9", + "links": { + "Homepage": "https://latium.org" + }, + "marketcap_usd": 902297, + "name": "LatiumX", + "network": "eth", + "shortcut": "LATX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LBA": { + "address": "0xfe5F141Bf94fE84bC28deD0AB966c16B17490657", + "links": { + "Homepage": "https://www.mycred.io" + }, + "marketcap_usd": 6997751, + "name": "Cred", + "network": "eth", + "shortcut": "LBA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LCS": { + "address": "0xAA19961b6B858D9F18a115f25aa1D98ABc1fdBA8", + "links": { + "Homepage": "https://www.localcoinswap.com" + }, + "marketcap_usd": 1897139, + "name": "LocalCoinSwap", + "network": "eth", + "shortcut": "LCS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LDC": { + "address": "0x5102791cA02FC3595398400BFE0e33d7B6C82267", + "links": { + "Homepage": "https://www.leadcoin.network/" + }, + "marketcap_usd": 159252, + "name": "LEADCOIN", + "network": "eth", + "shortcut": "LDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LEDU": { + "address": "0x5b26C5D0772E5bbaC8b3182AE9a13f9BB2D03765", + "links": { + "Github": "https://github.com/livecodingtvofficial", + "Homepage": "https://ledu.education-ecosystem.com" + }, + "marketcap_usd": 978821, + "name": "Education Ecosystem", + "network": "eth", + "shortcut": "LEDU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LEND": { + "address": "0x80fB784B7eD66730e8b1DBd9820aFD29931aab03", + "links": { + "Github": "https://github.com/ETHLend", + "Homepage": "https://ethlend.io/" + }, + "marketcap_usd": 9949474, + "name": "EHTLend", + "network": "eth", + "shortcut": "LEND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LEV": { + "address": "0x0F4CA92660Efad97a9a70CB0fe969c755439772C", + "links": { + "Homepage": "https://www.leverj.io" + }, + "marketcap_usd": 867838, + "name": "Leverj", + "network": "eth", + "shortcut": "LEV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LFR": { + "address": "0xc798cd1c49db0E297312E4c682752668CE1dB2AD", + "links": { + "Homepage": "https://www.liferun.cc" + }, + "marketcap_usd": 0, + "name": "LifeRun Coin", + "network": "eth", + "shortcut": "LFR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LG": { + "address": "0xc520F3Ac303a107D8F4B08b326B6ea66A4f961cd", + "links": { + "Homepage": "https://android.myapp.com/myapp/detail.htm?apkName=com.inspiration.lemoCard" + }, + "marketcap_usd": 0, + "name": "LG", + "network": "eth", + "shortcut": "LG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LGO": { + "address": "0x123aB195DD38B1b40510d467a6a359b201af056f", + "links": { + "Homepage": "https://lgo.exchange" + }, + "marketcap_usd": 9505211, + "name": "LGO Exchange", + "network": "eth", + "shortcut": "LGO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LGR": { + "address": "0x2eb86e8fC520E0F6Bb5D9Af08F924fe70558Ab89", + "links": { + "Homepage": "https://getlogarithm.com" + }, + "marketcap_usd": 0, + "name": "Logarithm", + "network": "eth", + "shortcut": "LGR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LIBER": { + "address": "0xE6DfBF1FAcA95036B8E76e1Fb28933D025B76Cc0", + "links": { + "Homepage": "https://www.libereum.io" + }, + "marketcap_usd": 0, + "name": "Libereum", + "network": "eth", + "shortcut": "LIBER", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LIF": { + "address": "0xEB9951021698B42e4399f9cBb6267Aa35F82D59D", + "links": { + "Github": "https://github.com/windingtree", + "Homepage": "https://windingtree.com/" + }, + "marketcap_usd": 2377391, + "name": "Winding Tree", + "network": "eth", + "shortcut": "LIF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LIFE": { + "address": "0xfF18DBc487b4c2E3222d115952bABfDa8BA52F5F", + "links": { + "Homepage": "http://www.lifelabs.io" + }, + "marketcap_usd": 893513, + "name": "LIFE", + "network": "eth", + "shortcut": "LIFE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LIKE": { + "address": "0x02F61Fd266DA6E8B102D4121f5CE7b992640CF98", + "links": { + "Github": "https://github.com/likecoin", + "Homepage": "https://like.co" + }, + "marketcap_usd": 1118033, + "name": "LikeCoin", + "network": "eth", + "shortcut": "LIKE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LINK (Chainlink)": { + "address": "0x514910771AF9Ca656af840dff83E8264EcF986CA", + "links": { + "Homepage": "https://link.smartcontract.com" + }, + "marketcap_usd": 168274594, + "name": "Chainlink", + "network": "eth", + "shortcut": "LINK (Chainlink)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LIVE": { + "address": "0x24A77c1F17C547105E14813e517be06b0040aa76", + "links": { + "Homepage": "https://livestars.io" + }, + "marketcap_usd": 0, + "name": "LIVE Token", + "network": "eth", + "shortcut": "LIVE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LKY": { + "address": "0x49bD2DA75b1F7AF1E4dFd6b1125FEcDe59dBec58", + "links": { + "Homepage": "https://www.linkey.info" + }, + "marketcap_usd": 41056964, + "name": "Linkey", + "network": "eth", + "shortcut": "LKY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LML": { + "address": "0x25B6325f5BB1c1E03cfbC3e53F470E1F1ca022E3", + "links": { + "Github": "https://github.com/GNYIO", + "Homepage": "https://www.gny.io/lisk" + }, + "marketcap_usd": 9408655, + "name": "Lisk Machine Learning", + "network": "eth", + "shortcut": "LML", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LND": { + "address": "0x0947b0e6D821378805c9598291385CE7c791A6B2", + "links": { + "Github": "https://github.com/lendingblock", + "Homepage": "https://lendingblock.com" + }, + "marketcap_usd": 2162053, + "name": "Lendingblock", + "network": "eth", + "shortcut": "LND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOC": { + "address": "0x5e3346444010135322268a4630d2ED5F8D09446c", + "links": { + "Homepage": "https://LockChain.co" + }, + "marketcap_usd": 14870281, + "name": "LockChain", + "network": "eth", + "shortcut": "LOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOCI": { + "address": "0x9c23D67AEA7B95D80942e3836BCDF7E708A747C2", + "links": { + "Github": "http://github.com/locipro/loci-coin-sale", + "Homepage": "https://locipro.com" + }, + "marketcap_usd": 140484, + "name": "LOCIcoin", + "network": "eth", + "shortcut": "LOCI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOCUS": { + "address": "0xC64500DD7B0f1794807e67802F8Abbf5F8Ffb054", + "links": { + "Homepage": "https://www.locuschain.com" + }, + "marketcap_usd": 0, + "name": "Locus Chain", + "network": "eth", + "shortcut": "LOCUS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOK": { + "address": "0x21aE23B882A340A22282162086bC98D3E2B73018", + "links": { + "Homepage": "https://lookrev.com" + }, + "marketcap_usd": 0, + "name": "LOK", + "network": "eth", + "shortcut": "LOK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOOK": { + "address": "0x253C7dd074f4BaCb305387F922225A4f737C08bd", + "links": { + "Homepage": "https://lookrev.com" + }, + "marketcap_usd": 0, + "name": "LookRev", + "network": "eth", + "shortcut": "LOOK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LOOM": { + "address": "0xA4e8C3Ec456107eA67d3075bF9e3DF3A75823DB0", + "links": { + "Github": "github.com/loomnetwork/", + "Homepage": "https://loomx.io" + }, + "marketcap_usd": 44088635, + "name": "Loom Network", + "network": "eth", + "shortcut": "LOOM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LPT": { + "address": "0x58b6A8A3302369DAEc383334672404Ee733aB239", + "links": { + "Github": "https://github.com/livepeer", + "Homepage": "https://livepeer.org/" + }, + "marketcap_usd": 0, + "name": "Livepeer Token", + "network": "eth", + "shortcut": "LPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LRC": { + "address": "0xEF68e7C694F40c8202821eDF525dE3782458639f", + "links": { + "Homepage": "https://loopring.org" + }, + "marketcap_usd": 52603454, + "name": "Loopring", + "network": "eth", + "shortcut": "LRC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LUC": { + "address": "0x5dbe296F97B23C4A6AA6183D73e574D02bA5c719", + "links": { + "Github": "https://github.com/Play2Live/blockchain", + "Homepage": "https://play2live.io" + }, + "marketcap_usd": 85727, + "name": "LUCToken", + "network": "eth", + "shortcut": "LUC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LUCK": { + "address": "0xFB12e3CcA983B9f59D90912Fd17F8D745A8B2953", + "links": { + "Homepage": "http://www.luckytoken.info" + }, + "marketcap_usd": 0, + "name": "LUCK", + "network": "eth", + "shortcut": "LUCK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LUM": { + "address": "0xA89b5934863447f6E4Fc53B315a93e873bdA69a3", + "links": { + "Homepage": "https://www.luminocoin.com" + }, + "marketcap_usd": 0, + "name": "Lumino Coin", + "network": "eth", + "shortcut": "LUM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LUN": { + "address": "0xfa05A73FfE78ef8f1a739473e462c54bae6567D9", + "links": { + "Github": "https://github.com/lunyr", + "Homepage": "https://lunyr.com" + }, + "marketcap_usd": 5187038, + "name": "Lunyr", + "network": "eth", + "shortcut": "LUN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LYM": { + "address": "0x57aD67aCf9bF015E4820Fbd66EA1A21BED8852eC", + "links": { + "Homepage": "https://lympo.io" + }, + "marketcap_usd": 5201744, + "name": "Lympo", + "network": "eth", + "shortcut": "LYM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:LYS": { + "address": "0xdD41fBd1Ae95C5D9B198174A28e04Be6b3d1aa27", + "links": { + "Github": "https://github.com/LIGHTYEARS-LYS/LIGHTYEARS-Token", + "Homepage": "https://lightyearstoken.com" + }, + "marketcap_usd": 0, + "name": "Lightyears", + "network": "eth", + "shortcut": "LYS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:M-ETH": { + "address": "0x3f4B726668da46f5e0E75aA5D478ACEc9f38210F", + "links": { + "Homepage": "http://www.mostexclusive.com" + }, + "marketcap_usd": 0, + "name": "M-ETH", + "network": "eth", + "shortcut": "M-ETH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MAD": { + "address": "0x5B09A0371C1DA44A8E24D36Bf5DEb1141a84d875", + "links": { + "Homepage": "https://madnetwork.io" + }, + "marketcap_usd": 0, + "name": "MAD", + "network": "eth", + "shortcut": "MAD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MAN": { + "address": "0xe25bCec5D3801cE3a794079BF94adF1B8cCD802D", + "links": { + "Github": "https://github.com/MatrixAINetwork", + "Homepage": "https://www.matrix.io" + }, + "marketcap_usd": 13697024, + "name": "Matrix AI Network", + "network": "eth", + "shortcut": "MAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MANA": { + "address": "0x0F5D2fB29fb7d3CFeE444a200298f468908cC942", + "links": { + "Github": "https://github.com/decentraland", + "Homepage": "https://decentraland.org" + }, + "marketcap_usd": 50712625, + "name": "Decentraland MANA", + "network": "eth", + "shortcut": "MANA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MART": { + "address": "0xfdcc07Ab60660de533b5Ad26e1457b565a9D59Bd", + "links": { + "Homepage": "https://martcoin.io" + }, + "marketcap_usd": 0, + "name": "Martcoin", + "network": "eth", + "shortcut": "MART", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MBRS": { + "address": "0x386467F1f3ddbE832448650418311a479EECFC57", + "links": { + "Github": "https://github.com/theembermine", + "Homepage": "https://embermine.com/" + }, + "marketcap_usd": 0, + "name": "Embers", + "network": "eth", + "shortcut": "MBRS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MCAP": { + "address": "0x93E682107d1E9defB0b5ee701C71707a4B2E46Bc", + "links": { + "Homepage": "https://bitcoingrowthfund.com/mcap" + }, + "marketcap_usd": 48237, + "name": "MCAP", + "network": "eth", + "shortcut": "MCAP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MCI": { + "address": "0x138A8752093F4f9a79AaeDF48d4B9248fab93c9C", + "links": { + "Github": "https://github.com/musiconomi/", + "Homepage": "https://musiconomi.com/" + }, + "marketcap_usd": 0, + "name": "Musiconomi", + "network": "eth", + "shortcut": "MCI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MCO": { + "address": "0xB63B606Ac810a52cCa15e44bB630fd42D8d1d83d", + "links": { + "Homepage": "https://crypto.com" + }, + "marketcap_usd": 44337787, + "name": "Crypto.com", + "network": "eth", + "shortcut": "MCO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MDA": { + "address": "0x51DB5Ad35C671a87207d88fC11d593AC0C8415bd", + "links": { + "Homepage": "https://moedaseeds.com" + }, + "marketcap_usd": 17883992, + "name": "Moeda Loyalty Points", + "network": "eth", + "shortcut": "MDA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MDS": { + "address": "0x66186008C1050627F979d464eABb258860563dbE", + "links": { + "Homepage": "http://www.medishares.org" + }, + "marketcap_usd": 12811000, + "name": "MediShares", + "network": "eth", + "shortcut": "MDS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MDT": { + "address": "0x814e0908b12A99FeCf5BC101bB5d0b8B5cDf7d26", + "links": { + "Homepage": "https://www.mdt.co" + }, + "marketcap_usd": 4348919, + "name": "Measurable Data Token", + "network": "eth", + "shortcut": "MDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MEDX": { + "address": "0xfd1e80508F243E64CE234eA88A5Fd2827c71D4b7", + "links": { + "Homepage": "https://medibloc.org" + }, + "marketcap_usd": 10640543, + "name": "MediBloc [ERC20]", + "network": "eth", + "shortcut": "MEDX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MEST": { + "address": "0x5B8D43FfdE4a2982B9A5387cDF21D54Ead64Ac8d", + "links": { + "Github": "https://github.com/monacoestate", + "Homepage": "https://monacoestate.io/" + }, + "marketcap_usd": 0, + "name": "Monaco Estate", + "network": "eth", + "shortcut": "MEST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MET": { + "address": "0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e", + "links": { + "Homepage": "https://www.metronome.io" + }, + "marketcap_usd": 7059944, + "name": "Metronome", + "network": "eth", + "shortcut": "MET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:METM": { + "address": "0xFEF3884b603C33EF8eD4183346E093A173C94da6", + "links": { + "Homepage": "https://metamorph.pro" + }, + "marketcap_usd": 336309, + "name": "MetaMorph", + "network": "eth", + "shortcut": "METM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MFG": { + "address": "0x6710c63432A2De02954fc0f851db07146a6c0312", + "links": { + "Github": "https://github.com/syncfab", + "Homepage": "https://syncfab.com/" + }, + "marketcap_usd": 354010, + "name": "SyncFab Smart Manufacturing Blockchain", + "network": "eth", + "shortcut": "MFG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MFT": { + "address": "0xDF2C7238198Ad8B389666574f2d8bc411A4b7428", + "links": { + "Github": "https://github.com/MainframeHQ", + "Homepage": "https://mainframe.com" + }, + "marketcap_usd": 18640115, + "name": "Mainframe Token", + "network": "eth", + "shortcut": "MFT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MFTU": { + "address": "0x05D412CE18F24040bB3Fa45CF2C69e506586D8e8", + "links": { + "Homepage": "https://mftu.net" + }, + "marketcap_usd": 76010, + "name": "Mainstream For The Underground", + "network": "eth", + "shortcut": "MFTU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MGO": { + "address": "0x40395044Ac3c0C57051906dA938B54BD6557F212", + "links": { + "Homepage": "https://mobilego.io" + }, + "marketcap_usd": 11670025, + "name": "MobileGo", + "network": "eth", + "shortcut": "MGO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MIC": { + "address": "0x3A1237D38D0Fb94513f85D61679cAd7F38507242", + "links": { + "Homepage": "https://mindexcoin.com" + }, + "marketcap_usd": 340349, + "name": "Mindexcoin", + "network": "eth", + "shortcut": "MIC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MITX": { + "address": "0x4a527d8fc13C5203AB24BA0944F4Cb14658D1Db6", + "links": { + "Homepage": "https://token.morpheuslabs.io" + }, + "marketcap_usd": 1554384, + "name": "Morpheus Infrastructure Token", + "network": "eth", + "shortcut": "MITX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MKR": { + "address": "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", + "links": { + "Github": "https://github.com/makerdao", + "Homepage": "https://makerdao.com" + }, + "marketcap_usd": 650152383, + "name": "MakerDAO", + "network": "eth", + "shortcut": "MKR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MKT": { + "address": "0x7939882b54fcf0bCAe6b53dEc39Ad6e806176442", + "links": { + "Github": "https://github.com/mikadohq", + "Homepage": "https://mikado.io" + }, + "marketcap_usd": 0, + "name": "Mikado", + "network": "eth", + "shortcut": "MKT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MLN (new)": { + "address": "0xec67005c4E498Ec7f55E092bd1d35cbC47C91892", + "links": { + "Homepage": "https://melonport.com" + }, + "marketcap_usd": 0, + "name": "Melonport", + "network": "eth", + "shortcut": "MLN (new)", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MNE": { + "address": "0x1a95B271B0535D15fa49932Daba31BA612b52946", + "links": { + "Homepage": "https://minereum.com" + }, + "marketcap_usd": 36126, + "name": "Minereum", + "network": "eth", + "shortcut": "MNE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MNT": { + "address": "0xA9877b1e05D035899131DBd1e403825166D09f92", + "links": { + "Github": "https://github.com/coinjoker/cjtoken", + "Homepage": "https://coinjoker.com" + }, + "marketcap_usd": 0, + "name": "Media Network Token", + "network": "eth", + "shortcut": "MNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MNTP": { + "address": "0x83cee9e086A77e492eE0bB93C2B0437aD6fdECCc", + "links": { + "Github": "https://github.com/Goldmint", + "Homepage": "https://goldmint.io" + }, + "marketcap_usd": 0, + "name": "Goldmint MNT Prelaunch Token", + "network": "eth", + "shortcut": "MNTP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MOC": { + "address": "0x865ec58b06bF6305B886793AA20A2da31D034E68", + "links": { + "Homepage": "https://moss.land" + }, + "marketcap_usd": 14590014, + "name": "Moss Coin", + "network": "eth", + "shortcut": "MOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MOD": { + "address": "0x957c30aB0426e0C93CD8241E2c60392d08c6aC8e", + "links": { + "Github": "https://github.com/modum-io", + "Homepage": "https://modum.io" + }, + "marketcap_usd": 3587360, + "name": "Modum", + "network": "eth", + "shortcut": "MOD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MOT": { + "address": "0x263c618480DBe35C300D8d5EcDA19bbB986AcaeD", + "links": { + "Homepage": "https://olympuslabs.io" + }, + "marketcap_usd": 1569920, + "name": "Olympus Labs", + "network": "eth", + "shortcut": "MOT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MRK": { + "address": "0xf453B5B9d4E0B5c62ffB256BB2378cc2BC8e8a89", + "links": { + "Homepage": "https://mark.space" + }, + "marketcap_usd": 3344075, + "name": "MARK.SPACE", + "network": "eth", + "shortcut": "MRK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MRL": { + "address": "0x82125AFe01819Dff1535D0D6276d57045291B6c0", + "links": { + "Github": "https://github.com/MarceloMRL", + "Homepage": "https://moneyrebel.io/" + }, + "marketcap_usd": 0, + "name": "Marcelo", + "network": "eth", + "shortcut": "MRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MRP": { + "address": "0x21f0F0fD3141Ee9E11B3d7f13a1028CD515f459c", + "links": { + "Homepage": "https://moneyrebel.io/" + }, + "marketcap_usd": 0, + "name": "MoneyRebel Token", + "network": "eth", + "shortcut": "MRP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MRV": { + "address": "0xAB6CF87a50F17d7F5E1FEaf81B6fE9FfBe8EBF84", + "links": { + "Homepage": "https://macroverse.io" + }, + "marketcap_usd": 0, + "name": "MRV", + "network": "eth", + "shortcut": "MRV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MSP": { + "address": "0x68AA3F232dA9bdC2343465545794ef3eEa5209BD", + "links": { + "Homepage": "https://mothership.cx" + }, + "marketcap_usd": 0, + "name": "Mothership", + "network": "eth", + "shortcut": "MSP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTH": { + "address": "0xaF4DcE16Da2877f8c9e00544c93B62Ac40631F16", + "links": { + "Homepage": "http://www.monetha.io" + }, + "marketcap_usd": 5688701, + "name": "Monetha", + "network": "eth", + "shortcut": "MTH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTL": { + "address": "0xF433089366899D83a9f26A773D59ec7eCF30355e", + "links": { + "Homepage": "https://www.metalpay.com" + }, + "marketcap_usd": 13374644, + "name": "Metal", + "network": "eth", + "shortcut": "MTL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTN": { + "address": "0x41dBECc1cdC5517C6f76f6a6E836aDbEe2754DE3", + "links": { + "Homepage": "https://medicalchain.com" + }, + "marketcap_usd": 1601159, + "name": "MedToken", + "network": "eth", + "shortcut": "MTN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTR": { + "address": "0x7FC408011165760eE31bE2BF20dAf450356692Af", + "links": { + "Homepage": "https://mitrav.co" + }, + "marketcap_usd": 0, + "name": "Mitrav", + "network": "eth", + "shortcut": "MTR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTRc": { + "address": "0x1e49fF77c355A3e38D6651ce8404AF0E48c5395f", + "links": { + "Homepage": "https://modultrade.io" + }, + "marketcap_usd": 149976, + "name": "MTRCToken", + "network": "eth", + "shortcut": "MTRc", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MTX": { + "address": "0x0AF44e2784637218dD1D32A322D44e603A8f0c6A", + "links": { + "Homepage": "https://www.matryx.ai" + }, + "marketcap_usd": 478074, + "name": "Matryx", + "network": "eth", + "shortcut": "MTX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MUXE": { + "address": "0x515669d308f887Fd83a471C7764F5d084886D34D", + "links": { + "Homepage": "https://www.muxe.io" + }, + "marketcap_usd": 0, + "name": "MUXE", + "network": "eth", + "shortcut": "MUXE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MVL": { + "address": "0xA849EaaE994fb86Afa73382e9Bd88c2B6b18Dc71", + "links": { + "Homepage": "http://mvlchain.io" + }, + "marketcap_usd": 1913453, + "name": "Mass Vehicle Ledger Token", + "network": "eth", + "shortcut": "MVL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MVP": { + "address": "0x8a77e40936BbC27e80E9a3F526368C967869c86D", + "links": { + "Github": "https://github.com/Merculet", + "Homepage": "https://www.merculet.io" + }, + "marketcap_usd": 645981, + "name": "Merculet", + "network": "eth", + "shortcut": "MVP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MWAT": { + "address": "0x6425c6BE902d692AE2db752B3c268AFAdb099D3b", + "links": { + "Homepage": "https://www.restartenergy.io" + }, + "marketcap_usd": 6931469, + "name": "RED MWAT", + "network": "eth", + "shortcut": "MWAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:MYST": { + "address": "0xa645264C5603E96c3b0B078cdab68733794B0A71", + "links": { + "Homepage": "https://mysterium.network" + }, + "marketcap_usd": 1295531, + "name": "Mysterium", + "network": "eth", + "shortcut": "MYST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NAC": { + "address": "0x8d80de8A78198396329dfA769aD54d24bF90E7aa", + "links": { + "Homepage": "https://nami.trade" + }, + "marketcap_usd": 0, + "name": "Nami ICO", + "network": "eth", + "shortcut": "NAC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NANJ": { + "address": "0xFFE02ee4C69eDf1b340fCaD64fbd6b37a7b9e265", + "links": { + "Github": "https://github.com/NANJ-COIN", + "Homepage": "https://nanjcoin.com/" + }, + "marketcap_usd": 2863984, + "name": "NANJCOIN", + "network": "eth", + "shortcut": "NANJ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NAVI": { + "address": "0x588047365dF5BA589F923604AAC23d673555c623", + "links": { + "Github": "https://github.com/naviworld", + "Homepage": "https://naviaddress.com" + }, + "marketcap_usd": 216338, + "name": "NaviToken", + "network": "eth", + "shortcut": "NAVI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NBAI": { + "address": "0x17f8aFB63DfcDcC90ebE6e84F060Cc306A98257D", + "links": { + "Github": "https://github.com/nebulaai", + "Homepage": "https://tokensale.nebula-ai.network" + }, + "marketcap_usd": 1343232, + "name": "NebulaAiToken", + "network": "eth", + "shortcut": "NBAI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NBC": { + "address": "0x9F195617fA8fbAD9540C5D113A99A0a0172aaEDC", + "links": { + "Homepage": "https://niobiumcoin.io" + }, + "marketcap_usd": 635606, + "name": "Niobium Coin", + "network": "eth", + "shortcut": "NBC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NCASH": { + "address": "0x809826cceAb68c387726af962713b64Cb5Cb3CCA", + "links": { + "Homepage": "https://nucleus.vision" + }, + "marketcap_usd": 10058545, + "name": "Nucleus Vision", + "network": "eth", + "shortcut": "NCASH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NCT": { + "address": "0x9E46A38F5DaaBe8683E10793b06749EEF7D733d1", + "links": { + "Github": "https://github.com/polyswarm", + "Homepage": "https://polyswarm.io" + }, + "marketcap_usd": 3090519, + "name": "Nectar", + "network": "eth", + "shortcut": "NCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NDC": { + "address": "0xA54ddC7B3CcE7FC8b1E3Fa0256D0DB80D2c10970", + "links": { + "Homepage": "https://neverdie.com" + }, + "marketcap_usd": 89828, + "name": "Neverdie", + "network": "eth", + "shortcut": "NDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NDX": { + "address": "0x1966d718A565566e8E202792658D7b5Ff4ECe469", + "links": { + "Github": "https://github.com/ndexnetwork/NDX", + "Homepage": "https://ndexnetwork.com" + }, + "marketcap_usd": 61381, + "name": "nDEX", + "network": "eth", + "shortcut": "NDX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NEC": { + "address": "0xCc80C051057B774cD75067Dc48f8987C4Eb97A5e", + "links": { + "Github": "https://github.com/ethfinex/", + "Homepage": "https://nectar.community" + }, + "marketcap_usd": 22664042, + "name": "Ethfinex Nectar Token", + "network": "eth", + "shortcut": "NEC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NEEO": { + "address": "0xd8446236FA95b9b5f9fd0f8E7Df1a944823c683d", + "links": { + "Homepage": "http://neeoico.com/" + }, + "marketcap_usd": 0, + "name": "NEEO", + "network": "eth", + "shortcut": "NEEO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NET": { + "address": "0xcfb98637bcae43C13323EAa1731cED2B716962fD", + "links": { + "Homepage": "https://nimiq.com" + }, + "marketcap_usd": 0, + "name": "NIMIQ", + "network": "eth", + "shortcut": "NET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NEU": { + "address": "0xA823E6722006afe99E91c30FF5295052fe6b8E32", + "links": { + "Github": "https://github.com/neufund", + "Homepage": "https://neufund.org" + }, + "marketcap_usd": 6623594, + "name": "NEU Fund", + "network": "eth", + "shortcut": "NEU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NEXO": { + "address": "0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206", + "links": { + "Homepage": "http://nexo.io" + }, + "marketcap_usd": 47663734, + "name": "Nexo", + "network": "eth", + "shortcut": "NEXO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NGC": { + "address": "0x72dD4b6bd852A3AA172Be4d6C5a6dbEc588cf131", + "links": { + "Homepage": "https://www.nagaico.com" + }, + "marketcap_usd": 2917606, + "name": "NAGA Coin", + "network": "eth", + "shortcut": "NGC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NIMFA": { + "address": "0xe26517A9967299453d3F1B48Aa005E6127e67210", + "links": { + "Github": "https://github.com/nimfamoney", + "Homepage": "https://nimfamoney.io" + }, + "marketcap_usd": 0, + "name": "Ninfa Money", + "network": "eth", + "shortcut": "NIMFA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NIO": { + "address": "0x5554e04e76533E1d14c52f05beEF6c9d329E1E30", + "links": { + "Homepage": "https://auton.io" + }, + "marketcap_usd": 748072, + "name": "Autonio", + "network": "eth", + "shortcut": "NIO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NMR": { + "address": "0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671", + "links": { + "Github": "https://github.com/numerai", + "Homepage": "https://numer.ai" + }, + "marketcap_usd": 6823231, + "name": "Numerai", + "network": "eth", + "shortcut": "NMR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NOAH": { + "address": "0x58a4884182d9E835597f405e5F258290E46ae7C2", + "links": { + "Homepage": "https://noahcoin.org" + }, + "marketcap_usd": 5034668, + "name": "Noah Coin", + "network": "eth", + "shortcut": "NOAH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NOBS": { + "address": "0xF4FaEa455575354d2699BC209B0a65CA99F69982", + "links": { + "Homepage": "https://nobscrypto.com" + }, + "marketcap_usd": 114021, + "name": "No BS Crypto", + "network": "eth", + "shortcut": "NOBS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NOX": { + "address": "0xeC46f8207D766012454c408De210BCBc2243E71c", + "links": { + "Github": "https://github.com/nitrotoken/nitro-crowdsale", + "Homepage": "https://nitro.live" + }, + "marketcap_usd": 41383, + "name": "Nitro", + "network": "eth", + "shortcut": "NOX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NPER": { + "address": "0x4cE6B362Bc77A24966Dda9078f9cEF81b3B886a7", + "links": { + "Github": "https://github.com/NperProject", + "Homepage": "https://nper.io" + }, + "marketcap_usd": 293824, + "name": "NPER", + "network": "eth", + "shortcut": "NPER", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NPX": { + "address": "0x28b5E12CcE51f15594B0b91d5b5AdaA70F684a02", + "links": { + "Homepage": "https://napoleonx.ai" + }, + "marketcap_usd": 5603901, + "name": "NaPoleonX", + "network": "eth", + "shortcut": "NPX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NPXS": { + "address": "0xA15C7Ebe1f07CaF6bFF097D8a589fb8AC49Ae5B3", + "links": { + "Github": "https://github.com/pundix", + "Homepage": "https://pundix.com" + }, + "marketcap_usd": 107992935, + "name": "Pundi X Token", + "network": "eth", + "shortcut": "NPXS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NTO": { + "address": "0x8A99ED8a1b204903Ee46e733f2c1286F6d20b177", + "links": { + "Homepage": "https://fujinto.io" + }, + "marketcap_usd": 1868, + "name": "Fujinto", + "network": "eth", + "shortcut": "NTO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NUG": { + "address": "0x245ef47D4d0505ECF3Ac463F4d81f41ADE8f1fd1", + "links": { + "Homepage": "https://nuggets.life/" + }, + "marketcap_usd": 0, + "name": "Nuggets Token", + "network": "eth", + "shortcut": "NUG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NULS": { + "address": "0xB91318F35Bdb262E9423Bc7c7c2A3A93DD93C92C", + "links": { + "Homepage": "https://nuls.io" + }, + "marketcap_usd": 0, + "name": "NULS", + "network": "eth", + "shortcut": "NULS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NXX": { + "address": "0x7627de4B93263a6a7570b8dAfa64bae812e5c394", + "links": { + "Homepage": "https://www.nexxuscoin.com" + }, + "marketcap_usd": 0, + "name": "NXX", + "network": "eth", + "shortcut": "NXX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:NxC": { + "address": "0x45e42D659D9f9466cD5DF622506033145a9b89Bc", + "links": { + "Homepage": "https://beyond-the-void.net" + }, + "marketcap_usd": 417577, + "name": "Nexium", + "network": "eth", + "shortcut": "NxC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OAK": { + "address": "0x5e888B83B7287EED4fB7DA7b7d0A0D4c735d94b3", + "links": { + "Homepage": "https://aco.ai" + }, + "marketcap_usd": 0, + "name": "OAK", + "network": "eth", + "shortcut": "OAK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OAX": { + "address": "0x701C244b988a513c945973dEFA05de933b23Fe1D", + "links": { + "Homepage": "https://www.openanx.org/en" + }, + "marketcap_usd": 3445131, + "name": "OAX", + "network": "eth", + "shortcut": "OAX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OCC": { + "address": "0x0235fE624e044A05eeD7A43E16E3083bc8A4287A", + "links": { + "Github": "https://github.com/OriginalCrypto/", + "Homepage": "https://www.OriginalCryptoCoin.com/" + }, + "marketcap_usd": 0, + "name": "Original Crypto Coin", + "network": "eth", + "shortcut": "OCC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OCN": { + "address": "0x4092678e4E78230F46A1534C0fbc8fA39780892B", + "links": { + "Homepage": "http://www.ocnex.net" + }, + "marketcap_usd": 16493075, + "name": "Odyssey", + "network": "eth", + "shortcut": "OCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ODE": { + "address": "0xbf52F2ab39e26E0951d2a02b49B7702aBe30406a", + "links": { + "Github": "https://github.com/odemio", + "Homepage": "https://odem.io/" + }, + "marketcap_usd": 44873079, + "name": "ODEM Token", + "network": "eth", + "shortcut": "ODE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OJX": { + "address": "0xBeef546ac8a4e0a80DC1E2d696968Ef54138f1d4", + "links": { + "Github": "https://github.com/OjoooInc", + "Homepage": "https://ico.ojooo.com/" + }, + "marketcap_usd": 0, + "name": "Ojooo Coin", + "network": "eth", + "shortcut": "OJX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OLD_MKR": { + "address": "0xC66eA802717bFb9833400264Dd12c2bCeAa34a6d", + "links": { + "Github": "https://github.com/makerdao", + "Homepage": "https://makerdao.com" + }, + "marketcap_usd": 0, + "name": "MakerDAO", + "network": "eth", + "shortcut": "OLD_MKR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OLE": { + "address": "0x9d9223436dDD466FC247e9dbbD20207e640fEf58", + "links": { + "Homepage": "http://www.olivecoin.co" + }, + "marketcap_usd": 534682, + "name": "Olive", + "network": "eth", + "shortcut": "OLE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OLT": { + "address": "0x64A60493D888728Cf42616e034a0dfEAe38EFCF0", + "links": { + "Github": "https://github.com/Oneledger", + "Homepage": "https://oneledger.io" + }, + "marketcap_usd": 986717, + "name": "OneLedger Token", + "network": "eth", + "shortcut": "OLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OMG": { + "address": "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07", + "links": { + "Github": "https://github.com/omisego", + "Homepage": "https://omg.omise.co" + }, + "marketcap_usd": 189407794, + "name": "OmiseGO", + "network": "eth", + "shortcut": "OMG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OMT": { + "address": "0x047187e53477be70DBe8Ea5B799318f2e165052F", + "links": { + "Github": "https://github.com/OTCMAKER/OMT", + "Homepage": "https://www.otcmaker.com" + }, + "marketcap_usd": 0, + "name": "OTCMAKER Token", + "network": "eth", + "shortcut": "OMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OMX": { + "address": "0xB5DBC6D3cf380079dF3b27135664b6BCF45D1869", + "links": { + "Homepage": "https://shivom.io" + }, + "marketcap_usd": 550326, + "name": "Shivom", + "network": "eth", + "shortcut": "OMX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ONE": { + "address": "0x4D807509aECe24C0fa5A102b6a3B059Ec6E14392", + "links": { + "Github": "https://github.com/MenloOne/", + "Homepage": "https://www.menlo.one" + }, + "marketcap_usd": 225725, + "name": "Menlo One", + "network": "eth", + "shortcut": "ONE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ONEK": { + "address": "0xB23be73573bC7E03DB6e5dfc62405368716d28a8", + "links": { + "Homepage": "http://onek.one" + }, + "marketcap_usd": 0, + "name": "One K Token", + "network": "eth", + "shortcut": "ONEK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ONG": { + "address": "0xd341d1680Eeee3255b8C4c75bCCE7EB57f144dAe", + "links": { + "Github": "https://github.com/onGsocial", + "Homepage": "https://somee.social" + }, + "marketcap_usd": 220453, + "name": "SoMee.Social", + "network": "eth", + "shortcut": "ONG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ONL": { + "address": "0x6863bE0e7CF7ce860A574760e9020D519a8bDC47", + "links": { + "Homepage": "https://on.live" + }, + "marketcap_usd": 900499, + "name": "On.Live", + "network": "eth", + "shortcut": "ONL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OPT": { + "address": "0x4355fC160f74328f9b383dF2EC589bB3dFd82Ba0", + "links": { + "Homepage": "https://opus-foundation.org" + }, + "marketcap_usd": 238174, + "name": "Opus Foundation", + "network": "eth", + "shortcut": "OPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OPTI": { + "address": "0x832904863978b94802123106e6eB491BDF0Df928", + "links": { + "Homepage": "https://optitoken.io" + }, + "marketcap_usd": 486464, + "name": "OptiToken", + "network": "eth", + "shortcut": "OPTI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ORBS": { + "address": "0xff56Cc6b1E6dEd347aA0B7676C85AB0B3D08B0FA", + "links": { + "Github": "https://github.com/orbs-network", + "Homepage": "https://orbs.com" + }, + "marketcap_usd": 0, + "name": "Orbs", + "network": "eth", + "shortcut": "ORBS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ORCA": { + "address": "0x6F59e0461Ae5E2799F1fB3847f05a63B16d0DbF8", + "links": { + "Github": "https://github.com/orcaalliance", + "Homepage": "https://www.orcaalliance.eu" + }, + "marketcap_usd": 0, + "name": "ORCA Token", + "network": "eth", + "shortcut": "ORCA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ORI": { + "address": "0xd2Fa8f92Ea72AbB35dBD6DECa57173d22db2BA49", + "links": { + "Homepage": "https://ori.network" + }, + "marketcap_usd": 68173, + "name": "Origami", + "network": "eth", + "shortcut": "ORI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ORME": { + "address": "0x516E5436bAfdc11083654DE7Bb9b95382d08d5DE", + "links": { + "Homepage": "https://ormeuscoin.com" + }, + "marketcap_usd": 690647, + "name": "Ormeus Coin", + "network": "eth", + "shortcut": "ORME", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ORS": { + "address": "0xEB9A4B185816C354dB92DB09cC3B50bE60b901b6", + "links": { + "Homepage": "https://www.originsport.io" + }, + "marketcap_usd": 271771, + "name": "Origin Sport", + "network": "eth", + "shortcut": "ORS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OST": { + "address": "0x2C4e8f2D746113d0696cE89B35F0d8bF88E0AEcA", + "links": { + "Github": "https://github.com/OpenSTFoundation", + "Homepage": "https://simpletoken.org" + }, + "marketcap_usd": 13700526, + "name": "Simple Token 'OST'", + "network": "eth", + "shortcut": "OST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OTN": { + "address": "0x881Ef48211982D01E2CB7092C915E647Cd40D85C", + "links": { + "Homepage": "https://otn.org" + }, + "marketcap_usd": 146051, + "name": "Open Trading Network", + "network": "eth", + "shortcut": "OTN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:OWN": { + "address": "0x170b275CEd089FffAEBFe927F445a350ED9160DC", + "links": { + "Github": "https://github.com/owndata", + "Homepage": "https://owndata.network" + }, + "marketcap_usd": 748439, + "name": "OWNDATA", + "network": "eth", + "shortcut": "OWN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:Ox Fina": { + "address": "0x65A15014964F2102Ff58647e16a16a6B9E14bCF6", + "links": { + "Github": "https://github.com/oxfina", + "Homepage": "https://oxfina.com" + }, + "marketcap_usd": 0, + "name": "Ox Fina", + "network": "eth", + "shortcut": "Ox Fina", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PAI": { + "address": "0xB9bb08AB7E9Fa0A1356bd4A39eC0ca267E03b0b3", + "links": { + "Homepage": "https://www.pchain.org" + }, + "marketcap_usd": 6340690, + "name": "PCHAIN", + "network": "eth", + "shortcut": "PAI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PAL": { + "address": "0xfeDAE5642668f8636A11987Ff386bfd215F942EE", + "links": { + "Github": "https://github.com/policypalnet", + "Homepage": "https://www.policypal.network" + }, + "marketcap_usd": 2465818, + "name": "PolicyPal Network", + "network": "eth", + "shortcut": "PAL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PARETO": { + "address": "0xea5f88E54d982Cbb0c441cde4E79bC305e5b43Bc", + "links": { + "Github": "https://github.com/ParetoNetwork", + "Homepage": "https://pareto.network" + }, + "marketcap_usd": 361944, + "name": "PARETO", + "network": "eth", + "shortcut": "PARETO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PAT": { + "address": "0xF3b3Cad094B89392fcE5faFD40bC03b80F2Bc624", + "links": { + "Homepage": "https://patron-influencers.com" + }, + "marketcap_usd": 680975, + "name": "Patron", + "network": "eth", + "shortcut": "PAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PATENTS": { + "address": "0x694404595e3075A942397F466AAcD462FF1a7BD0", + "links": { + "Homepage": "https://www.smartillions.ch" + }, + "marketcap_usd": 0, + "name": "PATENTS", + "network": "eth", + "shortcut": "PATENTS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PATH": { + "address": "0xF813F3902bBc00A6DCe378634d3B79D84F9803d7", + "links": { + "Github": "https://github.com/path-network-token", + "Homepage": "https://path.network" + }, + "marketcap_usd": 0, + "name": "PATH", + "network": "eth", + "shortcut": "PATH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PAX": { + "address": "0x8E870D67F660D95d5be530380D0eC0bd388289E1", + "links": { + "Github": "https://github.com/paxosglobal", + "Homepage": "https://www.paxos.com/standard" + }, + "marketcap_usd": 112859299, + "name": "Paxos Standard (PAX)", + "network": "eth", + "shortcut": "PAX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PAY": { + "address": "0xB97048628DB6B661D4C2aA833e95Dbe1A905B280", + "links": { + "Homepage": "http://www.tenx.tech" + }, + "marketcap_usd": 37230747, + "name": "TenX", + "network": "eth", + "shortcut": "PAY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PBL": { + "address": "0x55648De19836338549130B1af587F16beA46F66B", + "links": { + "Homepage": "https://publica.io" + }, + "marketcap_usd": 0, + "name": "PBL", + "network": "eth", + "shortcut": "PBL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PBT": { + "address": "0xF4c07b1865bC326A3c01339492Ca7538FD038Cc0", + "links": { + "Homepage": "http://primalbase.com/" + }, + "marketcap_usd": 0, + "name": "Primalbase Token (PBT)", + "network": "eth", + "shortcut": "PBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PCL": { + "address": "0x3618516F45CD3c913F81F9987AF41077932Bc40d", + "links": { + "Github": "https://github.com/PeculiumPCL/Peculium", + "Homepage": "https://peculium.io" + }, + "marketcap_usd": 0, + "name": "Peculium", + "network": "eth", + "shortcut": "PCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PCLOLD": { + "address": "0x53148Bb4551707edF51a1e8d7A93698d18931225", + "links": { + "Github": "https://github.com/PeculiumPCL/Peculium", + "Homepage": "https://peculium.io" + }, + "marketcap_usd": 0, + "name": "PeculiumOLD", + "network": "eth", + "shortcut": "PCLOLD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PDATA": { + "address": "0x0db03B6CDe0B2d427C64a04FeAfd825938368f1F", + "links": { + "Github": "https://github.com/opiria-pdata/Pdata", + "Homepage": "https://opiria.io" + }, + "marketcap_usd": 0, + "name": "PDATA", + "network": "eth", + "shortcut": "PDATA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PET": { + "address": "0x5884969Ec0480556E11d119980136a4C17eDDEd1", + "links": { + "Github": "https://github.com/Pethereum", + "Homepage": "https://pethereum.org/" + }, + "marketcap_usd": 0, + "name": "PETHEREUM", + "network": "eth", + "shortcut": "PET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PEXT": { + "address": "0x55c2A0C171D920843560594dE3d6EEcC09eFc098", + "links": { + "Homepage": "https://prime-ex.com" + }, + "marketcap_usd": 0, + "name": "PEX-Token", + "network": "eth", + "shortcut": "PEXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PFR": { + "address": "0x2FA32a39fc1c399E0Cc7B2935868f5165De7cE97", + "links": { + "Homepage": "https://payfair.io" + }, + "marketcap_usd": 0, + "name": "Payfair", + "network": "eth", + "shortcut": "PFR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PHI": { + "address": "0x13C2fab6354d3790D8ece4f0f1a3280b4A25aD96", + "links": { + "Homepage": "https://www.phitoken.io" + }, + "marketcap_usd": 907119, + "name": "PHI Token", + "network": "eth", + "shortcut": "PHI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PIPL": { + "address": "0xE64509F0bf07ce2d29A7eF19A8A9bc065477C1B4", + "links": { + "Homepage": "https://piplcoin.com" + }, + "marketcap_usd": 100287, + "name": "PIPL Coin", + "network": "eth", + "shortcut": "PIPL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PIT": { + "address": "0x0fF161071e627A0E6de138105C73970F86ca7922", + "links": { + "Homepage": "https://paypite.org" + }, + "marketcap_usd": 0, + "name": "Paypite v2", + "network": "eth", + "shortcut": "PIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PIX": { + "address": "0x8eFFd494eB698cc399AF6231fCcd39E08fd20B15", + "links": { + "Homepage": "https://www.lampix.co" + }, + "marketcap_usd": 446610, + "name": "Lampix", + "network": "eth", + "shortcut": "PIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PKG": { + "address": "0x02F2D4a04E6E01aCE88bD2Cd632875543b2eF577", + "links": { + "Homepage": "http://pkgtoken.io" + }, + "marketcap_usd": 66616, + "name": "PKG Token", + "network": "eth", + "shortcut": "PKG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PKT": { + "address": "0x2604FA406Be957E542BEb89E6754fCdE6815e83f", + "links": { + "Homepage": "https://playkey.io" + }, + "marketcap_usd": 627756, + "name": "Playkey", + "network": "eth", + "shortcut": "PKT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PLASMA": { + "address": "0x59416A25628A76b4730eC51486114c32E0B582A1", + "links": { + "Homepage": "https://plasma.io" + }, + "marketcap_usd": 0, + "name": "PLASMA", + "network": "eth", + "shortcut": "PLASMA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PLBT": { + "address": "0x0AfFa06e7Fbe5bC9a764C979aA66E8256A631f02", + "links": { + "Homepage": "https://polybius.io" + }, + "marketcap_usd": 4300619, + "name": "Polybius", + "network": "eth", + "shortcut": "PLBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PLR": { + "address": "0xe3818504c1B32bF1557b16C238B2E01Fd3149C17", + "links": { + "Github": "https://github.com/twentythirty/PillarToken", + "Homepage": "https://www.pillarproject.io" + }, + "marketcap_usd": 7369534, + "name": "Pillar Project", + "network": "eth", + "shortcut": "PLR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PLS": { + "address": "0xe43ac1714F7394173b15E7CfF31A63d523Ce4fB9", + "links": { + "Github": "https://github.com/bitsuperlab", + "Homepage": "https://dacplay.org" + }, + "marketcap_usd": 0, + "name": "DACPLAY Token", + "network": "eth", + "shortcut": "PLS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PLU": { + "address": "0xD8912C10681D8B21Fd3742244f44658dBA12264E", + "links": { + "Homepage": "https://plutus.it" + }, + "marketcap_usd": 1681267, + "name": "Pluton", + "network": "eth", + "shortcut": "PLU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PMA": { + "address": "0x846C66cf71C43f80403B51fE3906B3599D63336f", + "links": { + "Homepage": "https://pumapay.io" + }, + "marketcap_usd": 9933379, + "name": "PumaPay", + "network": "eth", + "shortcut": "PMA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PMNT": { + "address": "0x81b4D08645DA11374a03749AB170836E4e539767", + "links": { + "Homepage": "https://paymon.org" + }, + "marketcap_usd": 248153, + "name": "Paymon", + "network": "eth", + "shortcut": "PMNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PNK": { + "address": "0x93ED3FBe21207Ec2E8f2d3c3de6e058Cb73Bc04d", + "links": { + "Github": "https://github.com/kleros", + "Homepage": "https://kleros.io" + }, + "marketcap_usd": 1286986, + "name": "Pinakion", + "network": "eth", + "shortcut": "PNK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POE": { + "address": "0x0e0989b1f9B8A38983c2BA8053269Ca62Ec9B195", + "links": { + "Homepage": "https://po.et" + }, + "marketcap_usd": 14909604, + "name": "Po.et Tokens", + "network": "eth", + "shortcut": "POE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POIN": { + "address": "0x43F6a1BE992deE408721748490772B15143CE0a7", + "links": { + "Homepage": "https://potatoin.foundation" + }, + "marketcap_usd": 0, + "name": "Potatoin", + "network": "eth", + "shortcut": "POIN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POLL": { + "address": "0x705EE96c1c160842C92c1aeCfCFfccc9C412e3D9", + "links": { + "Homepage": "https://clearpoll.com" + }, + "marketcap_usd": 550145, + "name": "ClearPoll", + "network": "eth", + "shortcut": "POLL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POLY": { + "address": "0x9992eC3cF6A55b00978cdDF2b27BC6882d88D1eC", + "links": { + "Homepage": "https://polymath.network" + }, + "marketcap_usd": 32374670, + "name": "Polymath Network", + "network": "eth", + "shortcut": "POLY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POOL": { + "address": "0x779B7b713C86e3E6774f5040D9cCC2D43ad375F8", + "links": { + "Homepage": "http://stakepool.co" + }, + "marketcap_usd": 0, + "name": "Stake Pool", + "network": "eth", + "shortcut": "POOL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POP": { + "address": "0x5D858bcd53E085920620549214a8b27CE2f04670", + "links": { + "Github": "https://github.com/popchest", + "Homepage": "https://www.thepopnetwork.org" + }, + "marketcap_usd": 0, + "name": "POP Network Token", + "network": "eth", + "shortcut": "POP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POS": { + "address": "0xEe609fE292128Cad03b786DBb9Bc2634Ccdbe7fC", + "links": { + "Github": "https://github.com/PoSToken", + "Homepage": "https://postoken.org" + }, + "marketcap_usd": 4407, + "name": "PoSToken", + "network": "eth", + "shortcut": "POS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:POWR": { + "address": "0x595832F8FC6BF59c85C527fEC3740A1b7a361269", + "links": { + "Homepage": "https://powerledger.io" + }, + "marketcap_usd": 40714627, + "name": "PowerLedger", + "network": "eth", + "shortcut": "POWR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PPP": { + "address": "0xc42209aCcC14029c1012fB5680D95fBd6036E2a0", + "links": { + "Homepage": "https://www.paypie.com" + }, + "marketcap_usd": 6030988, + "name": "PayPie", + "network": "eth", + "shortcut": "PPP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PPT": { + "address": "0xd4fa1460F537bb9085d22C7bcCB5DD450Ef28e3a", + "links": { + "Homepage": "https://populous.co" + }, + "marketcap_usd": 67040364, + "name": "Populous", + "network": "eth", + "shortcut": "PPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRE": { + "address": "0x88A3E4F35D64aAD41A6d4030ac9AFE4356cB84fA", + "links": { + "Homepage": "https://presearch.io" + }, + "marketcap_usd": 14731310, + "name": "Presearch", + "network": "eth", + "shortcut": "PRE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRG": { + "address": "0x7728dFEF5aBd468669EB7f9b48A7f70a501eD29D", + "links": { + "Github": "https://github.com/paragon-coin/token", + "Homepage": "https://paragoncoin.com" + }, + "marketcap_usd": 11154655, + "name": "Paragon", + "network": "eth", + "shortcut": "PRG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRIX": { + "address": "0x3ADfc4999F77D04c8341BAC5F3A76f58DfF5B37A", + "links": { + "Homepage": "https://privatix.io" + }, + "marketcap_usd": 1198149, + "name": "Privatix", + "network": "eth", + "shortcut": "PRIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRL": { + "address": "0x1844b21593262668B7248d0f57a220CaaBA46ab9", + "links": { + "Github": "https://github.com/oysterprotocol", + "Homepage": "https://oyster.ws" + }, + "marketcap_usd": 0, + "name": "Oyster Pearl", + "network": "eth", + "shortcut": "PRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRON": { + "address": "0xA3149E0fA0061A9007fAf307074cdCd290f0e2Fd", + "links": { + "Homepage": "https://proncoin.io" + }, + "marketcap_usd": 0, + "name": "PronCoin", + "network": "eth", + "shortcut": "PRON", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRS": { + "address": "0x163733bcc28dbf26B41a8CfA83e369b5B3af741b", + "links": { + "Github": "https://github.com/Neurone/persians", + "Homepage": "http://persians.network" + }, + "marketcap_usd": 0, + "name": "Persians", + "network": "eth", + "shortcut": "PRS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PRSP": { + "address": "0x0C04d4f331DA8dF75f9E2e271E3f3F1494C66C36", + "links": { + "Homepage": "http://www.prsp.me" + }, + "marketcap_usd": 0, + "name": "PRSP", + "network": "eth", + "shortcut": "PRSP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PST": { + "address": "0x5d4ABC77B8405aD177d8ac6682D584ecbFd46CEc", + "links": { + "Homepage": "https://primas.io" + }, + "marketcap_usd": 4906456, + "name": "Primas", + "network": "eth", + "shortcut": "PST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PT": { + "address": "0x66497A283E0a007bA3974e837784C6AE323447de", + "links": { + "Github": "https://github.com/porntoken/smart_contract", + "Homepage": "https://www.porntoken.io" + }, + "marketcap_usd": 0, + "name": "PornToken", + "network": "eth", + "shortcut": "PT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PTOY": { + "address": "0x8Ae4BF2C33a8e667de34B54938B0ccD03Eb8CC06", + "links": { + "Homepage": "https://patientory.com" + }, + "marketcap_usd": 1065966, + "name": "Patientory", + "network": "eth", + "shortcut": "PTOY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PTT": { + "address": "0x4689a4e169eB39cC9078C0940e21ff1Aa8A39B9C", + "links": { + "Homepage": "https://www.proton.global" + }, + "marketcap_usd": 302164, + "name": "Proton Token", + "network": "eth", + "shortcut": "PTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PTWO": { + "address": "0x5512e1D6A7BE424b4323126B4f9E86D023F95764", + "links": { + "Github": "https://github.com/porntoken/smart_contract", + "Homepage": "https://www.porntoken.io" + }, + "marketcap_usd": 0, + "name": "PornTokenV2", + "network": "eth", + "shortcut": "PTWO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PUC": { + "address": "0xEf6B4cE8C9Bc83744fbcdE2657b32eC18790458A", + "links": { + "Github": "https://github.com/pourcoin/pourcoin-PUC/projects", + "Homepage": "http://price-s.info" + }, + "marketcap_usd": 0, + "name": "Pour Coin", + "network": "eth", + "shortcut": "PUC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PURC": { + "address": "0xe25ff6Eb959BCE67975778e46A47750C243B6B99", + "links": { + "Github": "https://github.com/seanyc99/PureCarbon-Smart-Contract", + "Homepage": "https://purecarbon.io" + }, + "marketcap_usd": 0, + "name": "PureCarbon", + "network": "eth", + "shortcut": "PURC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PXT": { + "address": "0xc14830E53aA344E8c14603A91229A0b925b0B262", + "links": { + "Homepage": "https://populous.co" + }, + "marketcap_usd": 0, + "name": "Populous XBRL Token (PXT)", + "network": "eth", + "shortcut": "PXT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:PYLNT": { + "address": "0x7703C35CfFdC5CDa8D27aa3df2F9ba6964544b6e", + "links": { + "Homepage": "https://pylon-network.org" + }, + "marketcap_usd": 247562, + "name": "Pylon Network", + "network": "eth", + "shortcut": "PYLNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QASH": { + "address": "0x618E75Ac90b12c6049Ba3b27f5d5F8651b0037F6", + "links": { + "Homepage": "https://liquid.plus" + }, + "marketcap_usd": 48096822, + "name": "QASH", + "network": "eth", + "shortcut": "QASH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QAU": { + "address": "0x671AbBe5CE652491985342e85428EB1b07bC6c64", + "links": { + "Homepage": "http://www.quantumproject.org" + }, + "marketcap_usd": 0, + "name": "QAU", + "network": "eth", + "shortcut": "QAU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QBX": { + "address": "0x2467AA6B5A2351416fD4C3DeF8462d841feeecEC", + "links": { + "Github": "https://github.com/qiibee", + "Homepage": "https://www.qiibee.com" + }, + "marketcap_usd": 0, + "name": "qiibeeToken", + "network": "eth", + "shortcut": "QBX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QKC": { + "address": "0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664", + "links": { + "Homepage": "https://quarkchain.io" + }, + "marketcap_usd": 31789314, + "name": "QuarkChain", + "network": "eth", + "shortcut": "QKC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QNT": { + "address": "0x4a220E6096B25EADb88358cb44068A3248254675", + "links": { + "Github": "https://github.com/quantnetwork", + "Homepage": "https://www.quant.network/" + }, + "marketcap_usd": 32972521, + "name": "Quant", + "network": "eth", + "shortcut": "QNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QRG": { + "address": "0xFFAA5ffc455d9131f8A2713A741fD1960330508B", + "links": { + "Homepage": "http://qrg-stamps.com/" + }, + "marketcap_usd": 0, + "name": "QRG", + "network": "eth", + "shortcut": "QRG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QRL": { + "address": "0x697beac28B09E122C4332D163985e8a73121b97F", + "links": { + "Github": "https://github.com/theQRL", + "Homepage": "https://theqrl.org" + }, + "marketcap_usd": 0, + "name": "QRL", + "network": "eth", + "shortcut": "QRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QSP": { + "address": "0x99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d", + "links": { + "Github": "https://github.com/quantstamp", + "Homepage": "https://quantstamp.com/" + }, + "marketcap_usd": 12993500, + "name": "Quantstamp Token", + "network": "eth", + "shortcut": "QSP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QTQ": { + "address": "0x2C3C1F05187dBa7A5f2Dd47Dca57281C4d4F183F", + "links": { + "Github": "https://github.com/TiiQu-Network/TiiQu-Network", + "Homepage": "http://tiiqu.com" + }, + "marketcap_usd": 0, + "name": "TiiQu's Q Token", + "network": "eth", + "shortcut": "QTQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QTUM": { + "address": "0x9a642d6b3368ddc662CA244bAdf32cDA716005BC", + "links": { + "Github": "https://github.com/qtumproject", + "Homepage": "https://qtum.org/" + }, + "marketcap_usd": 0, + "name": "Qtum", + "network": "eth", + "shortcut": "QTUM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:QUN": { + "address": "0x264Dc2DedCdcbb897561A57CBa5085CA416fb7b4", + "links": { + "Homepage": "https://qunqun.io" + }, + "marketcap_usd": 2573379, + "name": "QunQun", + "network": "eth", + "shortcut": "QUN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:R": { + "address": "0x48f775EFBE4F5EcE6e0DF2f7b5932dF56823B990", + "links": { + "Homepage": "https://revain.org" + }, + "marketcap_usd": 55247746, + "name": "Revain", + "network": "eth", + "shortcut": "R", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RAO": { + "address": "0x45eDb535942a8C84D9f4b5D37e1b25F91Ea4804c", + "links": { + "Github": "https://github.com/RadioYoFM/ICO_smartcontract/", + "Homepage": "https://rao.radioyo.fm" + }, + "marketcap_usd": 0, + "name": "RadioYo", + "network": "eth", + "shortcut": "RAO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RATING": { + "address": "0xE8663A64A96169ff4d95b4299E7ae9a76b905B31", + "links": { + "Homepage": "http://token.dprating.com" + }, + "marketcap_usd": 433455, + "name": "DPRating", + "network": "eth", + "shortcut": "RATING", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RBLX": { + "address": "0xFc2C4D8f95002C14eD0a7aA65102Cac9e5953b5E", + "links": { + "Github": "https://github.com/rublixdev", + "Homepage": "https://rublix.io/" + }, + "marketcap_usd": 4083849, + "name": "Rublix", + "network": "eth", + "shortcut": "RBLX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RCN": { + "address": "0xF970b8E36e23F7fC3FD752EeA86f8Be8D83375A6", + "links": { + "Github": "https://github.com/ripio/rcn-token", + "Homepage": "https://ripiocredit.network" + }, + "marketcap_usd": 12062208, + "name": "Ripio Credit Network", + "network": "eth", + "shortcut": "RCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RDN": { + "address": "0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6", + "links": { + "Github": "https://github.com/raiden-network/raiden/", + "Homepage": "https://raiden.network" + }, + "marketcap_usd": 15576761, + "name": "Raiden Network", + "network": "eth", + "shortcut": "RDN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REA": { + "address": "0x767bA2915EC344015a7938E3eEDfeC2785195D05", + "links": { + "Homepage": "https://www.realisto.io" + }, + "marketcap_usd": 0, + "name": "Realisto", + "network": "eth", + "shortcut": "REA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REAL": { + "address": "0x9214eC02CB71CbA0ADA6896b8dA260736a67ab10", + "links": { + "Homepage": "https://www.real.markets" + }, + "marketcap_usd": 729715, + "name": "Real Estate Asset Ledger", + "network": "eth", + "shortcut": "REAL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REBL": { + "address": "0x5F53f7A8075614b699Baad0bC2c899f4bAd8FBBF", + "links": { + "Homepage": "https://www.rebellious.io" + }, + "marketcap_usd": 589603, + "name": "Rebellious", + "network": "eth", + "shortcut": "REBL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RED": { + "address": "0x76960Dccd5a1fe799F7c29bE9F19ceB4627aEb2f", + "links": { + "Github": "https://github.com/red", + "Homepage": "https://ico.red-lang.org" + }, + "marketcap_usd": 764484, + "name": "Red Community Token", + "network": "eth", + "shortcut": "RED", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REDC": { + "address": "0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27", + "links": { + "Github": "https://github.com/Redcabllc", + "Homepage": "https://redcab.io" + }, + "marketcap_usd": 0, + "name": "RedCab", + "network": "eth", + "shortcut": "REDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REF": { + "address": "0x89303500a7Abfb178B274FD89F2469C264951e1f", + "links": { + "Homepage": "https://reftoken.io" + }, + "marketcap_usd": 335020, + "name": "RefToken", + "network": "eth", + "shortcut": "REF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REM": { + "address": "0x83984d6142934bb535793A82ADB0a46EF0F66B6d", + "links": { + "Homepage": "https://remme.io" + }, + "marketcap_usd": 3502653, + "name": "Remme", + "network": "eth", + "shortcut": "REM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REMI": { + "address": "0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64", + "links": { + "Github": "https://github.com/remiit", + "Homepage": "https://remiit.io" + }, + "marketcap_usd": 0, + "name": "REMI", + "network": "eth", + "shortcut": "REMI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REN": { + "address": "0x408e41876cCCDC0F92210600ef50372656052a38", + "links": { + "Github": "https://github.com/republicprotocol", + "Homepage": "https://republicprotocol.com" + }, + "marketcap_usd": 12920784, + "name": "Republic Token", + "network": "eth", + "shortcut": "REN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REP": { + "address": "0x1985365e9f78359a9B6AD760e32412f4a445E862", + "links": { + "Homepage": "https://augur.net" + }, + "marketcap_usd": 143627844, + "name": "Augur", + "network": "eth", + "shortcut": "REP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REQ": { + "address": "0x8f8221aFbB33998d8584A2B05749bA73c37a938a", + "links": { + "Homepage": "https://request.network" + }, + "marketcap_usd": 18016170, + "name": "Request Network", + "network": "eth", + "shortcut": "REQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:REX": { + "address": "0xf05a9382A4C3F29E2784502754293D88b835109C", + "links": { + "Github": "https://github.com/rexmls/RexToken", + "Homepage": "https://imbrex.io" + }, + "marketcap_usd": 215006, + "name": "imbrex", + "network": "eth", + "shortcut": "REX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RFR": { + "address": "0xd0929d411954c47438dc1d871dd6081F5C5e149c", + "links": { + "Homepage": "https://refereum.com" + }, + "marketcap_usd": 6388073, + "name": "Refereum", + "network": "eth", + "shortcut": "RFR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RHOC": { + "address": "0x168296bb09e24A88805CB9c33356536B980D3fC5", + "links": { + "Homepage": "https://www.rchain.coop" + }, + "marketcap_usd": 6870800, + "name": "RChain", + "network": "eth", + "shortcut": "RHOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RIPT": { + "address": "0xdd007278B667F6bef52fD0a4c23604aA1f96039a", + "links": { + "Github": "https://github.com/riptidecoin/riptide-coin", + "Homepage": "https://riptidecoin.com" + }, + "marketcap_usd": 0, + "name": "RiptideCoin", + "network": "eth", + "shortcut": "RIPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RIYA": { + "address": "0x0b1724cc9FDA0186911EF6a75949e9c0d3F0f2F3", + "links": { + "Homepage": "http://etheriya.com" + }, + "marketcap_usd": 24979, + "name": "Etheriya", + "network": "eth", + "shortcut": "RIYA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RLC": { + "address": "0x607F4C5BB672230e8672085532f7e901544a7375", + "links": { + "Homepage": "http://crowdsale.iex.ec" + }, + "marketcap_usd": 26465792, + "name": "IEx.ec", + "network": "eth", + "shortcut": "RLC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RLT": { + "address": "0xcCeD5B8288086BE8c38E23567e684C3740be4D48", + "links": { + "Github": "https://github.com/Smartroulette", + "Homepage": "https://smartplay.tech" + }, + "marketcap_usd": 63350, + "name": "RouletteToken", + "network": "eth", + "shortcut": "RLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RLTY": { + "address": "0xbe99B09709fc753b09BCf557A992F6605D5997B0", + "links": { + "Homepage": "http://www.smartrealty.io" + }, + "marketcap_usd": 0, + "name": "SMARTRealty", + "network": "eth", + "shortcut": "RLTY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RLX": { + "address": "0x4A42d2c580f83dcE404aCad18dab26Db11a1750E", + "links": { + "Homepage": "http://www.relex.io" + }, + "marketcap_usd": 261823, + "name": "Relex", + "network": "eth", + "shortcut": "RLX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RMESH": { + "address": "0x8D5682941cE456900b12d47ac06a88b47C764CE1", + "links": { + "Github": "https://github.com/rightmesh", + "Homepage": "https://www.rightmesh.io/" + }, + "marketcap_usd": 1982782, + "name": "RightMesh Token", + "network": "eth", + "shortcut": "RMESH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RNDR": { + "address": "0x0996bFb5D057faa237640E2506BE7B4f9C46de0B", + "links": { + "Homepage": "https://rendertoken.com" + }, + "marketcap_usd": 0, + "name": "Render Token", + "network": "eth", + "shortcut": "RNDR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RNT": { + "address": "0xFF603F43946A3A28DF5E6A73172555D8C8b02386", + "links": { + "Homepage": "https://www.oneroot.io/en" + }, + "marketcap_usd": 17733405, + "name": "OneRoot Network", + "network": "eth", + "shortcut": "RNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RNTB": { + "address": "0x1FE70bE734e473e5721ea57C8B5B01e6Caa52686", + "links": { + "Homepage": "https://bitrent.io" + }, + "marketcap_usd": 218742, + "name": "BitRent", + "network": "eth", + "shortcut": "RNTB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ROCK": { + "address": "0xA40106134c5bF4c41411554e6db99B95A15ed9d8", + "links": { + "Github": "https://github.com/rocketico", + "Homepage": "https://rocketico.io" + }, + "marketcap_usd": 0, + "name": "Rocket Token", + "network": "eth", + "shortcut": "ROCK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ROCK2": { + "address": "0xC16b542ff490e01fcc0DC58a60e1EFdc3e357cA6", + "links": { + "Homepage": "https://icerockmining.io" + }, + "marketcap_usd": 3401132, + "name": "ICE ROCK MINING", + "network": "eth", + "shortcut": "ROCK2", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ROCK2PAY": { + "address": "0x0E3de3B0E3D617FD8D1D8088639bA877feb4d742", + "links": { + "Homepage": "https://icerockmining.io" + }, + "marketcap_usd": 0, + "name": "ICE ROCK MINING", + "network": "eth", + "shortcut": "ROCK2PAY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ROK": { + "address": "0xc9De4B7F0C3d991e967158E4D4bFA4b51Ec0b114", + "links": { + "Homepage": "https://rockchain.org" + }, + "marketcap_usd": 0, + "name": "Rocketchain", + "network": "eth", + "shortcut": "ROK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RPL": { + "address": "0xB4EFd85c19999D84251304bDA99E90B92300Bd93", + "links": { + "Homepage": "https://www.rocketpool.net" + }, + "marketcap_usd": 0, + "name": "Rocket Pool", + "network": "eth", + "shortcut": "RPL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RTB": { + "address": "0xEC491c1088Eae992B7A214efB0a266AD0927A72A", + "links": { + "Homepage": "https://ab-chain.com" + }, + "marketcap_usd": 235132, + "name": "AB-Chain RTB", + "network": "eth", + "shortcut": "RTB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RTH": { + "address": "0x3FD8f39A962eFDA04956981C31AB89FAB5FB8bC8", + "links": { + "Homepage": "https://www.rotharium.io" + }, + "marketcap_usd": 3765563, + "name": "Rotharium", + "network": "eth", + "shortcut": "RTH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RTN": { + "address": "0x54b293226000ccBFC04DF902eEC567CB4C35a903", + "links": { + "Github": "https://github.com/Ridercoin2/RiderCoin/blob/master/README.md", + "Homepage": "http://ridertoken.com" + }, + "marketcap_usd": 0, + "name": "RiderToken", + "network": "eth", + "shortcut": "RTN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RUFF": { + "address": "0xf278c1CA969095ffddDED020290cf8B5C424AcE2", + "links": { + "Homepage": "http://ruffchain.com" + }, + "marketcap_usd": 11789360, + "name": "Ruff", + "network": "eth", + "shortcut": "RUFF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RUNE": { + "address": "0xdEE02D94be4929d26f67B64Ada7aCf1914007F10", + "links": { + "Github": "https://github.com/thorchain", + "Homepage": "https://thorchain.org" + }, + "marketcap_usd": 0, + "name": "Rune", + "network": "eth", + "shortcut": "RUNE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RVL": { + "address": "0x41f615E24fAbd2b097a320E9E6c1f448cb40521c", + "links": { + "Homepage": "https://www.r-evolutioncoin.com" + }, + "marketcap_usd": 0, + "name": "RVL", + "network": "eth", + "shortcut": "RVL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:RVT": { + "address": "0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244", + "links": { + "Homepage": "https://rivetzintl.com" + }, + "marketcap_usd": 1528042, + "name": "Rivetz", + "network": "eth", + "shortcut": "RVT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:S-A-PAT": { + "address": "0x1EC8fE51a9B6A3a6C427D17d9ECC3060fbc4a45c", + "links": { + "Homepage": "https://www.smartillions.ch" + }, + "marketcap_usd": 0, + "name": "S-A-PAT", + "network": "eth", + "shortcut": "S-A-PAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:S-ETH": { + "address": "0x3eb91D237e491E0DEE8582c402D85CB440fb6b54", + "links": { + "Homepage": "https://www.smartillions.ch" + }, + "marketcap_usd": 0, + "name": "S-ETH", + "network": "eth", + "shortcut": "S-ETH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SAC": { + "address": "0xabC1280A0187a2020cC675437aed400185F86Db6", + "links": { + "Homepage": "https://www.sachain.net" + }, + "marketcap_usd": 0, + "name": "Smart Application Chain", + "network": "eth", + "shortcut": "SAC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SALT": { + "address": "0x4156D3342D5c385a87D264F90653733592000581", + "links": { + "Homepage": "https://saltlending.com" + }, + "marketcap_usd": 11282908, + "name": "Salt Lending Token", + "network": "eth", + "shortcut": "SALT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SAN": { + "address": "0x7C5A0CE9267ED19B22F8cae653F198e3E8daf098", + "links": { + "Homepage": "https://santiment.net" + }, + "marketcap_usd": 31888813, + "name": "Santiment", + "network": "eth", + "shortcut": "SAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SCANDI": { + "address": "0x78fE18e41f436e1981a3a60D1557c8a7a9370461", + "links": { + "Homepage": "https://scandiweb.com" + }, + "marketcap_usd": 0, + "name": "Scandiweb Coin", + "network": "eth", + "shortcut": "SCANDI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SCL": { + "address": "0xd7631787B4dCc87b1254cfd1e5cE48e96823dEe8", + "links": { + "Homepage": "https://ico.nexus.social" + }, + "marketcap_usd": 341991, + "name": "SocialCoin", + "network": "eth", + "shortcut": "SCL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SCRL": { + "address": "0x24DCc881E7Dd730546834452F21872D5cb4b5293", + "links": { + "Homepage": "https://www.scroll.network" + }, + "marketcap_usd": 6075110, + "name": "SCRL", + "network": "eth", + "shortcut": "SCRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SEELE": { + "address": "0xB1eeF147028E9f480DbC5ccaA3277D417D1b85F0", + "links": { + "Homepage": "http://seele.pro" + }, + "marketcap_usd": 3779239, + "name": "Seele", + "network": "eth", + "shortcut": "SEELE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SENC": { + "address": "0xA13f0743951B4f6E3e3AA039f682E17279f52bc3", + "links": { + "Homepage": "https://www.sentinel-chain.org" + }, + "marketcap_usd": 706447, + "name": "Sentinel Chain", + "network": "eth", + "shortcut": "SENC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SENSE": { + "address": "0x6745fAB6801e376cD24F03572B9C9B0D4EdDDCcf", + "links": { + "Homepage": "https://sensay.it" + }, + "marketcap_usd": 2961096, + "name": "Sensay", + "network": "eth", + "shortcut": "SENSE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SENT": { + "address": "0xa44E5137293E855B1b7bC7E2C6f8cD796fFCB037", + "links": { + "Homepage": "https://sentinel.co" + }, + "marketcap_usd": 2583520, + "name": "SENTinel", + "network": "eth", + "shortcut": "SENT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SET": { + "address": "0xe06eda7435bA749b047380CEd49121ddE93334Ae", + "links": { + "Github": "https://github.com/SydEthereum/meetup-token#meetup-token", + "Homepage": "http://sydeth.com" + }, + "marketcap_usd": 0, + "name": "SET", + "network": "eth", + "shortcut": "SET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SEXY": { + "address": "0x98F5e9b7F0e33956C0443E81bF7deB8B5b1ed545", + "links": { + "Homepage": "http://sexytoken.co" + }, + "marketcap_usd": 0, + "name": "Sexy Token", + "network": "eth", + "shortcut": "SEXY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SGEL": { + "address": "0xa1ccc166faf0E998b3E33225A1A0301B1C86119D", + "links": { + "Homepage": "https://www.soerengelder.com" + }, + "marketcap_usd": 0, + "name": "SGELDER", + "network": "eth", + "shortcut": "SGEL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SGN": { + "address": "0xB2135AB9695a7678Dd590B1A996CB0f37BCB0718", + "links": { + "Homepage": "https://signals.network" + }, + "marketcap_usd": 343508, + "name": "Signals Network", + "network": "eth", + "shortcut": "SGN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SGR": { + "address": "0xCB5A05beF3257613E984C17DbcF039952B6d883F", + "links": { + "Homepage": "http://sugarexchange.io" + }, + "marketcap_usd": 75792, + "name": "Sugar Exchange", + "network": "eth", + "shortcut": "SGR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SHIP": { + "address": "0xe25b0BBA01Dc5630312B6A21927E578061A13f55", + "links": { + "Homepage": "https://www.shipchain.io" + }, + "marketcap_usd": 1384919, + "name": "ShipChain", + "network": "eth", + "shortcut": "SHIP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SHIT": { + "address": "0xEF2E9966eb61BB494E5375d5Df8d67B7dB8A780D", + "links": { + "Homepage": "https://www.shitcoin.io" + }, + "marketcap_usd": 0, + "name": "SHIT", + "network": "eth", + "shortcut": "SHIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SHP": { + "address": "0xEF2463099360a085f1f10b076Ed72Ef625497a06", + "links": { + "Homepage": "https://sharpe.capital" + }, + "marketcap_usd": 645435, + "name": "Sharpe Platform Token", + "network": "eth", + "shortcut": "SHP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SIFT": { + "address": "0x8a187D5285d316bcBC9ADafc08b51d70a0d8e000", + "links": { + "Homepage": "https://smartift.com" + }, + "marketcap_usd": 0, + "name": "SIFT", + "network": "eth", + "shortcut": "SIFT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SIG": { + "address": "0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792", + "links": { + "Github": "https://github.com/SpectivOfficial", + "Homepage": "https://spectivvr.com" + }, + "marketcap_usd": 440524, + "name": "Signal", + "network": "eth", + "shortcut": "SIG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKB": { + "address": "0x4aF328C52921706dCB739F25786210499169AFe6", + "links": { + "Homepage": "https://www.skb-coin.jp/en" + }, + "marketcap_usd": 3455114, + "name": "Sakura Bloom", + "network": "eth", + "shortcut": "SKB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKE": { + "address": "0x13DB74B3cf512F65C4b91683940B4f3955E05085", + "links": { + "Homepage": "http://superkeep.pro/" + }, + "marketcap_usd": 0, + "name": "Super Keep Token", + "network": "eth", + "shortcut": "SKE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKIN": { + "address": "0x2bDC0D42996017fCe214b21607a515DA41A9E0C5", + "links": { + "Github": "https://github.com/Steamtradenet/smart-contract", + "Homepage": "https://skincoin.org" + }, + "marketcap_usd": 68775, + "name": "SKIN", + "network": "eth", + "shortcut": "SKIN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKM": { + "address": "0xd99b8A7fA48E25Cce83B81812220A3E03Bf64e5f", + "links": { + "Homepage": "https://skrumble.network" + }, + "marketcap_usd": 2538642, + "name": "Skrumble Network", + "network": "eth", + "shortcut": "SKM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKO1": { + "address": "0x4994e81897a920c0FEA235eb8CEdEEd3c6fFF697", + "links": { + "Homepage": "http://www.sikoba.com" + }, + "marketcap_usd": 0, + "name": "Sikoba", + "network": "eth", + "shortcut": "SKO1", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKR": { + "address": "0x4c382F8E09615AC86E08CE58266CC227e7d4D913", + "links": { + "Homepage": "https://tokensale.skrilla.com" + }, + "marketcap_usd": 0, + "name": "SKR Token", + "network": "eth", + "shortcut": "SKR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SKYM": { + "address": "0x7297862B9670fF015192799cc849726c88bf1d77", + "links": { + "Github": "https://github.com/SoarEarth", + "Homepage": "https://soar.earth" + }, + "marketcap_usd": 0, + "name": "Skymap Token", + "network": "eth", + "shortcut": "SKYM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SLT": { + "address": "0x7A5fF295Dc8239d5C2374E4D894202aAF029Cab6", + "links": { + "Homepage": "http://smartlands.io" + }, + "marketcap_usd": 0, + "name": "Smartlands", + "network": "eth", + "shortcut": "SLT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SLY": { + "address": "0x7928c8aBF1F74eF9F96D4D0a44e3b4209d360785", + "links": { + "Github": "https://github.com/SELFLLERY", + "Homepage": "https://selfllery.com/" + }, + "marketcap_usd": 0, + "name": "Selfllery", + "network": "eth", + "shortcut": "SLY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SMS": { + "address": "0x39013F961c378f02C2b82A6E1d31E9812786FD9D", + "links": { + "Homepage": "https://smscoin.jp/en" + }, + "marketcap_usd": 270826, + "name": "Speed Mining Service", + "network": "eth", + "shortcut": "SMS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNC": { + "address": "0xF4134146AF2d511Dd5EA8cDB1C4AC88C57D60404", + "links": { + "Homepage": "https://suncontract.org" + }, + "marketcap_usd": 2210307, + "name": "SunContract", + "network": "eth", + "shortcut": "SNC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SND": { + "address": "0xf333b2Ace992ac2bBD8798bF57Bc65a06184afBa", + "links": { + "Homepage": "https://www.sandcoin.io" + }, + "marketcap_usd": 0, + "name": "Sandcoin", + "network": "eth", + "shortcut": "SND", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNG": { + "address": "0xcFD6Ae8BF13f42DE14867351eAff7A8A3b9FbBe7", + "links": { + "Github": "https://github.com/SinergiaBlockchain", + "Homepage": "https://sinergiablockchain.org/index-en.html" + }, + "marketcap_usd": 0, + "name": "SINERGIA", + "network": "eth", + "shortcut": "SNG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNGLS": { + "address": "0xaeC2E87E0A235266D9C5ADc9DEb4b2E29b54D009", + "links": { + "Homepage": "https://singulardtv.com" + }, + "marketcap_usd": 11353194, + "name": "SingularDTV", + "network": "eth", + "shortcut": "SNGLS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNIP": { + "address": "0x44F588aEeB8C44471439D1270B3603c66a9262F1", + "links": { + "Homepage": "https://www.snip.network" + }, + "marketcap_usd": 0, + "name": "SNIP", + "network": "eth", + "shortcut": "SNIP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNM": { + "address": "0x983F6d60db79ea8cA4eB9968C6aFf8cfA04B3c63", + "links": { + "Github": "https://github.com/sonm-io", + "Homepage": "https://sonm.com" + }, + "marketcap_usd": 7970275, + "name": "SONM", + "network": "eth", + "shortcut": "SNM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNOV": { + "address": "0xBDC5bAC39Dbe132B1E030e898aE3830017D7d969", + "links": { + "Homepage": "https://snovian.space" + }, + "marketcap_usd": 596997, + "name": "Snovian.Space", + "network": "eth", + "shortcut": "SNOV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNT": { + "address": "0x744d70FDBE2Ba4CF95131626614a1763DF805B9E", + "links": { + "Homepage": "https://status.im" + }, + "marketcap_usd": 74104603, + "name": "Status Network Token", + "network": "eth", + "shortcut": "SNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNTR": { + "address": "0x2859021eE7F2Cb10162E67F33Af2D22764B31aFf", + "links": { + "Homepage": "https://silentnotary.com" + }, + "marketcap_usd": 1023259, + "name": "Silent Notary", + "network": "eth", + "shortcut": "SNTR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SNX": { + "address": "0xC011A72400E58ecD99Ee497CF89E3775d4bd732F", + "links": { + "Github": "https://github.com/havven/havven", + "Homepage": "https://synthetix.io" + }, + "marketcap_usd": 3644038, + "name": "Synthetix Network Token", + "network": "eth", + "shortcut": "SNX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SOAR": { + "address": "0xD65960FAcb8E4a2dFcb2C2212cb2e44a02e2a57E", + "links": { + "Homepage": "http://soarlabs.org" + }, + "marketcap_usd": 1023779, + "name": "Soarcoin", + "network": "eth", + "shortcut": "SOAR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SOC": { + "address": "0x2d0E95bd4795D7aCe0da3C0Ff7b706a5970eb9D3", + "links": { + "Homepage": "https://www.allsportschain.com" + }, + "marketcap_usd": 6966120, + "name": "All Sports", + "network": "eth", + "shortcut": "SOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SOL": { + "address": "0x1F54638b7737193FFd86c19Ec51907A7c41755D8", + "links": { + "Homepage": "https://sola.foundation" + }, + "marketcap_usd": 43060, + "name": "Sola Token", + "network": "eth", + "shortcut": "SOL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SONIQ": { + "address": "0x1C62aCa2b7605Db3606eAcdA7Bc67A1857DDb8FF", + "links": { + "Homepage": "https://soniqproject.com" + }, + "marketcap_usd": 47975, + "name": "Soniq", + "network": "eth", + "shortcut": "SONIQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SOUL": { + "address": "0xBb1f24C0c1554b9990222f036b0AaD6Ee4CAec29", + "links": { + "Github": "https://github.com/cryptosoulgame", + "Homepage": "https://cryptosoul.io/" + }, + "marketcap_usd": 25580, + "name": "CryptoSoul", + "network": "eth", + "shortcut": "SOUL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPANK": { + "address": "0x42d6622deCe394b54999Fbd73D108123806f6a18", + "links": { + "Homepage": "https://spankchain.com" + }, + "marketcap_usd": 2204992, + "name": "SpankChain", + "network": "eth", + "shortcut": "SPANK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPARC": { + "address": "0x58bf7df57d9DA7113c4cCb49d8463D4908C735cb", + "links": { + "Homepage": "https://kingsds.network" + }, + "marketcap_usd": 0, + "name": "SPARC", + "network": "eth", + "shortcut": "SPARC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPARTA": { + "address": "0x24AEF3BF1A47561500f9430D74Ed4097C47F51F2", + "links": { + "Homepage": "https://www.spartaico.com" + }, + "marketcap_usd": 0, + "name": "SPARTA", + "network": "eth", + "shortcut": "SPARTA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPD": { + "address": "0x1dEa979ae76f26071870F824088dA78979eb91C8", + "links": { + "Homepage": "https://spindle.zone" + }, + "marketcap_usd": 1410757, + "name": "SPINDLE", + "network": "eth", + "shortcut": "SPD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPF": { + "address": "0x85089389C14Bd9c77FC2b8F0c3d1dC3363Bf06Ef", + "links": { + "Homepage": "https://sportyfi.io" + }, + "marketcap_usd": 153576, + "name": "Sportify", + "network": "eth", + "shortcut": "SPF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPN": { + "address": "0x20F7A3DdF244dc9299975b4Da1C39F8D5D75f05A", + "links": { + "Homepage": "https://www.sapien.network/" + }, + "marketcap_usd": 269208, + "name": "Sapien", + "network": "eth", + "shortcut": "SPN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SPX": { + "address": "0x05aAaA829Afa407D83315cDED1d45EB16025910c", + "links": { + "Homepage": "https://sp8de.com" + }, + "marketcap_usd": 289754, + "name": "Sp8de", + "network": "eth", + "shortcut": "SPX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SRN": { + "address": "0x68d57c9a1C35f63E2c83eE8e49A64e9d70528D25", + "links": { + "Github": "https://github.com/sirin-labs/crowdsale-smart-contract", + "Homepage": "https://sirinlabs.com" + }, + "marketcap_usd": 18014968, + "name": "Sirin Labs", + "network": "eth", + "shortcut": "SRN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SSH": { + "address": "0x6e2050CBFB3eD8A4d39b64cC9f47E711a03a5a89", + "links": { + "Homepage": "https://www.stream.space" + }, + "marketcap_usd": 0, + "name": "StreamShares", + "network": "eth", + "shortcut": "SSH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SSP": { + "address": "0x624d520BAB2E4aD83935Fa503fB130614374E850", + "links": { + "Homepage": "https://smartshare.vip/#" + }, + "marketcap_usd": 3054644, + "name": "Smartshare", + "network": "eth", + "shortcut": "SSP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STABIT": { + "address": "0x4A89cD486fA996ad50c0a63C35c78702f5422a50", + "links": { + "Homepage": "https://stabitcoin.com/" + }, + "marketcap_usd": 0, + "name": "StabitCoin", + "network": "eth", + "shortcut": "STABIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STAC": { + "address": "0x9a005c9a89BD72a4Bd27721E7a09A3c11D2b03C4", + "links": { + "Homepage": "https://coinstarter.com" + }, + "marketcap_usd": 324560, + "name": "Starter Coin", + "network": "eth", + "shortcut": "STAC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STACS": { + "address": "0x286708f069225905194673755F12359e6afF6FE1", + "links": { + "Homepage": "https://stacs.io" + }, + "marketcap_usd": 8894590, + "name": "STACS", + "network": "eth", + "shortcut": "STACS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STAR": { + "address": "0xF70a642bD387F94380fFb90451C2c81d4Eb82CBc", + "links": { + "Homepage": "http://starbase.co" + }, + "marketcap_usd": 550857, + "name": "Star Token", + "network": "eth", + "shortcut": "STAR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STB": { + "address": "0x09BcA6eBAb05Ee2ae945BE4edA51393d94Bf7b99", + "links": { + "Github": "https://github.com/stableproject/", + "Homepage": "https://stable.foundation" + }, + "marketcap_usd": 0, + "name": "STABLE Token", + "network": "eth", + "shortcut": "STB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STC": { + "address": "0x629aEe55ed49581C33ab27f9403F7992A289ffd5", + "links": { + "Github": "https://github.com/DimensionsNetwork", + "Homepage": "https://dimensions.network" + }, + "marketcap_usd": 0, + "name": "StrikeCoin Token", + "network": "eth", + "shortcut": "STC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STK": { + "address": "0xaE73B38d1c9A8b274127ec30160a4927C4d71824", + "links": { + "Homepage": "https://stktoken.com" + }, + "marketcap_usd": 1134341, + "name": "STK Token", + "network": "eth", + "shortcut": "STK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STN": { + "address": "0x599346779e90fc3F5F997b5ea715349820F91571", + "links": { + "Homepage": "https://saturn.network" + }, + "marketcap_usd": 0, + "name": "Saturn Network", + "network": "eth", + "shortcut": "STN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STORJ": { + "address": "0xB64ef51C888972c908CFacf59B47C1AfBC0Ab8aC", + "links": { + "Github": "https://github.com/Storj", + "Homepage": "https://storj.io" + }, + "marketcap_usd": 30062839, + "name": "STORJ", + "network": "eth", + "shortcut": "STORJ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STORM": { + "address": "0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433", + "links": { + "Homepage": "https://www.stormtoken.com" + }, + "marketcap_usd": 15878779, + "name": "Storm Token", + "network": "eth", + "shortcut": "STORM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STP": { + "address": "0xecd570bBf74761b960Fa04Cc10fe2c4e86FfDA36", + "links": { + "Github": "https://github.com/stashpayio", + "Homepage": "https://stashpay.io" + }, + "marketcap_usd": 0, + "name": "StashPay", + "network": "eth", + "shortcut": "STP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STQ": { + "address": "0x5c3a228510D246b78a3765C20221Cbf3082b44a4", + "links": { + "Github": "https://github.com/Storiqa/", + "Homepage": "https://storiqa.com" + }, + "marketcap_usd": 2726620, + "name": "Storiqa", + "network": "eth", + "shortcut": "STQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STR": { + "address": "0xBAE235823D7255D9D48635cEd4735227244Cd583", + "links": { + "Homepage": "https://staker.network" + }, + "marketcap_usd": 4653, + "name": "Staker", + "network": "eth", + "shortcut": "STR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STRC": { + "address": "0x46492473755e8dF960F8034877F61732D718CE96", + "links": { + "Github": "https://github.com/sprux/BackToEarth", + "Homepage": "https://backto.earth" + }, + "marketcap_usd": 0, + "name": "STRC", + "network": "eth", + "shortcut": "STRC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STU": { + "address": "0x0371A82e4A9d0A4312f3ee2Ac9c6958512891372", + "links": { + "Homepage": "https://bitjob.io" + }, + "marketcap_usd": 243149, + "name": "bitJob", + "network": "eth", + "shortcut": "STU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:STX": { + "address": "0x006BeA43Baa3f7A6f765F14f10A1a1b08334EF45", + "links": { + "Github": "https://github.com/stx-technologies/stox-token", + "Homepage": "https://www.stox.com" + }, + "marketcap_usd": 841356, + "name": "StoxToken", + "network": "eth", + "shortcut": "STX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SUB": { + "address": "0x12480E24eb5bec1a9D4369CaB6a80caD3c0A377A", + "links": { + "Homepage": "https://substratum.net" + }, + "marketcap_usd": 0, + "name": "Substratum", + "network": "eth", + "shortcut": "SUB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SUR": { + "address": "0xe120c1ECBfdFeA7F0A8f0Ee30063491E8c26fedf", + "links": { + "Homepage": "https://www.suretly.com" + }, + "marketcap_usd": 173687, + "name": "Suretly", + "network": "eth", + "shortcut": "SUR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SVD": { + "address": "0xbdEB4b83251Fb146687fa19D1C660F99411eefe3", + "links": { + "Homepage": "https://ico.savedroid.com" + }, + "marketcap_usd": 844799, + "name": "savedroid", + "network": "eth", + "shortcut": "SVD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SWFTC": { + "address": "0x0bb217E40F8a5Cb79Adf04E1aAb60E5abd0dfC1e", + "links": { + "Homepage": "http://www.swftcoin.com" + }, + "marketcap_usd": 3818929, + "name": "SwftCoin", + "network": "eth", + "shortcut": "SWFTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SWM": { + "address": "0x9e88613418cF03dCa54D6a2cf6Ad934A78C7A17A", + "links": { + "Github": "https://github.com/swarmfund", + "Homepage": "https://swarm.fund" + }, + "marketcap_usd": 5844853, + "name": "Swarm Fund Token", + "network": "eth", + "shortcut": "SWM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SWT": { + "address": "0xB9e7F8568e08d5659f5D29C4997173d84CdF2607", + "links": { + "Homepage": "http://swarm.city" + }, + "marketcap_usd": 954652, + "name": "Swarm City Token", + "network": "eth", + "shortcut": "SWT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SXDT": { + "address": "0x12B306fA98F4CbB8d4457FdFf3a0A0a56f07cCdf", + "links": { + "Homepage": "http://www.spectre.ai" + }, + "marketcap_usd": 15842715, + "name": "Spectre.ai D-Token", + "network": "eth", + "shortcut": "SXDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SXUT": { + "address": "0x2C82c73d5B34AA015989462b2948cd616a37641F", + "links": { + "Homepage": "http://www.spectre.ai" + }, + "marketcap_usd": 1746912, + "name": "Spectre.ai U-Token", + "network": "eth", + "shortcut": "SXUT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SYN": { + "address": "0x10B123FdDde003243199aaD03522065dC05827A0", + "links": { + "Homepage": "https://synapse.ai" + }, + "marketcap_usd": 0, + "name": "Synapse", + "network": "eth", + "shortcut": "SYN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:SenSatorI": { + "address": "0x4cA74185532DC1789527194e5B9c866dD33F4E82", + "links": { + "Homepage": "http://theglobalbitcoin.com" + }, + "marketcap_usd": 0, + "name": "SenSatorI Token", + "network": "eth", + "shortcut": "SenSatorI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TALAO": { + "address": "0x1D4cCC31dAB6EA20f461d329a0562C1c58412515", + "links": { + "Homepage": "https://www.talao.io" + }, + "marketcap_usd": 429517, + "name": "Talao", + "network": "eth", + "shortcut": "TALAO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TAU": { + "address": "0xc27A2F05fa577a83BA0fDb4c38443c0718356501", + "links": { + "Github": "https://github.com/lamden", + "Homepage": "https://www.lamden.io" + }, + "marketcap_usd": 3228790, + "name": "Lamden Tau", + "network": "eth", + "shortcut": "TAU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TBC2": { + "address": "0xFACCD5Fc83c3E4C3c1AC1EF35D15adf06bCF209C", + "links": { + "Github": "https://github.com/erc20club", + "Homepage": "https://www.tbc.erc20.club" + }, + "marketcap_usd": 0, + "name": "TBC2", + "network": "eth", + "shortcut": "TBC2", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TBT": { + "address": "0xAFe60511341a37488de25Bef351952562E31fCc1", + "links": { + "Github": "https://github.com/tbitbot", + "Homepage": "https://tbitbot.com" + }, + "marketcap_usd": 0, + "name": "TBitBot", + "network": "eth", + "shortcut": "TBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TBX": { + "address": "0x3A92bD396aEf82af98EbC0Aa9030D25a23B11C6b", + "links": { + "Homepage": "https://tokenbox.io" + }, + "marketcap_usd": 229254, + "name": "Tokenbox", + "network": "eth", + "shortcut": "TBX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TCA": { + "address": "0xfA0eF5E034CaE1AE752d59bdb8aDcDe37Ed7aB97", + "links": { + "Github": "https://github.com/TcandyChain", + "Homepage": "https://www.tcandy.io" + }, + "marketcap_usd": 0, + "name": "TangguoTao Token", + "network": "eth", + "shortcut": "TCA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TCH": { + "address": "0x9972A0F24194447E73a7e8b6CD26a52e02DDfAD5", + "links": { + "Homepage": "https://www.thorecash.com" + }, + "marketcap_usd": 15404, + "name": "Thore Cash", + "network": "eth", + "shortcut": "TCH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TDH": { + "address": "0x2a1dbabe65c595B0022e75208C34014139d5d357", + "links": { + "Homepage": "https://trustedhealth.io" + }, + "marketcap_usd": 0, + "name": "TrustedHealth", + "network": "eth", + "shortcut": "TDH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TEAM": { + "address": "0x1c79ab32C66aCAa1e9E81952B8AAa581B43e54E7", + "links": { + "Homepage": "https://tokenstars.com/team" + }, + "marketcap_usd": 44541, + "name": "TEAM (TokenStars)", + "network": "eth", + "shortcut": "TEAM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TEN": { + "address": "0xDD16eC0F66E54d453e6756713E533355989040E4", + "links": { + "Homepage": "https://www.tokenomy.com" + }, + "marketcap_usd": 10221997, + "name": "Tokenomy", + "network": "eth", + "shortcut": "TEN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TFD": { + "address": "0xE5F166c0D8872B68790061317BB6CcA04582C912", + "links": { + "Homepage": "https://ico.tefoodint.com" + }, + "marketcap_usd": 3693427, + "name": "TE-FOOD", + "network": "eth", + "shortcut": "TFD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TFL": { + "address": "0xa7f976C360ebBeD4465c2855684D1AAE5271eFa9", + "links": { + "Github": "https://github.com/TrueFlip", + "Homepage": "https://trueflip.io" + }, + "marketcap_usd": 1537515, + "name": "TrueFlip", + "network": "eth", + "shortcut": "TFL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TGAME": { + "address": "0xF8e06E4e4A80287FDCa5b02dcCecAa9D0954840F", + "links": { + "Homepage": "https://ico.truegame.io" + }, + "marketcap_usd": 859482, + "name": "Truegame", + "network": "eth", + "shortcut": "TGAME", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TGT": { + "address": "0xAc3Da587eac229C9896D919aBC235CA4Fd7f72c1", + "links": { + "Homepage": "https://www.tgtcoins.com" + }, + "marketcap_usd": 1029624, + "name": "Target Coin", + "network": "eth", + "shortcut": "TGT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:THETA": { + "address": "0x3883f5e181fccaF8410FA61e12b59BAd963fb645", + "links": { + "Homepage": "https://www.thetatoken.org/" + }, + "marketcap_usd": 132490532, + "name": "Theta Token", + "network": "eth", + "shortcut": "THETA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:THR": { + "address": "0x1Cb3209D45B2a60B7fBCA1cCDBF87f674237A4aa", + "links": { + "Homepage": "https://www.thorecoin.com" + }, + "marketcap_usd": 38448335, + "name": "ThoreCoin", + "network": "eth", + "shortcut": "THR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:THRT": { + "address": "0x4f27053F32edA8Af84956437Bc00e5fFa7003287", + "links": { + "Homepage": "https://ico.thrivelabs.io" + }, + "marketcap_usd": 660839, + "name": "Thrive Token", + "network": "eth", + "shortcut": "THRT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:THUG": { + "address": "0xfe7B915A0bAA0E79f85c5553266513F7C1c03Ed0", + "links": { + "Github": "https://github.com/THUGCOIN/THUGCoin", + "Homepage": "https://thugcoin.cash" + }, + "marketcap_usd": 0, + "name": "THUG", + "network": "eth", + "shortcut": "THUG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TIE": { + "address": "0x999967E2Ec8A74B7c8E9dB19E039d920B31d39D0", + "links": { + "Homepage": "https://ties.network" + }, + "marketcap_usd": 833330, + "name": "Ties.DB", + "network": "eth", + "shortcut": "TIE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TIG": { + "address": "0xEee2d00Eb7DEB8Dd6924187f5AA3496B7d06E62A", + "links": { + "Homepage": "https://www.tigereum.io" + }, + "marketcap_usd": 958522, + "name": "Tigereum", + "network": "eth", + "shortcut": "TIG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TIME": { + "address": "0x6531f133e6DeeBe7F2dcE5A0441aA7ef330B4e53", + "links": { + "Homepage": "https://chronobank.io" + }, + "marketcap_usd": 1283908, + "name": "Chronobank", + "network": "eth", + "shortcut": "TIME", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TIO": { + "address": "0x80BC5512561c7f85A3A9508c7df7901b370Fa1DF", + "links": { + "Homepage": "https://trade.io" + }, + "marketcap_usd": 0, + "name": "TIO", + "network": "eth", + "shortcut": "TIO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TIX": { + "address": "0xEa1f346faF023F974Eb5adaf088BbCdf02d761F4", + "links": { + "Homepage": "https://www.blocktix.io" + }, + "marketcap_usd": 1603221, + "name": "Blocktix", + "network": "eth", + "shortcut": "TIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TKA": { + "address": "0xdaE1Baf249964bc4b6aC98c3122f0e3E785fd279", + "links": { + "Homepage": "https://www.tokia.io" + }, + "marketcap_usd": 63607, + "name": "Tokia", + "network": "eth", + "shortcut": "TKA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TKLN": { + "address": "0x0675DAa94725A528b05A3A88635C03EA964BFA7E", + "links": { + "Homepage": "https://taklimakan.io" + }, + "marketcap_usd": 0, + "name": "Taklimakan Network", + "network": "eth", + "shortcut": "TKLN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TKN": { + "address": "0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a", + "links": { + "Homepage": "https://etherscan.io/token/TokenCard" + }, + "marketcap_usd": 20189578, + "name": "TokenCard", + "network": "eth", + "shortcut": "TKN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TLX": { + "address": "0xb3616550aBc8AF79c7A5902DEF9Efa3bC9A95200", + "links": { + "Homepage": "https://telexai.com" + }, + "marketcap_usd": 0, + "name": "Telex", + "network": "eth", + "shortcut": "TLX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TMT": { + "address": "0x3209f98BeBF0149B769ce26D71F7aEA8E435EfEa", + "links": { + "Homepage": "http://traxia.co" + }, + "marketcap_usd": 1812090, + "name": "TRAXIA", + "network": "eth", + "shortcut": "TMT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TNS": { + "address": "0xb0280743b44bF7db4B6bE482b2Ba7b75E5dA096C", + "links": { + "Homepage": "https://transcodium.com" + }, + "marketcap_usd": 127317, + "name": "Transcodium", + "network": "eth", + "shortcut": "TNS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TNT": { + "address": "0x08f5a9235B08173b7569F83645d2c7fB55e8cCD8", + "links": { + "Github": "https://github.com/tierion", + "Homepage": "https://tierion.com" + }, + "marketcap_usd": 7180145, + "name": "Tierion Network Token", + "network": "eth", + "shortcut": "TNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TOK": { + "address": "0x9a49f02e128a8E989b443a8f94843C0918BF45E7", + "links": { + "Homepage": "https://www.tokok.com/" + }, + "marketcap_usd": 0, + "name": "TOKOK", + "network": "eth", + "shortcut": "TOK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TOOR": { + "address": "0x8eb965ee9cCFBCE76c0a06264492c0afEfc2826d", + "links": { + "Github": "https://github.com/toorister/toorcoin", + "Homepage": "https://www.toorcoin.com" + }, + "marketcap_usd": 0, + "name": "ToorCoin", + "network": "eth", + "shortcut": "TOOR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRAC": { + "address": "0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F", + "links": { + "Homepage": "https://origintrail.io" + }, + "marketcap_usd": 7613830, + "name": "OriginTrail", + "network": "eth", + "shortcut": "TRAC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRAK": { + "address": "0x12759512D326303B45f1ceC8F7B6fd96F387778E", + "links": { + "Homepage": "http://www.trakinvest.com" + }, + "marketcap_usd": 249993, + "name": "TrakInvest", + "network": "eth", + "shortcut": "TRAK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRCN": { + "address": "0x566Fd7999B1Fc3988022bD38507A48F0bCf22c77", + "links": { + "Homepage": "http://www.therealcoinz.com" + }, + "marketcap_usd": 0, + "name": "The Real Coin", + "network": "eth", + "shortcut": "TRCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRCT": { + "address": "0x30ceCB5461A449A90081F5a5F55db4e048397BAB", + "links": { + "Homepage": "http://www.tracto.org" + }, + "marketcap_usd": 190733, + "name": "Tracto", + "network": "eth", + "shortcut": "TRCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRDT": { + "address": "0x33f90Dee07c6E8B9682dD20F73E6C358B2ED0f03", + "links": { + "Homepage": "https://www.tridentgroup.io" + }, + "marketcap_usd": 11366, + "name": "Trident Group", + "network": "eth", + "shortcut": "TRDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TRST": { + "address": "0xCb94be6f13A1182E4A4B6140cb7bf2025d28e41B", + "links": { + "Github": "https://github.com/WeTrustPlatform", + "Homepage": "https://www.wetrust.io" + }, + "marketcap_usd": 1124619, + "name": "WeTrust", + "network": "eth", + "shortcut": "TRST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TSW": { + "address": "0x6B87999bE87358065bBdE41e8a0fe0B7b1cd2514", + "links": { + "Homepage": "https://www.teslawatt.com" + }, + "marketcap_usd": 0, + "name": "TeslaWatt", + "network": "eth", + "shortcut": "TSW", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TTA": { + "address": "0xaaB606817809841E8b1168be8779Eeaf6744Ef64", + "links": { + "Github": "http://github.com/TendTechnologies", + "Homepage": "https://www.tend.swiss" + }, + "marketcap_usd": 0, + "name": "Tend Token", + "network": "eth", + "shortcut": "TTA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TTC": { + "address": "0x9389434852b94bbaD4c8AfEd5B7BDBc5Ff0c2275", + "links": { + "Homepage": "http://www.ttc.eco" + }, + "marketcap_usd": 10332561, + "name": "TTC Protocol", + "network": "eth", + "shortcut": "TTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TTU": { + "address": "0x9CDa8A60dd5AfA156c95Bd974428d91a0812e054", + "links": { + "Homepage": "https://tatatutoken.io" + }, + "marketcap_usd": 0, + "name": "TaTaTu", + "network": "eth", + "shortcut": "TTU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TUSD": { + "address": "0x0000000000085d4780B73119b644AE5ecd22b376", + "links": { + "Github": "https://github.com/trusttoken", + "Homepage": "https://www.trusttoken.com" + }, + "marketcap_usd": 205083249, + "name": "TrueUSD", + "network": "eth", + "shortcut": "TUSD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TWN": { + "address": "0x2eF1aB8a26187C58BB8aAeB11B2fC6D25C5c0716", + "links": { + "Homepage": "https://ico.theworldnews.net" + }, + "marketcap_usd": 0, + "name": "The World News", + "network": "eth", + "shortcut": "TWN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TWNKL": { + "address": "0xfbd0d1c77B501796A35D86cF91d65D9778EeE695", + "links": { + "Homepage": "https://www.rainbowcurrency.com/" + }, + "marketcap_usd": 0, + "name": "Twinkle", + "network": "eth", + "shortcut": "TWNKL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:TaaS": { + "address": "0xE7775A6e9Bcf904eb39DA2b68c5efb4F9360e08C", + "links": { + "Homepage": "https://taas.fund" + }, + "marketcap_usd": 2348685, + "name": "Token-as-a-Service", + "network": "eth", + "shortcut": "TaaS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UBT": { + "address": "0x8400D94A5cb0fa0D041a3788e395285d61c9ee5e", + "links": { + "Homepage": "https://unibright.io" + }, + "marketcap_usd": 3511766, + "name": "Unibright", + "network": "eth", + "shortcut": "UBT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UCASH": { + "address": "0x92e52a1A235d9A103D970901066CE910AAceFD37", + "links": { + "Homepage": "https://u.cash" + }, + "marketcap_usd": 1044090, + "name": "U.CASH", + "network": "eth", + "shortcut": "UCASH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UCN": { + "address": "0xAAf37055188Feee4869dE63464937e683d61b2a1", + "links": { + "Homepage": "https://uchain.world" + }, + "marketcap_usd": 447570, + "name": "UChain", + "network": "eth", + "shortcut": "UCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UFR": { + "address": "0xEA097A2b1dB00627B2Fa17460Ad260c016016977", + "links": { + "Homepage": "https://www.upfiring.com" + }, + "marketcap_usd": 1407247, + "name": "Upfiring", + "network": "eth", + "shortcut": "UFR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UKG": { + "address": "0x24692791Bc444c5Cd0b81e3CBCaba4b04Acd1F3B", + "links": { + "Github": "https://github.com/unikoingold/UnikoinGold-UKG-Contract", + "Homepage": "https://unikoingold.com" + }, + "marketcap_usd": 4516587, + "name": "UnikoinGold", + "network": "eth", + "shortcut": "UKG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UP": { + "address": "0x6Ba460AB75Cd2c56343b3517ffeBA60748654D26", + "links": { + "Homepage": "https://uptoken.org" + }, + "marketcap_usd": 3440201, + "name": "UpToken", + "network": "eth", + "shortcut": "UP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UPP": { + "address": "0xC86D054809623432210c107af2e3F619DcFbf652", + "links": { + "Homepage": "https://sentinelprotocol.io" + }, + "marketcap_usd": 3999482, + "name": "Sentinel Protocol", + "network": "eth", + "shortcut": "UPP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UQC": { + "address": "0xD01DB73E047855Efb414e6202098C4Be4Cd2423B", + "links": { + "Homepage": "https://uquidcoin.com" + }, + "marketcap_usd": 551210, + "name": "Uquid Coin", + "network": "eth", + "shortcut": "UQC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:URB": { + "address": "0x931684139f756C24eC0731E9F74FE50e5548dDeF", + "links": { + "Github": "https://github.com/urbitdata", + "Homepage": "https://urbitdata.io" + }, + "marketcap_usd": 0, + "name": "Urbit Data", + "network": "eth", + "shortcut": "URB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:USDC": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "links": { + "Github": "https://github.com/centrehq/centre-tokens", + "Homepage": "https://www.centre.io" + }, + "marketcap_usd": 239598774, + "name": "USD//Coin", + "network": "eth", + "shortcut": "USDC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:USDS": { + "address": "0xA4Bdb11dc0a2bEC88d24A3aa1E6Bb17201112eBe", + "links": { + "Homepage": "https://stably.io" + }, + "marketcap_usd": 5927321, + "name": "StableUSD", + "network": "eth", + "shortcut": "USDS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:USDT": { + "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "links": { + "Homepage": "https://tether.to" + }, + "marketcap_usd": 0, + "name": "USD Tether (erc20)", + "network": "eth", + "shortcut": "USDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UTK": { + "address": "0x70a72833d6bF7F508C8224CE59ea1Ef3d0Ea3A38", + "links": { + "Homepage": "https://utrust.com" + }, + "marketcap_usd": 13347657, + "name": "UTRUST", + "network": "eth", + "shortcut": "UTK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UTNP": { + "address": "0x9e3319636e2126e3c0bc9e3134AEC5e1508A46c7", + "links": { + "Github": "https://github.com/UniversaBlockchain/universa", + "Homepage": "https://www.universa.io" + }, + "marketcap_usd": 7620697, + "name": "Universa", + "network": "eth", + "shortcut": "UTNP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UTT": { + "address": "0x16f812Be7FfF02cAF662B85d5d58a5da6572D4Df", + "links": { + "Homepage": "https://uttoken.io" + }, + "marketcap_usd": 11632049, + "name": "United Traders Token", + "network": "eth", + "shortcut": "UTT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:UUU": { + "address": "0x3543638eD4a9006E4840B105944271Bcea15605D", + "links": { + "Homepage": "https://u.network/" + }, + "marketcap_usd": 1933066, + "name": "U Networks", + "network": "eth", + "shortcut": "UUU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VDG": { + "address": "0x57C75ECCc8557136D32619a191fBCDc88560d711", + "links": { + "Github": "https://github.com/VeriDocGlobal", + "Homepage": "https://www.veridocglobal.com/" + }, + "marketcap_usd": 0, + "name": "VeriDocGlobal", + "network": "eth", + "shortcut": "VDG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VDOC": { + "address": "0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa", + "links": { + "Github": "https://github.com/BlueBikeSolutions", + "Homepage": "https://www.dutyof.care/token-launch/" + }, + "marketcap_usd": 0, + "name": "Duty of Care Token", + "network": "eth", + "shortcut": "VDOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VEE": { + "address": "0x340D2bdE5Eb28c1eed91B2f790723E3B160613B7", + "links": { + "Github": "https://github.com/blockv", + "Homepage": "https://blockv.io" + }, + "marketcap_usd": 12220334, + "name": "BLOCKv", + "network": "eth", + "shortcut": "VEE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VEN": { + "address": "0xD850942eF8811f2A866692A623011bDE52a462C1", + "links": { + "Github": "https://github.com/vechain", + "Homepage": "https://www.vechain.com" + }, + "marketcap_usd": 0, + "name": "VeChain", + "network": "eth", + "shortcut": "VEN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VENUS": { + "address": "0xEbeD4fF9fe34413db8fC8294556BBD1528a4DAca", + "links": { + "Homepage": "http://venuscoin.net" + }, + "marketcap_usd": 0, + "name": "VENUS", + "network": "eth", + "shortcut": "VENUS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VERI": { + "address": "0x8f3470A7388c05eE4e7AF3d01D8C722b0FF52374", + "links": { + "Homepage": "https://veritas.veritaseum.com" + }, + "marketcap_usd": 36774696, + "name": "Veritaseum", + "network": "eth", + "shortcut": "VERI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIB": { + "address": "0x2C974B2d0BA1716E644c1FC59982a89DDD2fF724", + "links": { + "Homepage": "https://www.viberate.com" + }, + "marketcap_usd": 4834083, + "name": "Viberate", + "network": "eth", + "shortcut": "VIB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIBE": { + "address": "0xe8Ff5C9c75dEb346acAc493C463C8950Be03Dfba", + "links": { + "Homepage": "https://www.vibehub.io" + }, + "marketcap_usd": 10582937, + "name": "VIBE Coin", + "network": "eth", + "shortcut": "VIBE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIBEX": { + "address": "0x882448f83d90B2bf477Af2eA79327fDEA1335D93", + "links": { + "Github": "https://github.com/amack2u/VibeHub", + "Homepage": "https://vibehub.io/ico/" + }, + "marketcap_usd": 0, + "name": "VIBEX Exchange Token", + "network": "eth", + "shortcut": "VIBEX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIEW": { + "address": "0xF03f8D65BaFA598611C3495124093c56e8F638f0", + "links": { + "Github": "https://github.com/Viewly/", + "Homepage": "https://view.ly/" + }, + "marketcap_usd": 181500, + "name": "Viewly", + "network": "eth", + "shortcut": "VIEW", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIKKY": { + "address": "0xd2946be786F35c3Cc402C29b323647aBda799071", + "links": { + "Homepage": "https://ico.vikky.io" + }, + "marketcap_usd": 26310, + "name": "VikkyToken", + "network": "eth", + "shortcut": "VIKKY", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIT": { + "address": "0x23b75Bc7AaF28e2d6628C3f424B3882F8f072a3c", + "links": { + "Github": "https://github.com/ViceIndustryToken", + "Homepage": "https://vicetoken.com/" + }, + "marketcap_usd": 791776, + "name": "Vice Industry Token", + "network": "eth", + "shortcut": "VIT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VITE": { + "address": "0x1b793E49237758dBD8b752AFC9Eb4b329d5Da016", + "links": { + "Homepage": "https://www.vite.org" + }, + "marketcap_usd": 8279970, + "name": "Vite", + "network": "eth", + "shortcut": "VITE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VIU": { + "address": "0x519475b31653E46D20cD09F9FdcF3B12BDAcB4f5", + "links": { + "Github": "https://github.com/viuly", + "Homepage": "https://viuly.io" + }, + "marketcap_usd": 0, + "name": "Viuly", + "network": "eth", + "shortcut": "VIU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VLD": { + "address": "0x922aC473A3cC241fD3a0049Ed14536452D58D73c", + "links": { + "Github": "https://github.com/vetri-global/", + "Homepage": "https://vetri.global/" + }, + "marketcap_usd": 653383, + "name": "VETRI", + "network": "eth", + "shortcut": "VLD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VOC": { + "address": "0xc3bC9Eb71f75Ec439A6b6C8E8b746fCF5b62F703", + "links": { + "Github": "https://github.com/vormacoin", + "Homepage": "https://vormacoin.io/" + }, + "marketcap_usd": 0, + "name": "VORMACOIN", + "network": "eth", + "shortcut": "VOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VOISE": { + "address": "0x83eEA00D838f92dEC4D1475697B9f4D3537b56E3", + "links": { + "Homepage": "https://voise.it" + }, + "marketcap_usd": 310138, + "name": "Voise", + "network": "eth", + "shortcut": "VOISE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VSL": { + "address": "0x5c543e7AE0A1104f78406C340E9C64FD9fCE5170", + "links": { + "Homepage": "https://www.vdice.io" + }, + "marketcap_usd": 36916, + "name": "Vdice", + "network": "eth", + "shortcut": "VSL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VUU": { + "address": "0x4b96bf1feF93A216914fc843D81207A027ce52b3", + "links": { + "Github": "https://github.com/Vuulr", + "Homepage": "https://www.vuulr.com/" + }, + "marketcap_usd": 0, + "name": "Vuulr Token", + "network": "eth", + "shortcut": "VUU", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:VZT": { + "address": "0x9720b467a710382A232a32F540bDCed7d662a10B", + "links": { + "Homepage": "https://vezt.co" + }, + "marketcap_usd": 2607303, + "name": "Vezt", + "network": "eth", + "shortcut": "VZT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WAB": { + "address": "0x4BBbC57aF270138Ef2FF2C50DbfAD684e9E0e604", + "links": { + "Homepage": "https://wab.network" + }, + "marketcap_usd": 263363, + "name": "WABnetwork", + "network": "eth", + "shortcut": "WAB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WABI": { + "address": "0x286BDA1413a2Df81731D4930ce2F862a35A609fE", + "links": { + "Homepage": "https://taelpay.com" + }, + "marketcap_usd": 13379375, + "name": "Tael", + "network": "eth", + "shortcut": "WABI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WATT": { + "address": "0x829A4cA1303383F1082B6B1fB937116e4b3b5605", + "links": { + "Github": "https://github.com/workchainio", + "Homepage": "https://workchain.io/" + }, + "marketcap_usd": 0, + "name": "WorkChain App Token", + "network": "eth", + "shortcut": "WATT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WAX": { + "address": "0x39Bb259F66E1C59d5ABEF88375979b4D20D98022", + "links": { + "Github": "https://github.com/waxio", + "Homepage": "https://wax.io" + }, + "marketcap_usd": 44436966, + "name": "WAX", + "network": "eth", + "shortcut": "WAX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WBA": { + "address": "0x74951B677de32D596EE851A233336926e6A2cd09", + "links": { + "Homepage": "http://webetcrypto.io/wbc" + }, + "marketcap_usd": 0, + "name": "WeBetCrypto", + "network": "eth", + "shortcut": "WBA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WBTC": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "links": { + "Github": "https://github.com/WrappedBTC", + "Homepage": "https://wbtc.network" + }, + "marketcap_usd": 0, + "name": "Wrapped Bitcoin", + "network": "eth", + "shortcut": "WBTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WCN": { + "address": "0x8F936fE0faF0604c9C0Ef2406bde0A65365515d6", + "links": { + "Github": "https://github.com/WorldCoinNetwork", + "Homepage": "https://worldcoin.cash/" + }, + "marketcap_usd": 0, + "name": "WorldCoinNetwork", + "network": "eth", + "shortcut": "WCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WCT": { + "address": "0x6a0A97E47d15aAd1D132a1Ac79a480E3F2079063", + "links": { + "Homepage": "https://wepower.network" + }, + "marketcap_usd": 0, + "name": "WePower", + "network": "eth", + "shortcut": "WCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WEB": { + "address": "0x840fe75ABfaDc0F2d54037829571B2782e919ce4", + "links": { + "Homepage": "https://webcoin.today" + }, + "marketcap_usd": 111353, + "name": "Webcoin", + "network": "eth", + "shortcut": "WEB", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WETH": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "links": { + "Homepage": "https://weth.io" + }, + "marketcap_usd": 0, + "name": "WETH", + "network": "eth", + "shortcut": "WETH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WHEN": { + "address": "0xF4FE95603881D0e07954fD7605E0e9a916e42C44", + "links": { + "Github": "https://github.com/WhenHub", + "Homepage": "https://interface.whenhub.com" + }, + "marketcap_usd": 0, + "name": "WHEN Token", + "network": "eth", + "shortcut": "WHEN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WILD": { + "address": "0xD3C00772B24D997A812249ca637a921e81357701", + "links": { + "Github": "https://github.com/WildCryptoICO/Wild-Crypto-Token", + "Homepage": "http://www.wildcrypto.com" + }, + "marketcap_usd": 0, + "name": "WILD Token", + "network": "eth", + "shortcut": "WILD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WINGS": { + "address": "0x667088b212ce3d06a1b553a7221E1fD19000d9aF", + "links": { + "Homepage": "https://wings.ai" + }, + "marketcap_usd": 3922165, + "name": "WINGS", + "network": "eth", + "shortcut": "WINGS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WISH": { + "address": "0x1b22C32cD936cB97C28C5690a0695a82Abf688e6", + "links": { + "Homepage": "https://mywish.io" + }, + "marketcap_usd": 386682, + "name": "MyWish", + "network": "eth", + "shortcut": "WISH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WMK": { + "address": "0xBFbe5332f172d77811bC6c272844f3e54A7B23bB", + "links": { + "Github": "https://github.com/WemarkSource", + "Homepage": "https://www.wemark.com" + }, + "marketcap_usd": 0, + "name": "WemarkToken", + "network": "eth", + "shortcut": "WMK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WOC": { + "address": "0xF9D9702D031407F425a4412682fDc56b07d05262", + "links": { + "Github": "https://github.com/paneedesign/wallofchain", + "Homepage": "https://wallofchain.com" + }, + "marketcap_usd": 0, + "name": "WallOfChain", + "network": "eth", + "shortcut": "WOC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WPC": { + "address": "0x62087245087125d3DB5B9A3D713d78E7BBc31e54", + "links": { + "Homepage": "http://www.worldpeacecoin.io" + }, + "marketcap_usd": 0, + "name": "WorldPeaceCoin", + "network": "eth", + "shortcut": "WPC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WPR": { + "address": "0x4CF488387F035FF08c371515562CBa712f9015d4", + "links": { + "Homepage": "https://wepower.network" + }, + "marketcap_usd": 6935339, + "name": "WePower Token", + "network": "eth", + "shortcut": "WPR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WRC": { + "address": "0x72aDadb447784dd7AB1F472467750fC485e4cb2d", + "links": { + "Homepage": "https://worldcore.eu" + }, + "marketcap_usd": 137793, + "name": "Worldcore", + "network": "eth", + "shortcut": "WRC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WRK": { + "address": "0x71e8d74fF1C923E369D0e70DFb09866629C4DD35", + "links": { + "Github": "https://github.com/TMWorkCoin", + "Homepage": "https://workcoin.net/" + }, + "marketcap_usd": 0, + "name": "WorkCoin", + "network": "eth", + "shortcut": "WRK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WTC": { + "address": "0xb7cB1C96dB6B22b0D3d9536E0108d062BD488F74", + "links": { + "Homepage": "http://www.waltonchain.org" + }, + "marketcap_usd": 48233432, + "name": "Waltonchain", + "network": "eth", + "shortcut": "WTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WYS": { + "address": "0xd8950fDeaa10304B7A7Fd03a2FC66BC39f3c711a", + "links": { + "Github": "https://github.com/wysker", + "Homepage": "https://www.wystoken.org" + }, + "marketcap_usd": 0, + "name": "wystoken", + "network": "eth", + "shortcut": "WYS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:WYV": { + "address": "0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff", + "links": { + "Github": "https://github.com/ProjectWyvern", + "Homepage": "https://projectwyvern.com" + }, + "marketcap_usd": 0, + "name": "WyvernToken", + "network": "eth", + "shortcut": "WYV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:X8X": { + "address": "0x910Dfc18D6EA3D6a7124A6F8B5458F281060fa4c", + "links": { + "Homepage": "https://x8currency.com" + }, + "marketcap_usd": 924400, + "name": "X8X", + "network": "eth", + "shortcut": "X8X", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XAUR": { + "address": "0x4DF812F6064def1e5e029f1ca858777CC98D2D81", + "links": { + "Homepage": "http://www.xaurum.org" + }, + "marketcap_usd": 2970649, + "name": "Xaurum", + "network": "eth", + "shortcut": "XAUR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XBL": { + "address": "0x49AeC0752E68D0282Db544C677f6BA407BA17ED7", + "links": { + "Homepage": "https://billionairetoken.com" + }, + "marketcap_usd": 59718, + "name": "Billionaire Token", + "network": "eth", + "shortcut": "XBL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XBP": { + "address": "0x28dee01D53FED0Edf5f6E310BF8Ef9311513Ae40", + "links": { + "Github": "https://github.com/blitzpredict", + "Homepage": "https://www.blitzpredict.io" + }, + "marketcap_usd": 268734, + "name": "BlitzPredict", + "network": "eth", + "shortcut": "XBP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XCC": { + "address": "0x4d829f8C92a6691c56300D020c9e0dB984Cfe2BA", + "links": { + "Github": "https://github.com/coincrowd-it", + "Homepage": "https://www.coincrowd.it" + }, + "marketcap_usd": 0, + "name": "CoinCrowd", + "network": "eth", + "shortcut": "XCC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XCHF": { + "address": "0xB4272071eCAdd69d933AdcD19cA99fe80664fc08", + "links": { + "Homepage": "https://www.swisscryptotokens.ch/" + }, + "marketcap_usd": 0, + "name": "CryptoFranc", + "network": "eth", + "shortcut": "XCHF", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XCLR": { + "address": "0x1E26b3D07E57F453caE30F7DDd2f945f5bF3EF33", + "links": { + "Homepage": "https://clearcoin.co" + }, + "marketcap_usd": 229217, + "name": "ClearCoin", + "network": "eth", + "shortcut": "XCLR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XDCE": { + "address": "0x41AB1b6fcbB2fA9DCEd81aCbdeC13Ea6315F2Bf2", + "links": { + "Homepage": "https://www.xinfin.io" + }, + "marketcap_usd": 2101972, + "name": "XinFin Network", + "network": "eth", + "shortcut": "XDCE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XES": { + "address": "0xA017ac5faC5941f95010b12570B812C974469c2C", + "links": { + "Homepage": "https://proxeus.com" + }, + "marketcap_usd": 2788703, + "name": "Proxeus", + "network": "eth", + "shortcut": "XES", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XET": { + "address": "0x054C64741dBafDC19784505494029823D89c3b13", + "links": { + "Homepage": "https://www.atom-solutions.jp/en/xetchange.php" + }, + "marketcap_usd": 0, + "name": "ETERNAL TOKEN", + "network": "eth", + "shortcut": "XET", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XFS": { + "address": "0x16aF5bfb4Ae7E475b9aDC3Bf5Cb2f1E6a50d7940", + "links": { + "Homepage": "http://fanship.world/" + }, + "marketcap_usd": 0, + "name": "Fanship", + "network": "eth", + "shortcut": "XFS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XGG": { + "address": "0xf6b6AA0Ef0f5Edc2C1c5d925477F97eAF66303e7", + "links": { + "Github": "https://github.com/GoingGems", + "Homepage": "https://www.going-gems.com" + }, + "marketcap_usd": 0, + "name": "Going Gems", + "network": "eth", + "shortcut": "XGG", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XGM": { + "address": "0x533ef0984b2FAA227AcC620C67cce12aA39CD8CD", + "links": { + "Homepage": "https://www.xaurum.org/gamma" + }, + "marketcap_usd": 0, + "name": "XGM", + "network": "eth", + "shortcut": "XGM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XGT": { + "address": "0x30f4A3e0aB7a76733D8b60b89DD93c3D0b4c9E2f", + "links": { + "Github": "https://github.com/CryptogeneProject/CryptogeneToken", + "Homepage": "https://cryptogene.co" + }, + "marketcap_usd": 0, + "name": "XGT", + "network": "eth", + "shortcut": "XGT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XID": { + "address": "0xB110eC7B1dcb8FAB8dEDbf28f53Bc63eA5BEdd84", + "links": { + "Homepage": "https://sphereidentity.com" + }, + "marketcap_usd": 0, + "name": "Sphere Identity", + "network": "eth", + "shortcut": "XID", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XMCT": { + "address": "0x44449Fa4d607F807d1eD4a69ad942971728391C8", + "links": { + "Homepage": "http://xmedchain.com" + }, + "marketcap_usd": 198798, + "name": "XMED Chain", + "network": "eth", + "shortcut": "XMCT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XMX": { + "address": "0x0f8c45B896784A1E408526B9300519ef8660209c", + "links": { + "Homepage": "https://www.xmx.com" + }, + "marketcap_usd": 1975684, + "name": "XMax", + "network": "eth", + "shortcut": "XMX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XNK": { + "address": "0xBC86727E770de68B1060C91f6BB6945c73e10388", + "links": { + "Github": "https://github.com/InkProtocol/", + "Homepage": "https://paywithink.com" + }, + "marketcap_usd": 1037407, + "name": "Ink Protocol", + "network": "eth", + "shortcut": "XNK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XNN": { + "address": "0xab95E915c123fdEd5BDfB6325e35ef5515F1EA69", + "links": { + "Homepage": "https://xenon.network" + }, + "marketcap_usd": 173377, + "name": "XENON", + "network": "eth", + "shortcut": "XNN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XNT": { + "address": "0x572E6f318056ba0C5d47A422653113843D250691", + "links": { + "Homepage": "https://exante.eu" + }, + "marketcap_usd": 0, + "name": "XNT", + "network": "eth", + "shortcut": "XNT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XOV": { + "address": "0x153eD9CC1b792979d2Bde0BBF45CC2A7e436a5F9", + "links": { + "Homepage": "http://www.xov.io" + }, + "marketcap_usd": 317530, + "name": "XOVBank", + "network": "eth", + "shortcut": "XOV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XPA": { + "address": "0x90528aeb3a2B736B780fD1B6C478bB7E1d643170", + "links": { + "Homepage": "https://xpa.io" + }, + "marketcap_usd": 1554675, + "name": "XPA", + "network": "eth", + "shortcut": "XPA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XPAT": { + "address": "0xBB1fA4FdEB3459733bF67EbC6f893003fA976a82", + "links": { + "Github": "https://github.com/Bit-Nation/", + "Homepage": "https://bitnation.co" + }, + "marketcap_usd": 73159, + "name": "Pangea Arbitration Token", + "network": "eth", + "shortcut": "XPAT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XRL": { + "address": "0xB24754bE79281553dc1adC160ddF5Cd9b74361a4", + "links": { + "Homepage": "https://rialto.ai" + }, + "marketcap_usd": 0, + "name": "XRL", + "network": "eth", + "shortcut": "XRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XSC": { + "address": "0x0F513fFb4926ff82D7F60A05069047AcA295C413", + "links": { + "Homepage": "http://crowdstart.capital" + }, + "marketcap_usd": 0, + "name": "XSC", + "network": "eth", + "shortcut": "XSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:XYO": { + "address": "0x55296f69f40Ea6d20E478533C15A6B08B654E758", + "links": { + "Homepage": "https://xyo.network" + }, + "marketcap_usd": 14572952, + "name": "XYO", + "network": "eth", + "shortcut": "XYO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:YEE": { + "address": "0x922105fAd8153F516bCfB829f56DC097a0E1D705", + "links": { + "Homepage": "http://www.yeefoundation.com" + }, + "marketcap_usd": 1787851, + "name": "Yee Token", + "network": "eth", + "shortcut": "YEE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:YUP": { + "address": "0xD9A12Cde03a86E800496469858De8581D3A5353d", + "links": { + "Github": "https://github.com/crowdholding/", + "Homepage": "https://www.crowdholding.com" + }, + "marketcap_usd": 63117, + "name": "Crowdholding", + "network": "eth", + "shortcut": "YUP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZAP": { + "address": "0x6781a0F84c7E9e846DCb84A9a5bd49333067b104", + "links": { + "Github": "https://github.com/zapproject", + "Homepage": "https://zap.store" + }, + "marketcap_usd": 1940447, + "name": "ZAP", + "network": "eth", + "shortcut": "ZAP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZCN": { + "address": "0xb9EF770B6A5e12E45983C5D80545258aA38F3B78", + "links": { + "Homepage": "https://0chain.net" + }, + "marketcap_usd": 4345153, + "name": "0chain", + "network": "eth", + "shortcut": "ZCN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZCO": { + "address": "0x2008e3057BD734e10AD13c9EAe45Ff132aBc1722", + "links": { + "Homepage": "https://www.zebi.io" + }, + "marketcap_usd": 2859613, + "name": "Zebi", + "network": "eth", + "shortcut": "ZCO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZCS": { + "address": "0x7A41e0517a5ecA4FdbC7FbebA4D4c47B9fF6DC63", + "links": { + "Homepage": "https://zsc.io/" + }, + "marketcap_usd": 1521184, + "name": "Zeusshield", + "network": "eth", + "shortcut": "ZCS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZEUS": { + "address": "0xe7E4279b80D319EDe2889855135A22021baf0907", + "links": { + "Github": "https://github.com/ZEUS-coin", + "Homepage": "https://zeusfundme.com/" + }, + "marketcap_usd": 77576, + "name": "ZeusNetwork", + "network": "eth", + "shortcut": "ZEUS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZIL": { + "address": "0x05f4a42e251f2d52b8ed15E9FEdAacFcEF1FAD27", + "links": { + "Github": "https://github.com/zilliqa", + "Homepage": "https://www.zilliqa.com/" + }, + "marketcap_usd": 150090845, + "name": "Zilliqa", + "network": "eth", + "shortcut": "ZIL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZINC": { + "address": "0x4AaC461C86aBfA71e9d00d9a2cde8d74E4E1aeEa", + "links": { + "Homepage": "https://zinc.work" + }, + "marketcap_usd": 243083, + "name": "ZINC", + "network": "eth", + "shortcut": "ZINC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZIP": { + "address": "0xA9d2927d3a04309E008B6af6E2e282AE2952e7fD", + "links": { + "Homepage": "http://zipper.io" + }, + "marketcap_usd": 6024469, + "name": "Zipper", + "network": "eth", + "shortcut": "ZIP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZIPT": { + "address": "0xEDD7c94FD7B4971b916d15067Bc454b9E1bAD980", + "links": { + "Homepage": "https://zippie.org" + }, + "marketcap_usd": 460256, + "name": "Zippie", + "network": "eth", + "shortcut": "ZIPT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZIX": { + "address": "0xf3C092cA8CD6D3d4ca004Dc1d0f1fe8CcAB53599", + "links": { + "Github": "https://github.com/Zeexme", + "Homepage": "https://zeex.me" + }, + "marketcap_usd": 0, + "name": "ZIX", + "network": "eth", + "shortcut": "ZIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZLA": { + "address": "0xfd8971d5E8E1740cE2d0A84095fCA4De729d0c16", + "links": { + "Homepage": "https://zla.io" + }, + "marketcap_usd": 650387, + "name": "Zilla", + "network": "eth", + "shortcut": "ZLA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZMN": { + "address": "0x554FFc77F4251a9fB3c0E3590a6a205f8d4e067D", + "links": { + "Homepage": "https://www.zmine.com" + }, + "marketcap_usd": 1147057, + "name": "ZMINE", + "network": "eth", + "shortcut": "ZMN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZPR": { + "address": "0xb5b8F5616Fe42d5ceCA3e87F3FddbDd8F496d760", + "links": { + "Homepage": "https://zper.io" + }, + "marketcap_usd": 1153029, + "name": "ZPER", + "network": "eth", + "shortcut": "ZPR", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZRX": { + "address": "0xE41d2489571d322189246DaFA5ebDe1F4699F498", + "links": { + "Github": "https://github.com/0xProject", + "Homepage": "https://0xproject.com" + }, + "marketcap_usd": 145229516, + "name": "0x Project", + "network": "eth", + "shortcut": "ZRX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZST": { + "address": "0xe386B139Ed3715Ca4B18Fd52671bDcea1cdFE4b1", + "links": { + "Homepage": "http://zeus.exchange" + }, + "marketcap_usd": 0, + "name": "Zeus Exchange", + "network": "eth", + "shortcut": "ZST", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:ZXC": { + "address": "0x83e2BE8d114F9661221384B3a50d24B96a5653F5", + "links": { + "Homepage": "https://0xcert.org" + }, + "marketcap_usd": 941561, + "name": "0xcert Protocol Token", + "network": "eth", + "shortcut": "ZXC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:cV": { + "address": "0xdA6cb58A0D0C01610a29c5A65c303e13e885887C", + "links": { + "Github": "https://github.com/carVertical", + "Homepage": "https://www.carvertical.com" + }, + "marketcap_usd": 2369449, + "name": "carVertical", + "network": "eth", + "shortcut": "cV", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:eBCH": { + "address": "0xaFC39788c51f0c1Ff7B55317f3e70299e521Fff6", + "links": { + "Homepage": "https://ebitcoincash.io" + }, + "marketcap_usd": 0, + "name": "eBCH", + "network": "eth", + "shortcut": "eBCH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:eGAS": { + "address": "0xb53A96bcBdD9CF78dfF20BAB6C2be7bAec8f00f8", + "links": { + "Homepage": "http://www.ethgas.stream" + }, + "marketcap_usd": 0, + "name": "ETH GAS", + "network": "eth", + "shortcut": "eGAS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:eUSD": { + "address": "0x523630976eB6147621B5c31c781eBe2Ec2a806E0", + "links": { + "Github": "https://github.com/havven/havven", + "Homepage": "https://havven.io" + }, + "marketcap_usd": 0, + "name": "Ether-Backed USD Nomins (erc20)", + "network": "eth", + "shortcut": "eUSD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:eosDAC": { + "address": "0x7e9e431a0B8c4D532C745B1043c7FA29a48D4fBa", + "links": { + "Github": "https://github.com/eosdac", + "Homepage": "https://eosdac.io/" + }, + "marketcap_usd": 3913266, + "name": "eosDAC", + "network": "eth", + "shortcut": "eosDAC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:eth:sUSD": { + "address": "0x57Ab1E02fEE23774580C119740129eAC7081e9D3", + "links": { + "Github": "https://github.com/havven/", + "Homepage": "https://www.synthetix.io" + }, + "marketcap_usd": 1027691, + "name": "USD Synth (sUSD)", + "network": "eth", + "shortcut": "sUSD", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:ubq:CEFS": { + "address": "0x08533D6A06CE365298b12Ef92eb407cBA8Aa8273", + "links": { + "Homepage": "https://www.cryptopiashares.com" + }, + "marketcap_usd": 0, + "name": "CEFS", + "network": "ubq", + "shortcut": "CEFS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:ubq:QWARK": { + "address": "0x4b4899a10F3E507DB207b0ee2426029eFa168a67", + "links": { + "Homepage": "https://www.qwark.io" + }, + "marketcap_usd": 0, + "name": "QWARK", + "network": "ubq", + "shortcut": "QWARK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "erc20:ubq:RICKS": { + "address": "0x5e1715bB79805Bd672729760B3f7F34D6f485098", + "links": { + "Homepage": "https://picklericks.wixsite.com/picklewix" + }, + "marketcap_usd": 0, + "name": "RICKS", + "network": "ubq", + "shortcut": "RICKS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "erc20", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:AKA": { + "links": { + "Homepage": "https://akroma.io" + }, + "marketcap_usd": 143157, + "name": "Akroma", + "shortcut": "AKA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ATH": { + "links": { + "Homepage": "https://atheios.com" + }, + "marketcap_usd": 38135, + "name": "Atheios", + "shortcut": "ATH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ATS": { + "links": { + "Homepage": "https://artis.eco" + }, + "marketcap_usd": 0, + "name": "ARTIS sigma1", + "shortcut": "ATS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:CLO": { + "coinmarketcap_alias": "callisto-network", + "links": { + "Homepage": "https://callisto.network" + }, + "marketcap_usd": 6413273, + "name": "Callisto", + "shortcut": "CLO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:DXN": { + "links": { + "Homepage": "https://dexon.org" + }, + "marketcap_usd": 0, + "name": "DEXON", + "shortcut": "DXN", + "t1_enabled": "soon", + "t2_enabled": "soon", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:EGEM": { + "links": { + "Homepage": "https://egem.io" + }, + "marketcap_usd": 171587, + "name": "EtherGem", + "shortcut": "EGEM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ELLA": { + "links": { + "Homepage": "https://ellaism.org" + }, + "marketcap_usd": 132548, + "name": "Ellaism", + "shortcut": "ELLA", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:EOSC": { + "links": { + "Homepage": "https://eos-classic.io" + }, + "marketcap_usd": 0, + "name": "EOS Classic", + "shortcut": "EOSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ESN": { + "coinmarketcap_alias": "ethersocial", + "links": { + "Homepage": "https://ethersocial.org" + }, + "marketcap_usd": 564949, + "name": "Ethersocial Network", + "shortcut": "ESN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ETC": { + "links": { + "Homepage": "https://ethereumclassic.github.io" + }, + "marketcap_usd": 470061597, + "name": "Ethereum Classic", + "shortcut": "ETC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ETH": { + "links": { + "Homepage": "https://www.ethereum.org" + }, + "marketcap_usd": 14495006939, + "name": "Ethereum", + "shortcut": "ETH", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + }, + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ETHO": { + "links": { + "Homepage": "https://ether1.org" + }, + "marketcap_usd": 172086, + "name": "Ether-1", + "shortcut": "ETHO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:ETSC": { + "links": { + "Homepage": "https://ethereumsocial.kr" + }, + "marketcap_usd": 0, + "name": "Ethereum Social", + "shortcut": "ETSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:EXP": { + "links": { + "Homepage": "https://expanse.tech" + }, + "marketcap_usd": 916208, + "name": "Expanse", + "shortcut": "EXP", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:GO": { + "links": { + "Homepage": "https://gochain.io" + }, + "marketcap_usd": 16463894, + "name": "GoChain", + "shortcut": "GO", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:MIX": { + "links": { + "Homepage": "https://www.mix-blockchain.org" + }, + "marketcap_usd": 0, + "name": "Mix", + "shortcut": "MIX", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:MUSIC": { + "links": { + "Homepage": "https://musicoin.org" + }, + "marketcap_usd": 1003559, + "name": "Musicoin", + "shortcut": "MUSIC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:PIRL": { + "links": { + "Homepage": "https://pirl.io" + }, + "marketcap_usd": 1160719, + "name": "Pirl", + "shortcut": "PIRL", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:RBTC": { + "links": { + "Homepage": "https://www.rsk.co" + }, + "marketcap_usd": 0, + "name": "RSK", + "shortcut": "RBTC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:REOSC": { + "links": { + "Homepage": "https://reosc.io" + }, + "marketcap_usd": 0, + "name": "REOSC Ecosystem", + "shortcut": "REOSC", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:UBQ": { + "links": { + "Homepage": "https://ubiqsmart.com" + }, + "marketcap_usd": 8693248, + "name": "Ubiq", + "shortcut": "UBQ", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "eth:tATS": { + "links": { + "Homepage": "https://artis.eco" + }, + "marketcap_usd": 0, + "name": "ARTIS tau1", + "shortcut": "tATS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "MyCrypto", + "url": "https://mycrypto.com" + }, + { + "name": "MyEtherWallet", + "url": "https://www.myetherwallet.com" + } + ] + }, + "misc:ADA": { + "links": { + "Github": "https://github.com/input-output-hk/cardano-sl", + "Homepage": "https://www.cardano.org" + }, + "marketcap_usd": 1206434780, + "name": "Cardano", + "shortcut": "ADA", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "AdaLite", + "url": "https://adalite.io/app" + } + ] + }, + "misc:LSK": { + "links": { + "Github": "https://github.com/LiskHQ/lisk", + "Homepage": "https://lisk.io/" + }, + "marketcap_usd": 149144059, + "name": "Lisk", + "shortcut": "LSK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:MAID": { + "links": { + "Github": "https://github.com/maidsafe", + "Homepage": "https://maidsafe.net" + }, + "marketcap_usd": 54074042, + "name": "MaidSafeCoin", + "shortcut": "MAID", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:OMNI": { + "links": { + "Github": "https://github.com/OmniLayer", + "Homepage": "https://www.omnilayer.org" + }, + "marketcap_usd": 1508779, + "name": "Omni", + "shortcut": "OMNI", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:USDT": { + "links": { + "Homepage": "https://tether.to" + }, + "marketcap_usd": 2006477482, + "name": "Tether", + "shortcut": "USDT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:WAN": { + "links": { + "Github": "https://github.com/wanchain/go-wanchain", + "Homepage": "https://wanchain.org" + }, + "marketcap_usd": 45864710, + "name": "Wanchain", + "shortcut": "WAN", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:XLM": { + "links": { + "Github": "https://github.com/stellar/stellar-core", + "Homepage": "https://www.stellar.org" + }, + "marketcap_usd": 1723099605, + "name": "Stellar", + "shortcut": "XLM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Account Viewer", + "url": "https://trezor.io/stellar/" + } + ] + }, + "misc:XMR": { + "links": { + "Github": "https://github.com/monero-project/monero", + "Homepage": "https://getmonero.org" + }, + "marketcap_usd": 853333997, + "name": "Monero", + "shortcut": "XMR", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [] + }, + "misc:XRP": { + "links": { + "Github": "https://github.com/ripple/rippled", + "Homepage": "https://ripple.com" + }, + "marketcap_usd": 12995097542, + "name": "Ripple", + "shortcut": "XRP", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "Trezor Beta", + "url": "https://beta-wallet.trezor.io/next/" + } + ] + }, + "misc:XTZ": { + "links": { + "Github": "https://github.com/tezos/tezos", + "Homepage": "https://tezos.com" + }, + "marketcap_usd": 253013171, + "name": "Tezos", + "shortcut": "XTZ", + "t1_enabled": "no", + "t2_enabled": "yes", + "type": "coin", + "wallet": [ + { + "name": "SimpleStaking", + "url": "https://simplestaking.com" + } + ] + }, + "nem:BREEZE": { + "links": { + "Homepage": "https://breeze.chat" + }, + "marketcap_usd": 0, + "name": "Breeze Token", + "shortcut": "BREEZE", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + }, + "nem:DIM": { + "links": { + "Homepage": "https://www.dimcoin.io" + }, + "marketcap_usd": 3557489, + "name": "DIMCOIN", + "shortcut": "DIM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + }, + "nem:DIMTOK": { + "coinmarketcap_alias": "dimcoin", + "links": { + "Homepage": "https://www.dimcoin.io" + }, + "marketcap_usd": 3557489, + "name": "DIM TOKEN", + "shortcut": "DIMTOK", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + }, + "nem:PAC:CHS": { + "links": { + "Homepage": "https://pacnem.com" + }, + "marketcap_usd": 0, + "name": "PacNEM Score Tokens", + "shortcut": "PAC:CHS", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + }, + "nem:PAC:HRT": { + "links": { + "Homepage": "https://pacnem.com" + }, + "marketcap_usd": 0, + "name": "PacNEM Game Credits", + "shortcut": "PAC:HRT", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + }, + "nem:XEM": { + "links": { + "Homepage": "https://nem.io" + }, + "marketcap_usd": 414545095, + "name": "NEM", + "shortcut": "XEM", + "t1_enabled": "yes", + "t2_enabled": "yes", + "type": "mosaic", + "wallet": [ + { + "name": "Nano Wallet", + "url": "https://nem.io/downloads/" + } + ] + } + }, + "info": { + "marketcap_supported": "89.84 %", + "marketcap_usd": 121180711248, + "t1_coins": 1065, + "t2_coins": 1071, + "total_marketcap_usd": 134883264819, + "updated_at": 1552174312, + "updated_at_readable": "Sun Mar 10 00:31:52 2019" + } +} \ No newline at end of file diff --git a/common/defs/coins_details.override.json b/common/defs/coins_details.override.json new file mode 100644 index 000000000..9022aef0c --- /dev/null +++ b/common/defs/coins_details.override.json @@ -0,0 +1,24 @@ +{ + "bitcoin:DNR": { + "coinmarketcap_alias": "denarius-dnr" + }, + "erc20:eth:BAT": { + "name": "Basic Attention Token" + }, + "erc20:eth:LINK (Chainlink)": { + "name": "Chainlink" + }, + "erc20:eth:YUPIE": { + "hidden": 1, + "notes": "Replaced by YUP" + }, + "eth:CLO": { + "coinmarketcap_alias": "callisto-network" + }, + "eth:ESN": { + "coinmarketcap_alias": "ethersocial" + }, + "nem:DIMTOK": { + "coinmarketcap_alias": "dimcoin" + } +} diff --git a/common/defs/duplicity_overrides.json b/common/defs/duplicity_overrides.json new file mode 100644 index 000000000..b5e0a1162 --- /dev/null +++ b/common/defs/duplicity_overrides.json @@ -0,0 +1,11 @@ +{ + "erc20:eth:BTL (Battle)": true, + "erc20:eth:BTL (Bitlle)": true, + "erc20:eth:LINK Platform": true, + "erc20:eth:NXX": false, + "erc20:eth:Hdp": true, + "erc20:eth:Hdp.Ñ„": true, + "erc20:eth:USDT": false, + "erc20:eth:BNB": false, + "erc20:eth:QTUM": false +} diff --git a/common/defs/ethereum/aka.png b/common/defs/ethereum/aka.png new file mode 100644 index 000000000..a21f1c641 Binary files /dev/null and b/common/defs/ethereum/aka.png differ diff --git a/common/defs/ethereum/ath.png b/common/defs/ethereum/ath.png new file mode 100644 index 000000000..f4c0fb540 Binary files /dev/null and b/common/defs/ethereum/ath.png differ diff --git a/common/defs/ethereum/ats.png b/common/defs/ethereum/ats.png new file mode 100644 index 000000000..6250778d4 Binary files /dev/null and b/common/defs/ethereum/ats.png differ diff --git a/common/defs/ethereum/clo.png b/common/defs/ethereum/clo.png new file mode 100644 index 000000000..b711866b2 Binary files /dev/null and b/common/defs/ethereum/clo.png differ diff --git a/common/defs/ethereum/dxn.png b/common/defs/ethereum/dxn.png new file mode 100644 index 000000000..0ab919734 Binary files /dev/null and b/common/defs/ethereum/dxn.png differ diff --git a/common/defs/ethereum/egem.png b/common/defs/ethereum/egem.png new file mode 100644 index 000000000..1953bb923 Binary files /dev/null and b/common/defs/ethereum/egem.png differ diff --git a/common/defs/ethereum/ella.png b/common/defs/ethereum/ella.png new file mode 100644 index 000000000..3cc159634 Binary files /dev/null and b/common/defs/ethereum/ella.png differ diff --git a/common/defs/ethereum/eosc.png b/common/defs/ethereum/eosc.png new file mode 100644 index 000000000..760746344 Binary files /dev/null and b/common/defs/ethereum/eosc.png differ diff --git a/common/defs/ethereum/esn.png b/common/defs/ethereum/esn.png new file mode 100644 index 000000000..3286f8e17 Binary files /dev/null and b/common/defs/ethereum/esn.png differ diff --git a/common/defs/ethereum/etc.png b/common/defs/ethereum/etc.png new file mode 100644 index 000000000..fd044a90b Binary files /dev/null and b/common/defs/ethereum/etc.png differ diff --git a/common/defs/ethereum/eth.png b/common/defs/ethereum/eth.png new file mode 100644 index 000000000..c5d8de4b6 Binary files /dev/null and b/common/defs/ethereum/eth.png differ diff --git a/common/defs/ethereum/etho.png b/common/defs/ethereum/etho.png new file mode 100644 index 000000000..31eea1509 Binary files /dev/null and b/common/defs/ethereum/etho.png differ diff --git a/common/defs/ethereum/eti.png b/common/defs/ethereum/eti.png new file mode 100644 index 000000000..b448cd237 Binary files /dev/null and b/common/defs/ethereum/eti.png differ diff --git a/common/defs/ethereum/etsc.png b/common/defs/ethereum/etsc.png new file mode 100644 index 000000000..880e2c9d7 Binary files /dev/null and b/common/defs/ethereum/etsc.png differ diff --git a/common/defs/ethereum/exp.png b/common/defs/ethereum/exp.png new file mode 100644 index 000000000..a64fec8aa Binary files /dev/null and b/common/defs/ethereum/exp.png differ diff --git a/common/defs/ethereum/go.png b/common/defs/ethereum/go.png new file mode 100644 index 000000000..2fed4e377 Binary files /dev/null and b/common/defs/ethereum/go.png differ diff --git a/common/defs/ethereum/meta.png b/common/defs/ethereum/meta.png new file mode 100644 index 000000000..ad8f6d0fa Binary files /dev/null and b/common/defs/ethereum/meta.png differ diff --git a/common/defs/ethereum/mix.png b/common/defs/ethereum/mix.png new file mode 100644 index 000000000..b09b74351 Binary files /dev/null and b/common/defs/ethereum/mix.png differ diff --git a/common/defs/ethereum/music.png b/common/defs/ethereum/music.png new file mode 100644 index 000000000..86ef16a19 Binary files /dev/null and b/common/defs/ethereum/music.png differ diff --git a/common/defs/ethereum/networks.json b/common/defs/ethereum/networks.json new file mode 100644 index 000000000..b7ea8011d --- /dev/null +++ b/common/defs/ethereum/networks.json @@ -0,0 +1,301 @@ +[ + { + "chain": "eth", + "chain_id": 1, + "slip44": 60, + "shortcut": "ETH", + "name": "Ethereum", + "rskip60": false, + "url": "https://www.ethereum.org", + "blockbook": [ + "https://eth1.trezor.io", + "https://eth2.trezor.io" + ] + }, + { + "chain": "exp", + "chain_id": 2, + "slip44": 40, + "shortcut": "EXP", + "name": "Expanse", + "rskip60": false, + "url": "https://expanse.tech", + "blockbook": [] + }, + { + "chain": "rop", + "chain_id": 3, + "slip44": 1, + "shortcut": "tROP", + "name": "Ethereum Testnet Ropsten", + "rskip60": false, + "url": "https://www.ethereum.org", + "blockbook": [ + "https://ropsten1.trezor.io", + "https://ropsten2.trezor.io" + ] + }, + { + "chain": "rin", + "chain_id": 4, + "slip44": 1, + "shortcut": "tRIN", + "name": "Ethereum Testnet Rinkeby", + "rskip60": false, + "url": "https://www.ethereum.org", + "blockbook": [] + }, + { + "chain": "ubq", + "chain_id": 8, + "slip44": 108, + "shortcut": "UBQ", + "name": "Ubiq", + "rskip60": false, + "url": "https://ubiqsmart.com", + "blockbook": [] + }, + { + "chain": "meta", + "chain_id": 11, + "slip44": 916, + "shortcut": "META", + "name": "Metadium", + "rskip60": false, + "url": "https://metadium.com", + "blockbook": [] + }, + { + "chain": "etsc", + "chain_id": 28, + "slip44": 1128, + "shortcut": "ETSC", + "name": "Ethereum Social", + "rskip60": false, + "url": "https://ethereumsocial.kr", + "blockbook": [] + }, + { + "chain": "rsk", + "chain_id": 30, + "slip44": 137, + "shortcut": "RBTC", + "name": "RSK", + "rskip60": true, + "url": "https://www.rsk.co", + "blockbook": [] + }, + { + "chain": "trsk", + "chain_id": 31, + "slip44": 37310, + "shortcut": "tRBTC", + "name": "RSK Testnet", + "rskip60": true, + "url": "https://www.rsk.co", + "blockbook": [] + }, + { + "chain": "kov", + "chain_id": 42, + "slip44": 1, + "shortcut": "tKOV", + "name": "Ethereum Testnet Kovan", + "rskip60": false, + "url": "https://www.ethereum.org", + "blockbook": [] + }, + { + "chain": "go", + "chain_id": 60, + "slip44": 6060, + "shortcut": "GO", + "name": "GoChain", + "rskip60": false, + "url": "https://gochain.io", + "blockbook": [] + }, + { + "chain": "eti", + "chain_id": 101, + "slip44": 464, + "shortcut": "ETI", + "name": "EtherInc", + "rskip60": false, + "url": "https://einc.io", + "blockbook": [] + }, + { + "chain": "etc", + "chain_id": 61, + "slip44": 61, + "shortcut": "ETC", + "name": "Ethereum Classic", + "rskip60": false, + "url": "https://ethereumclassic.github.io", + "blockbook": [ + "https://etc1.trezor.io", + "https://etc2.trezor.io" + ] + }, + { + "chain": "tetc", + "chain_id": 62, + "slip44": 1, + "shortcut": "tETC", + "name": "Ethereum Classic Testnet", + "rskip60": false, + "url": "https://ethereumclassic.github.io", + "blockbook": [] + }, + { + "chain": "ella", + "chain_id": 64, + "slip44": 163, + "shortcut": "ELLA", + "name": "Ellaism", + "rskip60": false, + "url": "https://ellaism.org", + "blockbook": [] + }, + { + "chain": "mix", + "chain_id": 76, + "slip44": 76, + "shortcut": "MIX", + "name": "Mix", + "rskip60": false, + "url": "https://www.mix-blockchain.org", + "blockbook": [] + }, + { + "chain": "dxn", + "chain_id": 237, + "slip44": 237, + "shortcut": "DXN", + "name": "DEXON", + "rskip60": false, + "url": "https://dexon.org", + "blockbook": [] + }, + { + "chain": "clo", + "chain_id": 820, + "slip44": 820, + "shortcut": "CLO", + "name": "Callisto", + "rskip60": false, + "url": "https://callisto.network", + "blockbook": [] + }, + { + "chain": "ath", + "chain_id": 1620, + "slip44": 1620, + "shortcut": "ATH", + "name": "Atheios", + "rskip60": false, + "url": "https://atheios.com", + "blockbook": [] + }, + { + "chain": "eosc", + "chain_id": 2018, + "slip44": 2018, + "shortcut": "EOSC", + "name": "EOS Classic", + "rskip60": false, + "url": "https://eos-classic.io", + "blockbook": [] + }, + { + "chain": "egem", + "chain_id": 1987, + "slip44": 1987, + "shortcut": "EGEM", + "name": "EtherGem", + "rskip60": false, + "url": "https://egem.io", + "blockbook": [] + }, + { + "chain": "reosc", + "chain_id": 2894, + "slip44": 2894, + "shortcut": "REOSC", + "name": "REOSC Ecosystem", + "rskip60": false, + "url": "https://reosc.io", + "blockbook": [] + }, + { + "chain": "esn", + "chain_id": 31102, + "slip44": 31102, + "shortcut": "ESN", + "name": "Ethersocial Network", + "rskip60": false, + "url": "https://ethersocial.org", + "blockbook": [] + }, + { + "chain": "akroma", + "chain_id": 200625, + "slip44": 200625, + "shortcut": "AKA", + "name": "Akroma", + "rskip60": false, + "url": "https://akroma.io", + "blockbook": [] + }, + { + "chain": "artis_sigma1", + "chain_id": 246529, + "slip44": 246529, + "shortcut": "ATS", + "name": "ARTIS sigma1", + "rskip60": false, + "url": "https://artis.eco", + "blockbook": [] + }, + { + "chain": "artis_tau1", + "chain_id": 246785, + "slip44": 1, + "shortcut": "tATS", + "name": "ARTIS tau1", + "rskip60": false, + "url": "https://artis.eco", + "blockbook": [] + }, + { + "chain": "music", + "chain_id": 7762959, + "slip44": 184, + "shortcut": "MUSIC", + "name": "Musicoin", + "rskip60": false, + "url": "https://musicoin.org", + "blockbook": [] + }, + { + "chain": "etho", + "chain_id": 1313114, + "slip44": 1313114, + "shortcut": "ETHO", + "name": "Ether-1", + "rskip60": false, + "url": "https://ether1.org", + "blockbook": [] + }, + { + "chain": "pirl", + "chain_id": 3125659152, + "slip44": 164, + "shortcut": "PIRL", + "name": "Pirl", + "rskip60": false, + "url": "https://pirl.io", + "blockbook": [] + } +] diff --git a/common/defs/ethereum/pirl.png b/common/defs/ethereum/pirl.png new file mode 100644 index 000000000..290a94086 Binary files /dev/null and b/common/defs/ethereum/pirl.png differ diff --git a/common/defs/ethereum/rbtc.png b/common/defs/ethereum/rbtc.png new file mode 100644 index 000000000..2f186deaa Binary files /dev/null and b/common/defs/ethereum/rbtc.png differ diff --git a/common/defs/ethereum/reosc.png b/common/defs/ethereum/reosc.png new file mode 100644 index 000000000..bf1d87d24 Binary files /dev/null and b/common/defs/ethereum/reosc.png differ diff --git a/common/defs/ethereum/tats.png b/common/defs/ethereum/tats.png new file mode 100644 index 000000000..929f5c972 Binary files /dev/null and b/common/defs/ethereum/tats.png differ diff --git a/common/defs/ethereum/tetc.png b/common/defs/ethereum/tetc.png new file mode 100644 index 000000000..f561edb72 Binary files /dev/null and b/common/defs/ethereum/tetc.png differ diff --git a/common/defs/ethereum/tkov.png b/common/defs/ethereum/tkov.png new file mode 100644 index 000000000..c5d8de4b6 Binary files /dev/null and b/common/defs/ethereum/tkov.png differ diff --git a/common/defs/ethereum/tokens b/common/defs/ethereum/tokens new file mode 160000 index 000000000..08039ae14 --- /dev/null +++ b/common/defs/ethereum/tokens @@ -0,0 +1 @@ +Subproject commit 08039ae14a2338374905830585b51ca4871b948b diff --git a/common/defs/ethereum/trbtc.png b/common/defs/ethereum/trbtc.png new file mode 100644 index 000000000..d6dee614a Binary files /dev/null and b/common/defs/ethereum/trbtc.png differ diff --git a/common/defs/ethereum/trin.png b/common/defs/ethereum/trin.png new file mode 100644 index 000000000..c5d8de4b6 Binary files /dev/null and b/common/defs/ethereum/trin.png differ diff --git a/common/defs/ethereum/trop.png b/common/defs/ethereum/trop.png new file mode 100644 index 000000000..c5d8de4b6 Binary files /dev/null and b/common/defs/ethereum/trop.png differ diff --git a/common/defs/ethereum/ubq.png b/common/defs/ethereum/ubq.png new file mode 100644 index 000000000..b2730bcdd Binary files /dev/null and b/common/defs/ethereum/ubq.png differ diff --git a/common/defs/misc/ada.png b/common/defs/misc/ada.png new file mode 100644 index 000000000..0feaec433 Binary files /dev/null and b/common/defs/misc/ada.png differ diff --git a/common/defs/misc/eos.png b/common/defs/misc/eos.png new file mode 100644 index 000000000..08f12fd27 Binary files /dev/null and b/common/defs/misc/eos.png differ diff --git a/common/defs/misc/lsk.png b/common/defs/misc/lsk.png new file mode 100644 index 000000000..cd82b6537 Binary files /dev/null and b/common/defs/misc/lsk.png differ diff --git a/common/defs/misc/maid.png b/common/defs/misc/maid.png new file mode 100644 index 000000000..3b38762a7 Binary files /dev/null and b/common/defs/misc/maid.png differ diff --git a/common/defs/misc/misc.json b/common/defs/misc/misc.json new file mode 100644 index 000000000..c96f840da --- /dev/null +++ b/common/defs/misc/misc.json @@ -0,0 +1,217 @@ +[ + { + "name": "Lisk", + "shortcut": "LSK", + "slip44": 134, + "curve": "ed25519", + "decimals": 8, + "links": { + "Homepage": "https://lisk.io/", + "Github": "https://github.com/LiskHQ/lisk" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Stellar", + "slip44": 148, + "curve": "ed25519", + "shortcut": "XLM", + "decimals": 7, + "links": { + "Homepage": "https://www.stellar.org", + "Github": "https://github.com/stellar/stellar-core" + }, + "wallet": { + "Account Viewer": "https://trezor.io/stellar/" + }, + "blockchain_link": {} + }, + { + "name": "Monero", + "shortcut": "XMR", + "slip44": 128, + "curve": "ed25519", + "decimals": 12, + "links": { + "Homepage": "https://getmonero.org", + "Github": "https://github.com/monero-project/monero" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Ripple", + "shortcut": "XRP", + "slip44": 144, + "curve": "secp256k1", + "decimals": 6, + "links": { + "Homepage": "https://ripple.com", + "Github": "https://github.com/ripple/rippled" + }, + "wallet": { + "Trezor Beta": "https://beta-wallet.trezor.io/next/" + }, + "blockchain_link": { + "type": "ripple", + "url": [ + "wss://s1.ripple.com", + "wss://s-east.ripple.com", + "wss://s-west.ripple.com" + ] + } + }, + { + "name": "Ripple Testnet", + "shortcut": "tXRP", + "slip44": 1, + "curve": "secp256k1", + "decimals": 6, + "links": { + "Homepage": "https://ripple.com", + "Github": "https://github.com/ripple/rippled" + }, + "wallet": {}, + "blockchain_link": { + "type": "ripple", + "url": [ + "wss://s.altnet.rippletest.net" + ] + } + }, + { + "name": "Cardano", + "shortcut": "ADA", + "slip44": 1815, + "curve": "ed25519", + "decimals": 6, + "links": { + "Homepage": "https://www.cardano.org", + "Github": "https://github.com/input-output-hk/cardano-sl" + }, + "wallet": { + "AdaLite": "https://adalite.io/app" + }, + "blockchain_link": {} + }, + { + "name": "Tezos", + "shortcut": "XTZ", + "slip44": 1729, + "curve": "ed25519", + "decimals": 6, + "links": { + "Homepage": "https://tezos.com", + "Github": "https://github.com/tezos/tezos" + }, + "wallet": { + "SimpleStaking": "https://simplestaking.com" + }, + "blockchain_link": {} + }, + { + "name": "Ontology", + "shortcut": "ONT", + "slip44": 1024, + "curve": "nist256p1", + "decimals": 8, + "links": { + "Homepage": "https://ont.io", + "Github": "https://github.com/ontio/ontology" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Wanchain", + "shortcut": "WAN", + "slip44": 5718350, + "curve": "secp256k1", + "decimals": 18, + "links": { + "Homepage": "https://wanchain.org", + "Github": "https://github.com/wanchain/go-wanchain" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "EOS", + "shortcut": "EOS", + "slip44": 194, + "curve": "secp256k1", + "decimals": 4, + "links": { + "Homepage": "https://eos.io", + "Github": "https://github.com/EOSIO/eos" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Tron", + "shortcut": "TRX", + "slip44": 195, + "curve": "secp256k1", + "decimals": 6, + "links": { + "Homepage": "https://tron.network", + "Github": "https://github.com/tronprotocol/java-tron" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Omni", + "shortcut": "OMNI", + "slip44": 0, + "curve": "secp256k1", + "decimals": 2, + "links": { + "Homepage": "https://www.omnilayer.org", + "Github": "https://github.com/OmniLayer" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "MaidSafeCoin", + "shortcut": "MAID", + "slip44": 0, + "curve": "secp256k1", + "decimals": 8, + "links": { + "Homepage": "https://maidsafe.net", + "Github": "https://github.com/maidsafe" + }, + "wallet": {}, + "blockchain_link": {} + }, + { + "name": "Binance Chain", + "shortcut": "BNB", + "slip44": 714, + "curve": "secp256k1", + "decimals": 8, + "links": { + "Homepage": "https://binance.org" + }, + "wallet": { + "Trust Wallet": "https://trustwallet.com" + }, + "blockchain_link": {} + }, + { + "name": "Tether", + "shortcut": "USDT", + "slip44": 0, + "curve": "secp256k1", + "decimals": 2, + "links": { + "Homepage": "https://tether.to" + }, + "wallet": {}, + "blockchain_link": {} + } +] diff --git a/common/defs/misc/omni.png b/common/defs/misc/omni.png new file mode 100644 index 000000000..e7918e97d Binary files /dev/null and b/common/defs/misc/omni.png differ diff --git a/common/defs/misc/ont.png b/common/defs/misc/ont.png new file mode 100644 index 000000000..6ae125eb7 Binary files /dev/null and b/common/defs/misc/ont.png differ diff --git a/common/defs/misc/trx.png b/common/defs/misc/trx.png new file mode 100644 index 000000000..c785ae994 Binary files /dev/null and b/common/defs/misc/trx.png differ diff --git a/common/defs/misc/usdt.png b/common/defs/misc/usdt.png new file mode 100644 index 000000000..8bd76c344 Binary files /dev/null and b/common/defs/misc/usdt.png differ diff --git a/common/defs/misc/wan.png b/common/defs/misc/wan.png new file mode 100644 index 000000000..94bf1983f Binary files /dev/null and b/common/defs/misc/wan.png differ diff --git a/common/defs/misc/xlm.png b/common/defs/misc/xlm.png new file mode 100644 index 000000000..00b376ad4 Binary files /dev/null and b/common/defs/misc/xlm.png differ diff --git a/common/defs/misc/xmr.png b/common/defs/misc/xmr.png new file mode 100644 index 000000000..137746268 Binary files /dev/null and b/common/defs/misc/xmr.png differ diff --git a/common/defs/misc/xrp.png b/common/defs/misc/xrp.png new file mode 100644 index 000000000..5e27e68d3 Binary files /dev/null and b/common/defs/misc/xrp.png differ diff --git a/common/defs/misc/xtz.png b/common/defs/misc/xtz.png new file mode 100644 index 000000000..c4ec0c037 Binary files /dev/null and b/common/defs/misc/xtz.png differ diff --git a/common/defs/nem/nem_mosaics.json b/common/defs/nem/nem_mosaics.json new file mode 100644 index 000000000..d8fa3a4fb --- /dev/null +++ b/common/defs/nem/nem_mosaics.json @@ -0,0 +1,85 @@ +[ + { + "name": "NEM", + "ticker": "XEM", + "namespace": "nem", + "mosaic": "xem", + "divisibility": 6, + "links": { + "Homepage": "https://nem.io" + } + }, + { + "name": "DIMCOIN", + "ticker": "DIM", + "namespace": "dim", + "mosaic": "coin", + "divisibility": 6, + "levy": "MosaicLevy_Percentile", + "fee": 10, + "levy_namespace": "dim", + "levy_mosaic": "coin", + "networks": [ + 104 + ], + "links": { + "Homepage": "https://www.dimcoin.io" + } + }, + { + "name": "DIM TOKEN", + "ticker": "DIMTOK", + "namespace": "dim", + "mosaic": "token", + "divisibility": 6, + "networks": [ + 104 + ], + "links": { + "Homepage": "https://www.dimcoin.io" + } + }, + { + "name": "Breeze Token", + "ticker": "BREEZE", + "namespace": "breeze", + "mosaic": "breeze-token", + "divisibility": 0, + "networks": [ + 104 + ], + "links": { + "Homepage": "https://breeze.chat" + } + }, + { + "name": "PacNEM Game Credits", + "ticker": "PAC:HRT", + "namespace": "pacnem", + "mosaic": "heart", + "divisibility": 0, + "networks": [ + 104 + ], + "links": { + "Homepage": "https://pacnem.com" + } + }, + { + "name": "PacNEM Score Tokens", + "ticker": "PAC:CHS", + "namespace": "pacnem", + "mosaic": "cheese", + "divisibility": 6, + "levy": "MosaicLevy_Percentile", + "fee": 100, + "levy_namespace": "nem", + "levy_mosaic": "xem", + "networks": [ + 104 + ], + "links": { + "Homepage": "https://pacnem.com" + } + } +] diff --git a/common/defs/support.json b/common/defs/support.json new file mode 100644 index 000000000..4bd81189e --- /dev/null +++ b/common/defs/support.json @@ -0,0 +1,2795 @@ +{ + "connect": { + "supported": { + "bitcoin:ACM": true, + "bitcoin:AXE": true, + "bitcoin:BCH": true, + "bitcoin:BITC": true, + "bitcoin:BSD": true, + "bitcoin:BTC": true, + "bitcoin:BTCP": true, + "bitcoin:BTDX": true, + "bitcoin:BTG": true, + "bitcoin:BTX": true, + "bitcoin:CPC": true, + "bitcoin:DASH": true, + "bitcoin:DGB": true, + "bitcoin:DNR": true, + "bitcoin:DOGE": true, + "bitcoin:FJC": true, + "bitcoin:FLASH": true, + "bitcoin:FLO": true, + "bitcoin:FTC": true, + "bitcoin:GAME": true, + "bitcoin:GIN": true, + "bitcoin:KMD": true, + "bitcoin:KOTO": true, + "bitcoin:LTC": true, + "bitcoin:MEC": true, + "bitcoin:MONA": true, + "bitcoin:MUE": true, + "bitcoin:NIX": true, + "bitcoin:NMC": true, + "bitcoin:PIVX": true, + "bitcoin:PTC": true, + "bitcoin:RVN": true, + "bitcoin:TAZ": true, + "bitcoin:TBCH": true, + "bitcoin:TBTG": true, + "bitcoin:TEST": true, + "bitcoin:VIA": true, + "bitcoin:VTC": true, + "bitcoin:XMY": true, + "bitcoin:XPM": true, + "bitcoin:XSN": true, + "bitcoin:XZC": true, + "bitcoin:ZCL": true, + "bitcoin:ZEC": true, + "bitcoin:ZEN": true, + "bitcoin:tDASH": true, + "bitcoin:tLTC": true, + "bitcoin:tPIVX": true, + "bitcoin:tXZC": true, + "eth:AKA": true, + "eth:ATH": true, + "eth:CLO": true, + "eth:EGEM": true, + "eth:ELLA": true, + "eth:EOSC": true, + "eth:ESN": true, + "eth:ETC": true, + "eth:ETH": true, + "eth:ETHO": true, + "eth:ETSC": true, + "eth:EXP": true, + "eth:GO": true, + "eth:MIX": true, + "eth:MUSIC": true, + "eth:PIRL": true, + "eth:RBTC": true, + "eth:REOSC": true, + "eth:UBQ": true, + "eth:tETC": true, + "eth:tKOV": true, + "eth:tRBTC": true, + "eth:tRIN": true, + "eth:tROP": true, + "misc:ADA": true, + "misc:LSK": true, + "misc:XLM": true, + "misc:XRP": true, + "misc:XTZ": true, + "misc:tXRP": true, + "nem:BREEZE": true, + "nem:DIM": true, + "nem:DIMTOK": true, + "nem:PAC:CHS": true, + "nem:PAC:HRT": true, + "nem:XEM": true + }, + "unsupported": {} + }, + "trezor1": { + "supported": { + "bitcoin:ACM": "1.7.2", + "bitcoin:AXE": "1.7.3", + "bitcoin:BCH": "1.6.2", + "bitcoin:BITC": "1.7.2", + "bitcoin:BSD": "1.7.2", + "bitcoin:BTC": "1.5.2", + "bitcoin:BTCP": "1.6.2", + "bitcoin:BTDX": "1.7.2", + "bitcoin:BTG": "1.6.2", + "bitcoin:BTX": "1.7.1", + "bitcoin:DASH": "1.5.2", + "bitcoin:DCR": "1.6.2", + "bitcoin:DGB": "1.6.3", + "bitcoin:DNR": "1.7.1", + "bitcoin:DOGE": "1.5.2", + "bitcoin:FJC": "1.6.1", + "bitcoin:FLASH": "1.7.1", + "bitcoin:FLO": "1.7.2", + "bitcoin:FTC": "1.7.1", + "bitcoin:GAME": "1.7.1", + "bitcoin:GIN": "1.7.2", + "bitcoin:GRS": "1.6.2", + "bitcoin:KMD": "1.8.0", + "bitcoin:KOTO": "1.7.1", + "bitcoin:LTC": "1.5.2", + "bitcoin:MEC": "1.7.2", + "bitcoin:MONA": "1.6.0", + "bitcoin:MUE": "1.7.1", + "bitcoin:NIX": "1.7.2", + "bitcoin:NMC": "1.5.2", + "bitcoin:PIVX": "1.8.0", + "bitcoin:PTC": "1.7.1", + "bitcoin:QTUM": "1.8.1", + "bitcoin:RVN": "1.7.2", + "bitcoin:SMART": "1.7.1", + "bitcoin:TAZ": "1.6.2", + "bitcoin:TBCH": "1.6.2", + "bitcoin:TBTG": "1.7.1", + "bitcoin:TDCR": "1.6.2", + "bitcoin:TEST": "1.5.2", + "bitcoin:VIA": "1.6.2", + "bitcoin:VTC": "1.6.1", + "bitcoin:XMY": "1.7.1", + "bitcoin:XPM": "1.8.0", + "bitcoin:XSN": "1.8.0", + "bitcoin:XZC": "1.6.2", + "bitcoin:ZCL": "1.8.0", + "bitcoin:ZEC": "1.7.1", + "bitcoin:tDASH": "1.6.2", + "bitcoin:tGRS": "1.6.2", + "bitcoin:tLTC": "1.6.2", + "bitcoin:tPIVX": "1.8.0", + "bitcoin:tQTUM": "1.8.1", + "bitcoin:tSMART": "1.7.1", + "bitcoin:tXZC": "1.6.2", + "erc20:ella:MINING": "1.6.2", + "erc20:esn:DGT": "1.7.1", + "erc20:esn:TOPM": "1.7.1", + "erc20:etc:BEC": "1.6.2", + "erc20:etc:UNV": "1.7.1", + "erc20:eth:$FFC": "1.6.2", + "erc20:eth:$FXY": "1.6.2", + "erc20:eth:$HUR": "1.6.3", + "erc20:eth:$TEAK": "1.6.2", + "erc20:eth:0xBTC": "1.6.2", + "erc20:eth:1SG": "1.8.0", + "erc20:eth:1ST": "1.6.2", + "erc20:eth:1WO": "1.6.2", + "erc20:eth:22x": "1.8.0", + "erc20:eth:2DC": "1.6.2", + "erc20:eth:300": "1.6.2", + "erc20:eth:3LT": "1.6.3", + "erc20:eth:ABCH": "1.8.0", + "erc20:eth:ABT": "1.6.2", + "erc20:eth:ABYSS": "1.6.2", + "erc20:eth:ACC": "1.6.2", + "erc20:eth:ACE": "1.8.0", + "erc20:eth:ADB": "1.8.0", + "erc20:eth:ADH": "1.6.2", + "erc20:eth:ADI": "1.6.2", + "erc20:eth:ADL": "1.6.2", + "erc20:eth:ADST": "1.6.2", + "erc20:eth:ADT": "1.6.2", + "erc20:eth:ADX": "1.6.2", + "erc20:eth:AE": "1.6.2", + "erc20:eth:AFA": "1.8.0", + "erc20:eth:AGI": "1.6.2", + "erc20:eth:AI": "1.8.0", + "erc20:eth:AID": "1.8.0", + "erc20:eth:AION": "1.6.2", + "erc20:eth:AIR": "1.6.2", + "erc20:eth:AIX": "1.6.2", + "erc20:eth:AKC": "1.6.3", + "erc20:eth:ALCO": "1.6.2", + "erc20:eth:ALI": "1.8.0", + "erc20:eth:ALIS": "1.6.2", + "erc20:eth:ALTS": "1.6.2", + "erc20:eth:ALX": "1.8.0", + "erc20:eth:AMB": "1.6.2", + "erc20:eth:AMIS": "1.6.2", + "erc20:eth:AMLT": "1.6.3", + "erc20:eth:AMN": "1.6.2", + "erc20:eth:AMO": "1.6.2", + "erc20:eth:AMTC": "1.6.2", + "erc20:eth:ANT": "1.6.2", + "erc20:eth:AOA": "1.8.0", + "erc20:eth:APIS": "1.6.2", + "erc20:eth:APPC": "1.6.2", + "erc20:eth:APT": "1.6.2", + "erc20:eth:ARB": "1.8.0", + "erc20:eth:ARC": "1.6.2", + "erc20:eth:ARCT": "1.6.2", + "erc20:eth:ARD": "1.6.2", + "erc20:eth:ARN": "1.6.2", + "erc20:eth:ART": "1.6.2", + "erc20:eth:ARX": "1.6.2", + "erc20:eth:ARXT": "1.6.2", + "erc20:eth:ARY": "1.8.0", + "erc20:eth:AST": "1.6.2", + "erc20:eth:ASTRO": "1.8.0", + "erc20:eth:ATL": "1.6.2", + "erc20:eth:ATM": "1.8.0", + "erc20:eth:ATMI": "1.6.2", + "erc20:eth:ATT": "1.6.2", + "erc20:eth:ATTN": "1.6.2", + "erc20:eth:ATX": "1.8.0", + "erc20:eth:AUC": "1.8.0", + "erc20:eth:AURA": "1.8.0", + "erc20:eth:AUTO": "1.8.0", + "erc20:eth:AVA": "1.6.2", + "erc20:eth:AVT": "1.6.2", + "erc20:eth:AX1": "1.6.2", + "erc20:eth:AXP": "1.6.2", + "erc20:eth:AXPR": "1.6.3", + "erc20:eth:B2BX": "1.8.0", + "erc20:eth:BANCA": "1.8.0", + "erc20:eth:BANX": "1.6.2", + "erc20:eth:BAS": "1.8.0", + "erc20:eth:BAT": "1.6.2", + "erc20:eth:BAX": "1.8.0", + "erc20:eth:BBC": "1.8.0", + "erc20:eth:BBI": "1.8.0", + "erc20:eth:BBK": "1.6.2", + "erc20:eth:BBN": "1.8.0", + "erc20:eth:BBO": "1.8.0", + "erc20:eth:BC": "1.8.0", + "erc20:eth:BCBC": "1.6.2", + "erc20:eth:BCDN": "1.6.2", + "erc20:eth:BCDT": "1.6.2", + "erc20:eth:BCL": "1.6.2", + "erc20:eth:BCPT": "1.6.2", + "erc20:eth:BCV": "1.6.2", + "erc20:eth:BDG": "1.6.2", + "erc20:eth:BEE": "1.6.2", + "erc20:eth:BERRY": "1.6.2", + "erc20:eth:BET": "1.6.2", + "erc20:eth:BETHER": "1.6.3", + "erc20:eth:BETR": "1.6.2", + "erc20:eth:BEZ": "1.8.0", + "erc20:eth:BHPC": "1.8.0", + "erc20:eth:BHR": "1.8.0", + "erc20:eth:BIT": "1.8.0", + "erc20:eth:BITCAR": "1.8.0", + "erc20:eth:BITPARK": "1.8.0", + "erc20:eth:BIX": "1.8.0", + "erc20:eth:BKRx": "1.6.2", + "erc20:eth:BKX": "1.6.2", + "erc20:eth:BLN": "1.8.0", + "erc20:eth:BLT": "1.6.2", + "erc20:eth:BLUE": "1.6.2", + "erc20:eth:BLX (Bullion)": "1.6.2", + "erc20:eth:BLX (Iconomi)": "1.6.2", + "erc20:eth:BLZ": "1.6.2", + "erc20:eth:BMC": "1.6.2", + "erc20:eth:BMT": "1.6.2", + "erc20:eth:BMX": "1.6.2", + "erc20:eth:BNB": "1.6.2", + "erc20:eth:BNFT": "1.6.2", + "erc20:eth:BNN": "1.8.0", + "erc20:eth:BNT": "1.6.2", + "erc20:eth:BNTY": "1.6.2", + "erc20:eth:BOB": "1.6.2", + "erc20:eth:BON": "1.6.2", + "erc20:eth:BOP": "1.6.2", + "erc20:eth:BOU": "1.6.2", + "erc20:eth:BOUTS": "1.8.0", + "erc20:eth:BOXX": "1.8.0", + "erc20:eth:BPT": "1.6.2", + "erc20:eth:BQX": "1.6.2", + "erc20:eth:BRAT": "1.6.2", + "erc20:eth:BRD": "1.6.2", + "erc20:eth:BRLN": "1.8.0", + "erc20:eth:BSDC": "1.6.2", + "erc20:eth:BST": "1.6.2", + "erc20:eth:BTCA": "1.8.0", + "erc20:eth:BTCE": "1.6.2", + "erc20:eth:BTCL": "1.6.2", + "erc20:eth:BTCONE": "1.8.0", + "erc20:eth:BTCR": "1.8.0", + "erc20:eth:BTE": "1.6.2", + "erc20:eth:BTH": "1.6.2", + "erc20:eth:BTHR": "1.6.2", + "erc20:eth:BTK": "1.6.2", + "erc20:eth:BTM": "1.6.2", + "erc20:eth:BTO": "1.8.0", + "erc20:eth:BTQ": "1.6.2", + "erc20:eth:BTRN": "1.8.0", + "erc20:eth:BTT": "1.6.2", + "erc20:eth:BTTX": "1.6.2", + "erc20:eth:BTU": "1.8.0", + "erc20:eth:BTZ": "1.6.3", + "erc20:eth:BUC": "1.6.2", + "erc20:eth:BWX": "1.8.0", + "erc20:eth:BZ": "1.8.0", + "erc20:eth:BZNT": "1.8.0", + "erc20:eth:BeerCoin": "1.6.2", + "erc20:eth:C20": "1.6.2", + "erc20:eth:C8": "1.6.2", + "erc20:eth:CAG": "1.6.2", + "erc20:eth:CAN": "1.6.2", + "erc20:eth:CAPP": "1.8.0", + "erc20:eth:CARB": "1.6.2", + "erc20:eth:CARCO": "1.6.2", + "erc20:eth:CARE": "1.6.2", + "erc20:eth:CAT (BitClave)": "1.6.2", + "erc20:eth:CAT (BlockCAT)": "1.8.0", + "erc20:eth:CBC": "1.8.0", + "erc20:eth:CBIX": "1.6.3", + "erc20:eth:CBM": "1.8.0", + "erc20:eth:CBT": "1.8.0", + "erc20:eth:CC3": "1.6.2", + "erc20:eth:CCC (CryptoCrashCourse)": "1.6.2", + "erc20:eth:CCC (ICONOMI)": "1.6.2", + "erc20:eth:CCCX": "1.8.0", + "erc20:eth:CCLC": "1.6.2", + "erc20:eth:CCO": "1.8.0", + "erc20:eth:CCS": "1.6.2", + "erc20:eth:CCT": "1.8.0", + "erc20:eth:CDL": "1.6.2", + "erc20:eth:CDT": "1.6.2", + "erc20:eth:CEEK": "1.6.2", + "erc20:eth:CENNZ": "1.8.0", + "erc20:eth:CET": "1.6.3", + "erc20:eth:CFC": "1.6.3", + "erc20:eth:CFI": "1.6.2", + "erc20:eth:CFTY": "1.6.2", + "erc20:eth:CHP": "1.8.0", + "erc20:eth:CHSB": "1.6.2", + "erc20:eth:CHX": "1.8.0", + "erc20:eth:CIYA": "1.8.0", + "erc20:eth:CJT": "1.8.0", + "erc20:eth:CK": "1.6.2", + "erc20:eth:CL": "1.8.0", + "erc20:eth:CLB": "1.6.2", + "erc20:eth:CLL": "1.6.2", + "erc20:eth:CLN": "1.6.2", + "erc20:eth:CLP": "1.6.2", + "erc20:eth:CMBT": "1.6.2", + "erc20:eth:CMC": "1.6.2", + "erc20:eth:CMCT": "1.8.0", + "erc20:eth:CMT": "1.6.2", + "erc20:eth:CNB": "1.6.2", + "erc20:eth:CND": "1.6.2", + "erc20:eth:CNN": "1.8.0", + "erc20:eth:CO2": "1.6.2", + "erc20:eth:CO2Bit": "1.6.2", + "erc20:eth:COB": "1.6.2", + "erc20:eth:COFI": "1.6.2", + "erc20:eth:COIL": "1.6.2", + "erc20:eth:CORI": "1.6.3", + "erc20:eth:COSM": "1.8.0", + "erc20:eth:COV": "1.6.2", + "erc20:eth:CPAY": "1.8.0", + "erc20:eth:CPEX": "1.6.2", + "erc20:eth:CPLO": "1.8.0", + "erc20:eth:CPY": "1.6.2", + "erc20:eth:CR7": "1.6.2", + "erc20:eth:CRB": "1.6.2", + "erc20:eth:CRBT": "1.8.0", + "erc20:eth:CRC": "1.8.0", + "erc20:eth:CRED": "1.6.2", + "erc20:eth:CREDO": "1.6.2", + "erc20:eth:CRGO": "1.6.3", + "erc20:eth:CRMT": "1.6.3", + "erc20:eth:CRPT": "1.6.2", + "erc20:eth:CRT": "1.6.2", + "erc20:eth:CS": "1.8.0", + "erc20:eth:CSNO": "1.8.0", + "erc20:eth:CST": "1.8.0", + "erc20:eth:CTF": "1.6.2", + "erc20:eth:CTG": "1.6.2", + "erc20:eth:CTGC": "1.6.3", + "erc20:eth:CTL": "1.6.2", + "erc20:eth:CTR": "1.8.0", + "erc20:eth:CTT": "1.6.2", + "erc20:eth:CTX": "1.6.2", + "erc20:eth:CTXC": "1.8.0", + "erc20:eth:CVC": "1.6.2", + "erc20:eth:CVT": "1.8.0", + "erc20:eth:CXC": "1.6.2", + "erc20:eth:CXO": "1.6.2", + "erc20:eth:CYFM": "1.6.3", + "erc20:eth:CYMT": "1.8.0", + "erc20:eth:CZR": "1.8.0", + "erc20:eth:CryptoCarbon": "1.6.2", + "erc20:eth:DAB": "1.6.2", + "erc20:eth:DACS": "1.8.0", + "erc20:eth:DADI": "1.6.2", + "erc20:eth:DAI": "1.8.0", + "erc20:eth:DALC": "1.6.2", + "erc20:eth:DAN": "1.6.2", + "erc20:eth:DAO": "1.6.2", + "erc20:eth:DAT": "1.6.2", + "erc20:eth:DATA": "1.8.0", + "erc20:eth:DATABroker": "1.6.2", + "erc20:eth:DATX": "1.8.0", + "erc20:eth:DAV": "1.6.2", + "erc20:eth:DAX": "1.8.0", + "erc20:eth:DAXT": "1.6.2", + "erc20:eth:DAY": "1.6.2", + "erc20:eth:DBET": "1.8.0", + "erc20:eth:DCA": "1.6.2", + "erc20:eth:DCC": "1.6.3", + "erc20:eth:DCL": "1.6.2", + "erc20:eth:DCN": "1.6.2", + "erc20:eth:DDF": "1.6.2", + "erc20:eth:DEB": "1.6.2", + "erc20:eth:DEEZ": "1.6.2", + "erc20:eth:DELTA": "1.8.0", + "erc20:eth:DENT": "1.6.2", + "erc20:eth:DEW": "1.8.0", + "erc20:eth:DEX": "1.8.0", + "erc20:eth:DGD": "1.8.0", + "erc20:eth:DGPT": "1.6.2", + "erc20:eth:DGS": "1.6.3", + "erc20:eth:DGTX": "1.6.3", + "erc20:eth:DGX": "1.6.2", + "erc20:eth:DGX1": "1.6.3", + "erc20:eth:DICE": "1.6.2", + "erc20:eth:DIP": "1.6.3", + "erc20:eth:DIT": "1.8.0", + "erc20:eth:DIVX": "1.6.2", + "erc20:eth:DKP": "1.6.2", + "erc20:eth:DLT": "1.6.2", + "erc20:eth:DMT": "1.6.2", + "erc20:eth:DNA": "1.8.0", + "erc20:eth:DNT": "1.6.2", + "erc20:eth:DNX": "1.6.2", + "erc20:eth:DOCK": "1.8.0", + "erc20:eth:DOR": "1.8.0", + "erc20:eth:DOV": "1.8.0", + "erc20:eth:DPP": "1.6.2", + "erc20:eth:DREAM": "1.8.0", + "erc20:eth:DRGN": "1.6.2", + "erc20:eth:DRPU": "1.8.0", + "erc20:eth:DRT": "1.8.0", + "erc20:eth:DRVH": "1.6.3", + "erc20:eth:DSC": "1.6.2", + "erc20:eth:DSCP": "1.7.1", + "erc20:eth:DST": "1.8.0", + "erc20:eth:DTH": "1.6.2", + "erc20:eth:DTR": "1.6.2", + "erc20:eth:DTRC": "1.8.0", + "erc20:eth:DTT": "1.6.2", + "erc20:eth:DXT": "1.8.0", + "erc20:eth:Devcon2 Token": "1.6.2", + "erc20:eth:E4ROW": "1.8.0", + "erc20:eth:EAGLE": "1.6.2", + "erc20:eth:EARTH": "1.8.0", + "erc20:eth:EBC": "1.8.0", + "erc20:eth:EBTC": "1.8.0", + "erc20:eth:ECN": "1.6.2", + "erc20:eth:ECO2": "1.6.2", + "erc20:eth:ECOM": "1.8.0", + "erc20:eth:EDC": "1.6.2", + "erc20:eth:EDG": "1.6.2", + "erc20:eth:EDO": "1.6.2", + "erc20:eth:EDR": "1.6.3", + "erc20:eth:EDU": "1.8.0", + "erc20:eth:EGT": "1.8.0", + "erc20:eth:EHT": "1.6.2", + "erc20:eth:EKO": "1.8.0", + "erc20:eth:EKT": "1.8.0", + "erc20:eth:ELEC": "1.8.0", + "erc20:eth:ELF": "1.6.2", + "erc20:eth:ELIX": "1.6.2", + "erc20:eth:ELTCOIN": "1.6.2", + "erc20:eth:ELY": "1.6.3", + "erc20:eth:EMON": "1.6.2", + "erc20:eth:EMONT": "1.6.2", + "erc20:eth:EMT": "1.6.2", + "erc20:eth:EMV": "1.6.2", + "erc20:eth:ENC": "1.6.2", + "erc20:eth:ENG": "1.6.2", + "erc20:eth:ENGT": "1.8.0", + "erc20:eth:ENJ": "1.6.2", + "erc20:eth:ENTRP": "1.6.2", + "erc20:eth:EPX": "1.6.2", + "erc20:eth:EPY": "1.8.0", + "erc20:eth:EQL": "1.8.0", + "erc20:eth:ERO": "1.8.0", + "erc20:eth:ERT": "1.8.0", + "erc20:eth:ESZ": "1.6.2", + "erc20:eth:ETBS": "1.6.2", + "erc20:eth:ETCH": "1.6.2", + "erc20:eth:ETG": "1.8.0", + "erc20:eth:ETHB": "1.6.2", + "erc20:eth:ETHD": "1.8.0", + "erc20:eth:ETK": "1.8.0", + "erc20:eth:ETR": "1.6.2", + "erc20:eth:EURS": "1.8.0", + "erc20:eth:EURT": "1.6.2", + "erc20:eth:EVC": "1.8.0", + "erc20:eth:EVE": "1.6.2", + "erc20:eth:EVX": "1.6.2", + "erc20:eth:EWO": "1.8.0", + "erc20:eth:EXMR": "1.6.2", + "erc20:eth:EXRN": "1.8.0", + "erc20:eth:EXY": "1.6.3", + "erc20:eth:EZT": "1.8.0", + "erc20:eth:E\u20b9": "1.7.1", + "erc20:eth:FABA": "1.8.0", + "erc20:eth:FACE": "1.8.0", + "erc20:eth:FAM": "1.6.2", + "erc20:eth:FAN": "1.6.3", + "erc20:eth:FDZ": "1.8.0", + "erc20:eth:FGP": "1.8.0", + "erc20:eth:FID": "1.8.0", + "erc20:eth:FIH": "1.8.0", + "erc20:eth:FKX": "1.6.2", + "erc20:eth:FLIXX": "1.6.2", + "erc20:eth:FLOT": "1.8.0", + "erc20:eth:FLP": "1.6.2", + "erc20:eth:FLR": "1.6.2", + "erc20:eth:FLUZ": "1.6.2", + "erc20:eth:FLX": "1.6.2", + "erc20:eth:FMF": "1.8.0", + "erc20:eth:FND": "1.6.2", + "erc20:eth:FNKOS": "1.8.0", + "erc20:eth:FNTB": "1.8.0", + "erc20:eth:FOOD": "1.8.0", + "erc20:eth:FOTA": "1.8.0", + "erc20:eth:FR8": "1.8.0", + "erc20:eth:FRD": "1.6.2", + "erc20:eth:FREC": "1.8.0", + "erc20:eth:FRV": "1.8.0", + "erc20:eth:FSN": "1.8.0", + "erc20:eth:FT": "1.8.0", + "erc20:eth:FTI": "1.8.0", + "erc20:eth:FTR": "1.6.2", + "erc20:eth:FTT": "1.6.2", + "erc20:eth:FTX": "1.8.0", + "erc20:eth:FTXT": "1.6.3", + "erc20:eth:FUEL": "1.6.2", + "erc20:eth:FUN": "1.6.2", + "erc20:eth:FXT": "1.8.0", + "erc20:eth:FYN": "1.6.2", + "erc20:eth:FYP": "1.8.0", + "erc20:eth:Fzcoin": "1.8.0", + "erc20:eth:GAM": "1.6.2", + "erc20:eth:GAT": "1.8.0", + "erc20:eth:GAVEL": "1.6.2", + "erc20:eth:GBT": "1.6.2", + "erc20:eth:GBX": "1.6.2", + "erc20:eth:GCP": "1.6.2", + "erc20:eth:GEE": "1.6.2", + "erc20:eth:GELD": "1.6.2", + "erc20:eth:GEM": "1.8.0", + "erc20:eth:GEN": "1.6.2", + "erc20:eth:GENE": "1.8.0", + "erc20:eth:GET": "1.6.2", + "erc20:eth:GIF": "1.6.2", + "erc20:eth:GIM": "1.6.2", + "erc20:eth:GLA": "1.8.0", + "erc20:eth:GMT": "1.6.2", + "erc20:eth:GNO": "1.6.2", + "erc20:eth:GNT": "1.8.0", + "erc20:eth:GNX": "1.8.0", + "erc20:eth:GNY": "1.8.0", + "erc20:eth:GOLDX": "1.6.2", + "erc20:eth:GOT": "1.8.0", + "erc20:eth:GRID": "1.6.2", + "erc20:eth:GRMD": "1.8.0", + "erc20:eth:GROO": "1.8.0", + "erc20:eth:GROW": "1.6.2", + "erc20:eth:GSC": "1.8.0", + "erc20:eth:GSE": "1.6.3", + "erc20:eth:GTC": "1.6.2", + "erc20:eth:GTKT": "1.6.2", + "erc20:eth:GTO": "1.6.2", + "erc20:eth:GUESS": "1.8.0", + "erc20:eth:GULD": "1.6.3", + "erc20:eth:GUP": "1.8.0", + "erc20:eth:GUSD": "1.8.0", + "erc20:eth:GVT": "1.6.2", + "erc20:eth:GXC": "1.6.2", + "erc20:eth:GXVC": "1.6.2", + "erc20:eth:GZB": "1.8.0", + "erc20:eth:GZE": "1.6.2", + "erc20:eth:GZR": "1.6.2", + "erc20:eth:HAND": "1.8.0", + "erc20:eth:HAPPY": "1.6.3", + "erc20:eth:HAT": "1.6.2", + "erc20:eth:HB": "1.8.0", + "erc20:eth:HBT": "1.8.0", + "erc20:eth:HBZ": "1.8.0", + "erc20:eth:HDG": "1.6.2", + "erc20:eth:HDL": "1.8.0", + "erc20:eth:HER": "1.8.0", + "erc20:eth:HGT": "1.6.2", + "erc20:eth:HIBT": "1.6.3", + "erc20:eth:HIG": "1.6.2", + "erc20:eth:HKG": "1.6.2", + "erc20:eth:HKN": "1.8.0", + "erc20:eth:HKY": "1.6.2", + "erc20:eth:HLX": "1.8.0", + "erc20:eth:HMC": "1.8.0", + "erc20:eth:HMQ": "1.6.2", + "erc20:eth:HODL": "1.6.2", + "erc20:eth:HORSE": "1.6.2", + "erc20:eth:HOT (Holo)": "1.8.0", + "erc20:eth:HOT (Hydro)": "1.8.0", + "erc20:eth:HPB": "1.8.0", + "erc20:eth:HST": "1.6.2", + "erc20:eth:HT": "1.8.0", + "erc20:eth:HVN": "1.6.2", + "erc20:eth:HYDRO": "1.6.2", + "erc20:eth:IAD": "1.6.2", + "erc20:eth:ICE": "1.6.2", + "erc20:eth:ICN": "1.6.2", + "erc20:eth:ICO": "1.6.2", + "erc20:eth:ICOS": "1.6.2", + "erc20:eth:ICX": "1.6.2", + "erc20:eth:IDEA": "1.6.2", + "erc20:eth:IDH": "1.8.0", + "erc20:eth:IDXM": "1.8.0", + "erc20:eth:IETH": "1.8.0", + "erc20:eth:IFT": "1.6.2", + "erc20:eth:IG": "1.8.0", + "erc20:eth:IHT": "1.8.0", + "erc20:eth:IIC": "1.6.2", + "erc20:eth:IKB": "1.6.2", + "erc20:eth:IMC": "1.6.2", + "erc20:eth:IND": "1.6.2", + "erc20:eth:ING": "1.8.0", + "erc20:eth:INRM": "1.6.2", + "erc20:eth:INS": "1.6.2", + "erc20:eth:INSTAR": "1.6.2", + "erc20:eth:INT": "1.8.0", + "erc20:eth:INV": "1.8.0", + "erc20:eth:INXT": "1.6.2", + "erc20:eth:IOST": "1.6.2", + "erc20:eth:IOTX": "1.6.2", + "erc20:eth:IPL": "1.6.2", + "erc20:eth:IPSX": "1.6.2", + "erc20:eth:IQN": "1.6.3", + "erc20:eth:IST34": "1.6.3", + "erc20:eth:ITC": "1.6.2", + "erc20:eth:ITT": "1.6.2", + "erc20:eth:IVY": "1.8.0", + "erc20:eth:IXT": "1.6.2", + "erc20:eth:IoT": "1.6.2", + "erc20:eth:J8T": "1.6.2", + "erc20:eth:JC": "1.8.0", + "erc20:eth:JET": "1.6.2", + "erc20:eth:JNT": "1.6.2", + "erc20:eth:JOT": "1.8.0", + "erc20:eth:JOY": "1.6.2", + "erc20:eth:JetCoins": "1.6.2", + "erc20:eth:KAN": "1.8.0", + "erc20:eth:KC": "1.8.0", + "erc20:eth:KEE": "1.6.2", + "erc20:eth:KICK": "1.6.2", + "erc20:eth:KIN": "1.6.2", + "erc20:eth:KIND": "1.8.0", + "erc20:eth:KNC": "1.6.2", + "erc20:eth:KNDC": "1.8.0", + "erc20:eth:KNT": "1.8.0", + "erc20:eth:KPR": "1.6.2", + "erc20:eth:KRL": "1.6.2", + "erc20:eth:KUE": "1.8.0", + "erc20:eth:KWATT": "1.8.0", + "erc20:eth:KZN": "1.6.2", + "erc20:eth:LA": "1.6.2", + "erc20:eth:LALA": "1.6.2", + "erc20:eth:LATX": "1.8.0", + "erc20:eth:LBA": "1.8.0", + "erc20:eth:LCS": "1.8.0", + "erc20:eth:LDC": "1.6.2", + "erc20:eth:LEDU": "1.8.0", + "erc20:eth:LEND": "1.6.2", + "erc20:eth:LEV": "1.8.0", + "erc20:eth:LFR": "1.6.2", + "erc20:eth:LG": "1.8.0", + "erc20:eth:LGO": "1.6.2", + "erc20:eth:LGR": "1.6.2", + "erc20:eth:LIBER": "1.8.0", + "erc20:eth:LIF": "1.6.2", + "erc20:eth:LIFE": "1.6.2", + "erc20:eth:LIKE": "1.8.0", + "erc20:eth:LINK (Chainlink)": "1.6.2", + "erc20:eth:LIVE": "1.6.2", + "erc20:eth:LKY": "1.8.0", + "erc20:eth:LML": "1.8.0", + "erc20:eth:LND": "1.6.2", + "erc20:eth:LOC": "1.6.2", + "erc20:eth:LOCI": "1.6.2", + "erc20:eth:LOCUS": "1.6.2", + "erc20:eth:LOK": "1.6.2", + "erc20:eth:LOOK": "1.6.3", + "erc20:eth:LOOM": "1.6.2", + "erc20:eth:LOVE": "1.6.3", + "erc20:eth:LPT": "1.6.2", + "erc20:eth:LRC": "1.6.2", + "erc20:eth:LUC": "1.6.2", + "erc20:eth:LUCK": "1.6.2", + "erc20:eth:LUM": "1.6.2", + "erc20:eth:LUN": "1.6.2", + "erc20:eth:LYS": "1.6.2", + "erc20:eth:M-ETH": "1.6.2", + "erc20:eth:MAD": "1.6.2", + "erc20:eth:MAN": "1.6.2", + "erc20:eth:MANA": "1.6.2", + "erc20:eth:MART": "1.6.2", + "erc20:eth:MBRS": "1.6.2", + "erc20:eth:MCAP": "1.6.2", + "erc20:eth:MCI": "1.6.2", + "erc20:eth:MCO": "1.6.2", + "erc20:eth:MDA": "1.6.2", + "erc20:eth:MDS": "1.8.0", + "erc20:eth:MDT": "1.8.0", + "erc20:eth:MEDX": "1.8.0", + "erc20:eth:MEST": "1.6.2", + "erc20:eth:MET": "1.8.0", + "erc20:eth:METM": "1.8.0", + "erc20:eth:MFG": "1.6.2", + "erc20:eth:MFT": "1.6.3", + "erc20:eth:MFTU": "1.6.3", + "erc20:eth:MGO": "1.6.2", + "erc20:eth:MIC": "1.8.0", + "erc20:eth:MITX": "1.8.0", + "erc20:eth:MKR": "1.8.0", + "erc20:eth:MKT": "1.6.2", + "erc20:eth:MLN (new)": "1.8.0", + "erc20:eth:MLN (old):deprecated": "1.8.0", + "erc20:eth:MNE": "1.6.2", + "erc20:eth:MNT": "1.6.2", + "erc20:eth:MNTP": "1.6.2", + "erc20:eth:MOC": "1.8.0", + "erc20:eth:MOD": "1.6.2", + "erc20:eth:MOT": "1.8.0", + "erc20:eth:MOZO": "1.8.0", + "erc20:eth:MRK": "1.8.0", + "erc20:eth:MRL": "1.6.2", + "erc20:eth:MRP": "1.6.2", + "erc20:eth:MRV": "1.6.2", + "erc20:eth:MSP": "1.6.2", + "erc20:eth:MTH": "1.6.2", + "erc20:eth:MTL": "1.6.2", + "erc20:eth:MTN": "1.6.2", + "erc20:eth:MTR": "1.6.2", + "erc20:eth:MTRc": "1.6.2", + "erc20:eth:MTX": "1.6.2", + "erc20:eth:MUXE": "1.6.2", + "erc20:eth:MVL": "1.8.0", + "erc20:eth:MVP": "1.6.2", + "erc20:eth:MWAT": "1.6.2", + "erc20:eth:MYD": "1.6.2", + "erc20:eth:MYST": "1.6.2", + "erc20:eth:NAC": "1.6.2", + "erc20:eth:NANJ": "1.6.2", + "erc20:eth:NAS": "1.8.0", + "erc20:eth:NAVI": "1.6.2", + "erc20:eth:NBAI": "1.6.2", + "erc20:eth:NBC": "1.8.0", + "erc20:eth:NCASH": "1.8.0", + "erc20:eth:NCT": "1.6.2", + "erc20:eth:NDC": "1.6.2", + "erc20:eth:NDX": "1.8.0", + "erc20:eth:NEC": "1.6.2", + "erc20:eth:NEEO": "1.8.0", + "erc20:eth:NET": "1.6.2", + "erc20:eth:NEU": "1.6.2", + "erc20:eth:NEWB": "1.8.0", + "erc20:eth:NEXO": "1.8.0", + "erc20:eth:NGC": "1.6.2", + "erc20:eth:NIMFA": "1.6.2", + "erc20:eth:NIO": "1.8.0", + "erc20:eth:NMR": "1.6.2", + "erc20:eth:NOAH": "1.8.0", + "erc20:eth:NOBS": "1.8.0", + "erc20:eth:NONE": "1.8.0", + "erc20:eth:NOX": "1.6.2", + "erc20:eth:NPER": "1.6.2", + "erc20:eth:NPX": "1.8.0", + "erc20:eth:NPXS": "1.6.2", + "erc20:eth:NTO": "1.8.0", + "erc20:eth:NTWK": "1.8.0", + "erc20:eth:NUG": "1.6.3", + "erc20:eth:NULS": "1.6.2", + "erc20:eth:NXX": "1.6.2", + "erc20:eth:NxC": "1.6.2", + "erc20:eth:OAK": "1.6.2", + "erc20:eth:OAX": "1.6.2", + "erc20:eth:OCC": "1.6.2", + "erc20:eth:OCN": "1.8.0", + "erc20:eth:ODE": "1.6.3", + "erc20:eth:OJX": "1.6.2", + "erc20:eth:OLD_MKR": "1.6.2", + "erc20:eth:OLE": "1.8.0", + "erc20:eth:OLT": "1.6.3", + "erc20:eth:OMG": "1.6.2", + "erc20:eth:OMT": "1.6.3", + "erc20:eth:OMX": "1.8.0", + "erc20:eth:ONE": "1.8.0", + "erc20:eth:ONEK": "1.6.2", + "erc20:eth:ONG": "1.8.0", + "erc20:eth:ONL": "1.8.0", + "erc20:eth:OPT": "1.6.2", + "erc20:eth:OPTI": "1.8.0", + "erc20:eth:ORBS": "1.6.2", + "erc20:eth:ORCA": "1.6.3", + "erc20:eth:ORI": "1.8.0", + "erc20:eth:ORS": "1.8.0", + "erc20:eth:OST": "1.6.2", + "erc20:eth:OTN": "1.8.0", + "erc20:eth:OWN": "1.6.3", + "erc20:eth:Ox Fina": "1.6.2", + "erc20:eth:PAI": "1.8.0", + "erc20:eth:PAL": "1.6.2", + "erc20:eth:PARETO": "1.6.2", + "erc20:eth:PAT": "1.8.0", + "erc20:eth:PATENTS": "1.6.2", + "erc20:eth:PATH": "1.6.2", + "erc20:eth:PAX": "1.8.0", + "erc20:eth:PAY": "1.6.2", + "erc20:eth:PBL": "1.6.2", + "erc20:eth:PBT": "1.6.2", + "erc20:eth:PCL": "1.6.2", + "erc20:eth:PCLOLD": "1.6.2", + "erc20:eth:PDATA": "1.8.0", + "erc20:eth:PEG": "1.6.3", + "erc20:eth:PET": "1.6.2", + "erc20:eth:PETRO": "1.6.2", + "erc20:eth:PEXT": "1.6.2", + "erc20:eth:PFR": "1.8.0", + "erc20:eth:PHI": "1.8.0", + "erc20:eth:PIPL": "1.6.2", + "erc20:eth:PIT": "1.8.0", + "erc20:eth:PIX": "1.6.2", + "erc20:eth:PKG": "1.8.0", + "erc20:eth:PKT": "1.8.0", + "erc20:eth:PLASMA": "1.6.2", + "erc20:eth:PLBT": "1.6.2", + "erc20:eth:PLR": "1.6.2", + "erc20:eth:PLS": "1.6.3", + "erc20:eth:PLU": "1.6.2", + "erc20:eth:PMA": "1.8.0", + "erc20:eth:PMNT": "1.8.0", + "erc20:eth:PNK": "1.8.0", + "erc20:eth:POA20": "1.8.0", + "erc20:eth:POE": "1.6.2", + "erc20:eth:POIN": "1.6.2", + "erc20:eth:POLL": "1.8.0", + "erc20:eth:POLY": "1.6.2", + "erc20:eth:POOL": "1.6.2", + "erc20:eth:POP": "1.8.0", + "erc20:eth:POS": "1.6.2", + "erc20:eth:POWR": "1.6.2", + "erc20:eth:PPP": "1.6.2", + "erc20:eth:PPT": "1.6.2", + "erc20:eth:PRE": "1.6.2", + "erc20:eth:PRG": "1.6.2", + "erc20:eth:PRIX": "1.8.0", + "erc20:eth:PRL": "1.6.2", + "erc20:eth:PRON": "1.6.2", + "erc20:eth:PRS": "1.6.2", + "erc20:eth:PRSP": "1.6.2", + "erc20:eth:PST": "1.8.0", + "erc20:eth:PT": "1.6.2", + "erc20:eth:PTON": "1.8.0", + "erc20:eth:PTOY": "1.6.2", + "erc20:eth:PTT": "1.8.0", + "erc20:eth:PTWO": "1.6.2", + "erc20:eth:PUC": "1.6.2", + "erc20:eth:PURC": "1.6.3", + "erc20:eth:PXT": "1.6.2", + "erc20:eth:PYLNT": "1.8.0", + "erc20:eth:QASH": "1.6.2", + "erc20:eth:QAU": "1.6.2", + "erc20:eth:QBIT": "1.8.0", + "erc20:eth:QBX": "1.6.2", + "erc20:eth:QKC": "1.8.0", + "erc20:eth:QNT": "1.6.3", + "erc20:eth:QRG": "1.6.2", + "erc20:eth:QRL": "1.6.2", + "erc20:eth:QSP": "1.6.2", + "erc20:eth:QTQ": "1.6.2", + "erc20:eth:QTUM": "1.6.2", + "erc20:eth:QUN": "1.8.0", + "erc20:eth:QVT": "1.8.0", + "erc20:eth:R": "1.8.0", + "erc20:eth:RAO": "1.6.2", + "erc20:eth:RATING": "1.8.0", + "erc20:eth:RBLX": "1.6.2", + "erc20:eth:RCN": "1.6.2", + "erc20:eth:RDN": "1.8.0", + "erc20:eth:REA": "1.6.2", + "erc20:eth:REAL": "1.8.0", + "erc20:eth:REBL": "1.6.2", + "erc20:eth:RED": "1.6.2", + "erc20:eth:REDC": "1.6.3", + "erc20:eth:REF": "1.8.0", + "erc20:eth:REM": "1.8.0", + "erc20:eth:REMI": "1.8.0", + "erc20:eth:REN": "1.6.2", + "erc20:eth:REP": "1.8.0", + "erc20:eth:REP:deprecated": "1.8.0", + "erc20:eth:REQ": "1.6.2", + "erc20:eth:REX": "1.6.2", + "erc20:eth:RFR": "1.6.2", + "erc20:eth:RGS": "1.8.0", + "erc20:eth:RHOC": "1.8.0", + "erc20:eth:RIPT": "1.6.2", + "erc20:eth:RIYA": "1.8.0", + "erc20:eth:RKT": "1.8.0", + "erc20:eth:RLC": "1.6.2", + "erc20:eth:RLT": "1.6.2", + "erc20:eth:RLTY": "1.6.2", + "erc20:eth:RLX": "1.6.2", + "erc20:eth:RMC": "1.8.0", + "erc20:eth:RMESH": "1.8.0", + "erc20:eth:RNDR": "1.6.2", + "erc20:eth:RNT": "1.8.0", + "erc20:eth:RNTB": "1.8.0", + "erc20:eth:ROC": "1.8.0", + "erc20:eth:ROCK": "1.6.2", + "erc20:eth:ROCK2": "1.8.0", + "erc20:eth:ROCK2PAY": "1.8.0", + "erc20:eth:ROK": "1.6.2", + "erc20:eth:ROUND": "1.6.2", + "erc20:eth:RPL": "1.6.2", + "erc20:eth:RTB": "1.8.0", + "erc20:eth:RTH": "1.8.0", + "erc20:eth:RTN": "1.6.2", + "erc20:eth:RUFF": "1.8.0", + "erc20:eth:RUNE": "1.8.0", + "erc20:eth:RVL": "1.6.2", + "erc20:eth:RVT": "1.6.2", + "erc20:eth:S-A-PAT": "1.6.2", + "erc20:eth:S-ETH": "1.6.2", + "erc20:eth:SAC": "1.8.0", + "erc20:eth:SALT": "1.6.2", + "erc20:eth:SAN": "1.6.2", + "erc20:eth:SCANDI": "1.6.2", + "erc20:eth:SCL": "1.6.2", + "erc20:eth:SCRL": "1.8.0", + "erc20:eth:SEELE": "1.8.0", + "erc20:eth:SENC": "1.8.0", + "erc20:eth:SENSE": "1.6.2", + "erc20:eth:SENT": "1.8.0", + "erc20:eth:SET": "1.6.2", + "erc20:eth:SEXY": "1.6.2", + "erc20:eth:SGEL": "1.6.2", + "erc20:eth:SGN": "1.8.0", + "erc20:eth:SGP": "1.8.0", + "erc20:eth:SGR": "1.8.0", + "erc20:eth:SHIP": "1.8.0", + "erc20:eth:SHIT": "1.6.2", + "erc20:eth:SHL": "1.8.0", + "erc20:eth:SHP": "1.8.0", + "erc20:eth:SIFT": "1.6.2", + "erc20:eth:SIG": "1.6.2", + "erc20:eth:SKB": "1.8.0", + "erc20:eth:SKE": "1.8.0", + "erc20:eth:SKIN": "1.6.2", + "erc20:eth:SKM": "1.8.0", + "erc20:eth:SKO1": "1.6.2", + "erc20:eth:SKR": "1.6.2", + "erc20:eth:SKYM": "1.8.0", + "erc20:eth:SLT": "1.6.2", + "erc20:eth:SLY": "1.6.3", + "erc20:eth:SMS": "1.8.0", + "erc20:eth:SNBL": "1.8.0", + "erc20:eth:SNC": "1.6.2", + "erc20:eth:SND": "1.6.2", + "erc20:eth:SNG": "1.6.2", + "erc20:eth:SNGLS": "1.6.2", + "erc20:eth:SNIP": "1.6.2", + "erc20:eth:SNM": "1.6.2", + "erc20:eth:SNOV": "1.6.2", + "erc20:eth:SNT": "1.6.2", + "erc20:eth:SNTR": "1.8.0", + "erc20:eth:SNX": "1.8.0", + "erc20:eth:SOAR": "1.8.0", + "erc20:eth:SOC": "1.8.0", + "erc20:eth:SOL": "1.6.2", + "erc20:eth:SONIQ": "1.8.0", + "erc20:eth:SOUL": "1.8.0", + "erc20:eth:SPANK": "1.6.2", + "erc20:eth:SPARC": "1.6.2", + "erc20:eth:SPARTA": "1.6.2", + "erc20:eth:SPD": "1.8.0", + "erc20:eth:SPF": "1.6.2", + "erc20:eth:SPHTX": "1.8.0", + "erc20:eth:SPICE": "1.8.0", + "erc20:eth:SPN": "1.6.2", + "erc20:eth:SPX": "1.8.0", + "erc20:eth:SRN": "1.6.2", + "erc20:eth:SSH": "1.6.2", + "erc20:eth:SSP": "1.8.0", + "erc20:eth:STABIT": "1.6.3", + "erc20:eth:STAC": "1.6.2", + "erc20:eth:STACS": "1.8.0", + "erc20:eth:STAR": "1.6.2", + "erc20:eth:STB": "1.8.0", + "erc20:eth:STC": "1.6.2", + "erc20:eth:STK": "1.6.2", + "erc20:eth:STN": "1.6.2", + "erc20:eth:STORJ": "1.6.2", + "erc20:eth:STORM": "1.6.2", + "erc20:eth:STP": "1.6.2", + "erc20:eth:STQ": "1.6.2", + "erc20:eth:STR": "1.8.0", + "erc20:eth:STRC": "1.6.2", + "erc20:eth:STU": "1.8.0", + "erc20:eth:STX": "1.6.2", + "erc20:eth:SUB": "1.6.2", + "erc20:eth:SUR": "1.8.0", + "erc20:eth:SVD": "1.8.0", + "erc20:eth:SWFTC": "1.8.0", + "erc20:eth:SWM": "1.6.2", + "erc20:eth:SWT": "1.6.2", + "erc20:eth:SXDT": "1.6.2", + "erc20:eth:SXUT": "1.6.2", + "erc20:eth:SYN": "1.6.2", + "erc20:eth:SenSatorI": "1.6.2", + "erc20:eth:TALAO": "1.8.0", + "erc20:eth:TAU": "1.6.2", + "erc20:eth:TBC2": "1.6.2", + "erc20:eth:TBT": "1.6.2", + "erc20:eth:TBX": "1.8.0", + "erc20:eth:TCA": "1.7.1", + "erc20:eth:TCH": "1.8.0", + "erc20:eth:TDH": "1.6.2", + "erc20:eth:TEAM": "1.8.0", + "erc20:eth:TEN": "1.8.0", + "erc20:eth:TFD": "1.8.0", + "erc20:eth:TFL": "1.6.2", + "erc20:eth:TGAME": "1.8.0", + "erc20:eth:TGT": "1.8.0", + "erc20:eth:THETA": "1.6.2", + "erc20:eth:THR": "1.8.0", + "erc20:eth:THRT": "1.8.0", + "erc20:eth:THUG": "1.6.2", + "erc20:eth:TIE": "1.8.0", + "erc20:eth:TIG": "1.8.0", + "erc20:eth:TIME": "1.6.2", + "erc20:eth:TIO": "1.6.2", + "erc20:eth:TIX": "1.6.2", + "erc20:eth:TKA": "1.8.0", + "erc20:eth:TKLN": "1.8.0", + "erc20:eth:TKN": "1.6.2", + "erc20:eth:TKR": "1.8.0", + "erc20:eth:TLX": "1.7.1", + "erc20:eth:TMT": "1.8.0", + "erc20:eth:TNS": "1.8.0", + "erc20:eth:TNT": "1.6.2", + "erc20:eth:TOK": "1.8.0", + "erc20:eth:TOMO": "1.8.0", + "erc20:eth:TOOR": "1.6.3", + "erc20:eth:TRAC": "1.8.0", + "erc20:eth:TRAK": "1.8.0", + "erc20:eth:TRCN": "1.6.2", + "erc20:eth:TRCT": "1.8.0", + "erc20:eth:TRDT": "1.8.0", + "erc20:eth:TRST": "1.6.2", + "erc20:eth:TSW": "1.6.3", + "erc20:eth:TTA": "1.8.0", + "erc20:eth:TTC": "1.8.0", + "erc20:eth:TTU": "1.8.0", + "erc20:eth:TUSD": "1.8.0", + "erc20:eth:TWN": "1.6.2", + "erc20:eth:TWNKL": "1.6.2", + "erc20:eth:TaaS": "1.6.2", + "erc20:eth:UBT": "1.8.0", + "erc20:eth:UCASH": "1.8.0", + "erc20:eth:UCN": "1.8.0", + "erc20:eth:UFR": "1.8.0", + "erc20:eth:UKG": "1.6.2", + "erc20:eth:UP": "1.8.0", + "erc20:eth:UPP": "1.8.0", + "erc20:eth:UQC": "1.6.2", + "erc20:eth:URB": "1.7.1", + "erc20:eth:USDC": "1.7.1", + "erc20:eth:USDM": "1.6.2", + "erc20:eth:USDS": "1.8.0", + "erc20:eth:USDT": "1.8.0", + "erc20:eth:UTK": "1.6.2", + "erc20:eth:UTNP": "1.8.0", + "erc20:eth:UTT": "1.8.0", + "erc20:eth:UUU": "1.6.2", + "erc20:eth:Unicorn": "1.6.2", + "erc20:eth:VDG": "1.6.3", + "erc20:eth:VDOC": "1.6.2", + "erc20:eth:VEE": "1.6.2", + "erc20:eth:VEN": "1.6.2", + "erc20:eth:VENUS": "1.6.2", + "erc20:eth:VERI": "1.6.2", + "erc20:eth:VIB": "1.6.2", + "erc20:eth:VIBE": "1.8.0", + "erc20:eth:VIBEX": "1.8.0", + "erc20:eth:VIEW": "1.6.2", + "erc20:eth:VIKKY": "1.8.0", + "erc20:eth:VIN": "1.8.0", + "erc20:eth:VIT": "1.6.2", + "erc20:eth:VITE": "1.8.0", + "erc20:eth:VIU": "1.6.2", + "erc20:eth:VLD": "1.6.2", + "erc20:eth:VOC": "1.6.2", + "erc20:eth:VOISE": "1.6.2", + "erc20:eth:VSL": "1.6.2", + "erc20:eth:VUU": "1.8.0", + "erc20:eth:VZT": "1.8.0", + "erc20:eth:WAB": "1.8.0", + "erc20:eth:WABI": "1.8.0", + "erc20:eth:WATT": "1.7.1", + "erc20:eth:WAX": "1.6.2", + "erc20:eth:WBA": "1.6.2", + "erc20:eth:WBTC": "1.8.0", + "erc20:eth:WCN": "1.6.2", + "erc20:eth:WCT": "1.6.2", + "erc20:eth:WEB": "1.8.0", + "erc20:eth:WETH": "1.6.2", + "erc20:eth:WHEN": "1.6.2", + "erc20:eth:WILD": "1.6.2", + "erc20:eth:WIN": "1.8.0", + "erc20:eth:WINGS": "1.6.2", + "erc20:eth:WISH": "1.8.0", + "erc20:eth:WMK": "1.6.3", + "erc20:eth:WNK": "1.6.3", + "erc20:eth:WOC": "1.8.0", + "erc20:eth:WPC": "1.6.2", + "erc20:eth:WPR": "1.6.2", + "erc20:eth:WRC": "1.8.0", + "erc20:eth:WRK": "1.6.2", + "erc20:eth:WTC": "1.6.2", + "erc20:eth:WTT": "1.8.0", + "erc20:eth:WYS": "1.6.2", + "erc20:eth:WYV": "1.6.2", + "erc20:eth:X8X": "1.6.2", + "erc20:eth:XAUR": "1.6.2", + "erc20:eth:XBL": "1.8.0", + "erc20:eth:XBP": "1.6.2", + "erc20:eth:XCC": "1.6.2", + "erc20:eth:XCHF": "1.8.0", + "erc20:eth:XCLR": "1.8.0", + "erc20:eth:XDCE": "1.8.0", + "erc20:eth:XES": "1.8.0", + "erc20:eth:XET": "1.8.0", + "erc20:eth:XFS": "1.6.2", + "erc20:eth:XGG": "1.6.2", + "erc20:eth:XGM": "1.6.2", + "erc20:eth:XGT": "1.6.2", + "erc20:eth:XID": "1.6.2", + "erc20:eth:XMCT": "1.8.0", + "erc20:eth:XMX": "1.8.0", + "erc20:eth:XNK": "1.6.2", + "erc20:eth:XNN": "1.6.2", + "erc20:eth:XNT": "1.6.2", + "erc20:eth:XOV": "1.8.0", + "erc20:eth:XPA": "1.8.0", + "erc20:eth:XPAT": "1.8.0", + "erc20:eth:XRL": "1.6.2", + "erc20:eth:XSC": "1.6.2", + "erc20:eth:XYO": "1.8.0", + "erc20:eth:YEE": "1.8.0", + "erc20:eth:YOYOW": "1.8.0", + "erc20:eth:YUP": "1.6.3", + "erc20:eth:YUPIE": "1.6.2", + "erc20:eth:ZAP": "1.6.2", + "erc20:eth:ZCN": "1.8.0", + "erc20:eth:ZCO": "1.8.0", + "erc20:eth:ZCS": "1.6.2", + "erc20:eth:ZEUS": "1.8.0", + "erc20:eth:ZIL": "1.6.2", + "erc20:eth:ZINC": "1.8.0", + "erc20:eth:ZIP": "1.8.0", + "erc20:eth:ZIPT": "1.8.0", + "erc20:eth:ZIX": "1.8.0", + "erc20:eth:ZLA": "1.8.0", + "erc20:eth:ZMN": "1.6.2", + "erc20:eth:ZPR": "1.8.0", + "erc20:eth:ZRX": "1.8.0", + "erc20:eth:ZST": "1.6.2", + "erc20:eth:ZTX": "1.8.0", + "erc20:eth:ZXC": "1.8.0", + "erc20:eth:cV": "1.6.2", + "erc20:eth:eBCH": "1.6.2", + "erc20:eth:eGAS": "1.6.2", + "erc20:eth:eUSD": "1.6.2", + "erc20:eth:eosDAC": "1.6.2", + "erc20:eth:sUSD": "1.8.0", + "erc20:kov:Aeternity": "1.6.2", + "erc20:kov:DAI": "1.8.0", + "erc20:kov:DGD": "1.8.0", + "erc20:kov:GNT": "1.8.0", + "erc20:kov:GUP": "1.8.0", + "erc20:kov:MKR": "1.8.0", + "erc20:kov:MLN": "1.8.0", + "erc20:kov:REP": "1.8.0", + "erc20:kov:ZRX": "1.8.0", + "erc20:rin:AETH": "1.6.2", + "erc20:rin:BHNT": "1.6.2", + "erc20:rin:CTGA": "1.6.2", + "erc20:rin:KC": "1.8.0", + "erc20:rin:NONE": "1.8.0", + "erc20:rin:PPD": "1.6.2", + "erc20:rin:RDN": "1.8.0", + "erc20:rin:WALL": "1.6.2", + "erc20:rop:*PLASMA": "1.6.3", + "erc20:rop:ILSC": "1.6.2", + "erc20:rop:NONE": "1.8.0", + "erc20:rop:dqr30": "1.8.0", + "erc20:ubq:BEER": "1.6.2", + "erc20:ubq:CEFS": "1.6.2", + "erc20:ubq:DOT": "1.6.2", + "erc20:ubq:QWARK": "1.6.2", + "erc20:ubq:RICKS": "1.6.2", + "eth:AKA": "1.6.3", + "eth:ATH": "1.6.3", + "eth:ATS": "1.8.0", + "eth:CLO": "1.6.2", + "eth:DXN": "1.8.1", + "eth:EGEM": "1.6.2", + "eth:ELLA": "1.6.2", + "eth:EOSC": "1.6.2", + "eth:ESN": "1.6.3", + "eth:ETC": "1.6.2", + "eth:ETH": "1.6.2", + "eth:ETHO": "1.6.3", + "eth:ETSC": "1.6.2", + "eth:EXP": "1.6.2", + "eth:GO": "1.6.2", + "eth:MIX": "1.7.2", + "eth:MUSIC": "1.6.3", + "eth:PIRL": "1.6.3", + "eth:RBTC": "1.6.2", + "eth:REOSC": "1.7.2", + "eth:UBQ": "1.6.2", + "eth:tATS": "1.8.0", + "eth:tETC": "1.6.2", + "eth:tKOV": "1.6.2", + "eth:tRBTC": "1.6.2", + "eth:tRIN": "1.6.2", + "eth:tROP": "1.6.2", + "misc:LSK": "1.7.1", + "misc:MAID": "1.7.2", + "misc:OMNI": "1.7.2", + "misc:USDT": "1.7.2", + "misc:WAN": "1.6.3", + "misc:XLM": "1.7.1", + "nem:BREEZE": "1.6.2", + "nem:DIM": "1.6.2", + "nem:DIMTOK": "1.6.2", + "nem:PAC:CHS": "1.6.2", + "nem:PAC:HRT": "1.6.2", + "nem:XEM": "1.6.2" + }, + "unsupported": { + "bitcoin:CRW": "address_type collides with Bitcoin", + "bitcoin:TRC": "address_type collides with Bitcoin", + "bitcoin:ZEN": "not implemented", + "erc20:etc:PLAY": "(AUTO) duplicate key", + "erc20:eth:A18:ba7d": "(AUTO) duplicate key", + "erc20:eth:A18:bde8": "(AUTO) duplicate key", + "erc20:eth:ATH": "(AUTO) duplicate key", + "erc20:eth:ATH (AIgatha Token)": "(AUTO) duplicate key", + "erc20:eth:ATS": "(AUTO) duplicate key", + "erc20:eth:BCAP:1f41": "(AUTO) duplicate key", + "erc20:eth:BCAP:ff35": "(AUTO) duplicate key", + "erc20:eth:BKB:5c39": "(AUTO) duplicate key", + "erc20:eth:BKB:b2bf": "(AUTO) duplicate key", + "erc20:eth:BNC:dd6b": "(AUTO) duplicate key", + "erc20:eth:BNC:ef51": "(AUTO) duplicate key", + "erc20:eth:BOX:63f5": "(AUTO) duplicate key", + "erc20:eth:BOX:e1a1": "(AUTO) duplicate key", + "erc20:eth:BTL (Battle)": "(AUTO) duplicate key", + "erc20:eth:BTL (Bitlle)": "(AUTO) duplicate key", + "erc20:eth:BTR:499a": "(AUTO) duplicate key", + "erc20:eth:BTR:cbf1": "(AUTO) duplicate key", + "erc20:eth:CAR": "(AUTO) duplicate key", + "erc20:eth:CAR (CarBlock)": "(AUTO) duplicate key", + "erc20:eth:CARD:1ed2": "(AUTO) duplicate key", + "erc20:eth:CARD:954b": "(AUTO) duplicate key", + "erc20:eth:CARD:b07e": "(AUTO) duplicate key", + "erc20:eth:CAS:7794": "(AUTO) duplicate key", + "erc20:eth:CAS:e878": "(AUTO) duplicate key", + "erc20:eth:CATS": "(AUTO) duplicate key", + "erc20:eth:CATs (BitClave)_Old": "(AUTO) duplicate key", + "erc20:eth:CDX:2cb1": "(AUTO) duplicate key", + "erc20:eth:CDX:6fff": "(AUTO) duplicate key", + "erc20:eth:COIN:5e8f": "(AUTO) duplicate key", + "erc20:eth:COIN:eb54": "(AUTO) duplicate key", + "erc20:eth:COSS:6529": "(AUTO) duplicate key", + "erc20:eth:COSS:9e96": "(AUTO) duplicate key", + "erc20:eth:CPC": "(AUTO) duplicate key", + "erc20:eth:CPT:88d5": "(AUTO) duplicate key", + "erc20:eth:CPT:9b62": "(AUTO) duplicate key", + "erc20:eth:DEPO": "(AUTO) duplicate key", + "erc20:eth:DEPO (Depository Network)": "(AUTO) duplicate key", + "erc20:eth:DOW:7697": "(AUTO) duplicate key", + "erc20:eth:DOW:eef6": "(AUTO) duplicate key", + "erc20:eth:DROP": "(AUTO) duplicate key", + "erc20:eth:DROP (dropil)": "(AUTO) duplicate key", + "erc20:eth:DRP:2799": "(AUTO) duplicate key", + "erc20:eth:DRP:621d": "(AUTO) duplicate key", + "erc20:eth:DTX": "(AUTO) duplicate key", + "erc20:eth:DTx": "(AUTO) duplicate key", + "erc20:eth:DUBI:9c6f": "(AUTO) duplicate key", + "erc20:eth:DUBI:d4cf": "(AUTO) duplicate key", + "erc20:eth:DUBI:ed7f": "(AUTO) duplicate key", + "erc20:eth:ECP:8869": "(AUTO) duplicate key", + "erc20:eth:ECP:aea1": "(AUTO) duplicate key", + "erc20:eth:EOS": "switched to custom network", + "erc20:eth:EVN:6890": "(AUTO) duplicate key", + "erc20:eth:EVN:d780": "(AUTO) duplicate key", + "erc20:eth:EXC:00c4": "(AUTO) duplicate key", + "erc20:eth:EXC:9e4c": "(AUTO) duplicate key", + "erc20:eth:FANX:7dcb": "(AUTO) duplicate key", + "erc20:eth:FANX:7f67": "(AUTO) duplicate key", + "erc20:eth:FLMC:04cc": "(AUTO) duplicate key", + "erc20:eth:FLMC:5976": "(AUTO) duplicate key", + "erc20:eth:FTC": "(AUTO) duplicate key", + "erc20:eth:FUCK:65be": "(AUTO) duplicate key", + "erc20:eth:FUCK:ab16": "(AUTO) duplicate key", + "erc20:eth:FXC:4a57": "(AUTO) duplicate key", + "erc20:eth:FXC:c92d": "(AUTO) duplicate key", + "erc20:eth:GANA:6754": "(AUTO) duplicate key", + "erc20:eth:GANA:c0ea": "(AUTO) duplicate key", + "erc20:eth:Hdp": "(AUTO) duplicate key", + "erc20:eth:Hdp.\u0444": "(AUTO) duplicate key", + "erc20:eth:IMT:1311": "(AUTO) duplicate key", + "erc20:eth:IMT:22e5": "(AUTO) duplicate key", + "erc20:eth:JBX:0aaf": "(AUTO) duplicate key", + "erc20:eth:JBX:884e": "(AUTO) duplicate key", + "erc20:eth:KEY:4cc1": "(AUTO) duplicate key", + "erc20:eth:KEY:4cd9": "(AUTO) duplicate key", + "erc20:eth:LCT:05c7": "(AUTO) duplicate key", + "erc20:eth:LCT:4a37": "(AUTO) duplicate key", + "erc20:eth:LEMO:60c2": "(AUTO) duplicate key", + "erc20:eth:LEMO:b5ae": "(AUTO) duplicate key", + "erc20:eth:LEMO:d6e3": "(AUTO) duplicate key", + "erc20:eth:LINK Platform": "(AUTO) duplicate key", + "erc20:eth:LNC": "(AUTO) duplicate key", + "erc20:eth:LNC (Linker Coin)": "(AUTO) duplicate key", + "erc20:eth:LYM:57ad": "(AUTO) duplicate key", + "erc20:eth:LYM:c690": "(AUTO) duplicate key", + "erc20:eth:MESH:01f2": "(AUTO) duplicate key", + "erc20:eth:MESH:f030": "(AUTO) duplicate key", + "erc20:eth:MIT": "(AUTO) duplicate key", + "erc20:eth:MIT (Mychatcoin)": "(AUTO) duplicate key", + "erc20:eth:MORE:5012": "(AUTO) duplicate key", + "erc20:eth:MORE:5906": "(AUTO) duplicate key", + "erc20:eth:MTC:905e": "(AUTO) duplicate key", + "erc20:eth:MTC:dfdc": "(AUTO) duplicate key", + "erc20:eth:NCC:5d48": "(AUTO) duplicate key", + "erc20:eth:NCC:9344": "(AUTO) duplicate key", + "erc20:eth:NTK:5d4d": "(AUTO) duplicate key", + "erc20:eth:NTK:69be": "(AUTO) duplicate key", + "erc20:eth:NXX OLD": "(AUTO) duplicate key", + "erc20:eth:OHNI:6f53": "(AUTO) duplicate key", + "erc20:eth:OHNI:7f21": "(AUTO) duplicate key", + "erc20:eth:OPEN:69c4": "(AUTO) duplicate key", + "erc20:eth:OPEN:e9de": "(AUTO) duplicate key", + "erc20:eth:ORME:516e": "(AUTO) duplicate key", + "erc20:eth:ORME:c96d": "(AUTO) duplicate key", + "erc20:eth:PASS:7776": "(AUTO) duplicate key", + "erc20:eth:PASS:ee44": "(AUTO) duplicate key", + "erc20:eth:PCH:e3f4": "(AUTO) duplicate key", + "erc20:eth:PCH:fcac": "(AUTO) duplicate key", + "erc20:eth:PLAY": "(AUTO) duplicate key", + "erc20:eth:PRO:226b": "(AUTO) duplicate key", + "erc20:eth:PRO:9041": "(AUTO) duplicate key", + "erc20:eth:PRPS:7641": "(AUTO) duplicate key", + "erc20:eth:PRPS:d94f": "(AUTO) duplicate key", + "erc20:eth:PRPS:e40c": "(AUTO) duplicate key", + "erc20:eth:PTC": "(AUTO) duplicate key", + "erc20:eth:RCT:13f2": "(AUTO) duplicate key", + "erc20:eth:RCT:2a3a": "(AUTO) duplicate key", + "erc20:eth:RING:86e5": "(AUTO) duplicate key", + "erc20:eth:RING:9469": "(AUTO) duplicate key", + "erc20:eth:SGT:3742": "(AUTO) duplicate key", + "erc20:eth:SGT:d248": "(AUTO) duplicate key", + "erc20:eth:SKRP:324a": "(AUTO) duplicate key", + "erc20:eth:SKRP:6e34": "(AUTO) duplicate key", + "erc20:eth:SKRP:fdfe": "(AUTO) duplicate key", + "erc20:eth:SMART": "(AUTO) duplicate key", + "erc20:eth:SMT:2dcf": "(AUTO) duplicate key", + "erc20:eth:SMT:55f9": "(AUTO) duplicate key", + "erc20:eth:SMT:78eb": "(AUTO) duplicate key", + "erc20:eth:SS:b15f": "(AUTO) duplicate key", + "erc20:eth:SS:bbff": "(AUTO) duplicate key", + "erc20:eth:TEL:85e0": "(AUTO) duplicate key", + "erc20:eth:TEL:ec32": "(AUTO) duplicate key", + "erc20:eth:TIC:614b": "(AUTO) duplicate key", + "erc20:eth:TIC:7243": "(AUTO) duplicate key", + "erc20:eth:TICO:7f4b": "(AUTO) duplicate key", + "erc20:eth:TICO:a5db": "(AUTO) duplicate key", + "erc20:eth:TRC": "(AUTO) duplicate key", + "erc20:eth:TRX": "switched to custom network", + "erc20:eth:UMKA:105d": "(AUTO) duplicate key", + "erc20:eth:UMKA:8e5a": "(AUTO) duplicate key", + "erc20:eth:VRS:92e7": "(AUTO) duplicate key", + "erc20:eth:VRS:edba": "(AUTO) duplicate key", + "erc20:eth:WHO:e200": "(AUTO) duplicate key", + "erc20:eth:WHO:e933": "(AUTO) duplicate key", + "erc20:eth:WIC": "(AUTO) duplicate key", + "erc20:eth:WOLK:7287": "(AUTO) duplicate key", + "erc20:eth:WOLK:f6b5": "(AUTO) duplicate key", + "erc20:eth:WORK:a686": "(AUTO) duplicate key", + "erc20:eth:WORK:d18e": "(AUTO) duplicate key", + "erc20:eth:WiC": "(AUTO) duplicate key", + "erc20:eth:YEED:6f7a": "(AUTO) duplicate key", + "erc20:eth:YEED:ca27": "(AUTO) duplicate key", + "misc:ADA": "not implemented", + "misc:EOS": "not implemented", + "misc:ONT": "not implemented", + "misc:TRX": "not implemented", + "misc:XMR": "not implemented", + "misc:XRP": "not implemented", + "misc:XTZ": "not implemented" + } + }, + "trezor2": { + "supported": { + "bitcoin:ACM": "2.0.10", + "bitcoin:AXE": "2.0.11", + "bitcoin:BCH": "2.0.7", + "bitcoin:BITC": "2.0.10", + "bitcoin:BSD": "2.0.10", + "bitcoin:BTC": "2.0.5", + "bitcoin:BTCP": "2.0.7", + "bitcoin:BTDX": "2.0.10", + "bitcoin:BTG": "2.0.7", + "bitcoin:BTX": "2.0.8", + "bitcoin:CPC": "2.0.10", + "bitcoin:DASH": "2.0.5", + "bitcoin:DCR": "2.0.8", + "bitcoin:DGB": "2.0.7", + "bitcoin:DNR": "2.0.8", + "bitcoin:DOGE": "2.0.5", + "bitcoin:FJC": "2.0.5", + "bitcoin:FLASH": "2.0.8", + "bitcoin:FLO": "2.0.11", + "bitcoin:FTC": "2.0.8", + "bitcoin:GAME": "2.0.8", + "bitcoin:GIN": "2.0.11", + "bitcoin:GRS": "2.0.8", + "bitcoin:KMD": "2.0.11", + "bitcoin:KOTO": "2.0.8", + "bitcoin:LTC": "2.0.5", + "bitcoin:MEC": "2.0.10", + "bitcoin:MONA": "2.0.5", + "bitcoin:MUE": "2.0.8", + "bitcoin:NIX": "2.0.11", + "bitcoin:NMC": "2.0.5", + "bitcoin:PIVX": "2.0.11", + "bitcoin:PTC": "2.0.8", + "bitcoin:QTUM": "2.1.1", + "bitcoin:RVN": "2.0.10", + "bitcoin:SMART": "2.0.8", + "bitcoin:TAZ": "2.0.7", + "bitcoin:TBCH": "2.0.7", + "bitcoin:TBTG": "2.0.8", + "bitcoin:TDCR": "2.0.8", + "bitcoin:TEST": "2.0.5", + "bitcoin:VIA": "2.0.7", + "bitcoin:VTC": "2.0.5", + "bitcoin:XMY": "2.0.8", + "bitcoin:XPM": "2.0.11", + "bitcoin:XSN": "2.0.11", + "bitcoin:XZC": "2.0.7", + "bitcoin:ZCL": "2.0.11", + "bitcoin:ZEC": "2.0.8", + "bitcoin:ZEN": "2.0.8", + "bitcoin:tDASH": "2.0.8", + "bitcoin:tGRS": "2.0.8", + "bitcoin:tLTC": "2.0.7", + "bitcoin:tPIVX": "2.0.11", + "bitcoin:tQTUM": "2.1.1", + "bitcoin:tSMART": "2.0.8", + "bitcoin:tXZC": "2.0.7", + "erc20:ella:MINING": "2.0.7", + "erc20:esn:DGT": "2.0.8", + "erc20:esn:TOPM": "2.0.8", + "erc20:etc:BEC": "2.0.7", + "erc20:etc:UNV": "2.0.8", + "erc20:eth:$FFC": "2.0.7", + "erc20:eth:$FXY": "2.0.7", + "erc20:eth:$HUR": "2.0.8", + "erc20:eth:$TEAK": "2.0.7", + "erc20:eth:0xBTC": "2.0.7", + "erc20:eth:1SG": "2.0.11", + "erc20:eth:1ST": "2.0.7", + "erc20:eth:1WO": "2.0.7", + "erc20:eth:22x": "2.0.10", + "erc20:eth:2DC": "2.0.7", + "erc20:eth:300": "2.0.7", + "erc20:eth:3LT": "2.0.8", + "erc20:eth:ABCH": "2.0.10", + "erc20:eth:ABT": "2.0.7", + "erc20:eth:ABYSS": "2.0.7", + "erc20:eth:ACC": "2.0.7", + "erc20:eth:ACE": "2.0.10", + "erc20:eth:ADB": "2.0.10", + "erc20:eth:ADH": "2.0.7", + "erc20:eth:ADI": "2.0.7", + "erc20:eth:ADL": "2.0.7", + "erc20:eth:ADST": "2.0.7", + "erc20:eth:ADT": "2.0.7", + "erc20:eth:ADX": "2.0.7", + "erc20:eth:AE": "2.0.7", + "erc20:eth:AFA": "2.0.10", + "erc20:eth:AGI": "2.0.7", + "erc20:eth:AI": "2.0.10", + "erc20:eth:AID": "2.0.10", + "erc20:eth:AION": "2.0.7", + "erc20:eth:AIR": "2.0.7", + "erc20:eth:AIX": "2.0.7", + "erc20:eth:AKC": "2.0.8", + "erc20:eth:ALCO": "2.0.7", + "erc20:eth:ALI": "2.0.10", + "erc20:eth:ALIS": "2.0.7", + "erc20:eth:ALTS": "2.0.7", + "erc20:eth:ALX": "2.0.10", + "erc20:eth:AMB": "2.0.7", + "erc20:eth:AMIS": "2.0.7", + "erc20:eth:AMLT": "2.0.8", + "erc20:eth:AMN": "2.0.7", + "erc20:eth:AMO": "2.0.7", + "erc20:eth:AMTC": "2.0.7", + "erc20:eth:ANT": "2.0.7", + "erc20:eth:AOA": "2.0.10", + "erc20:eth:APIS": "2.0.7", + "erc20:eth:APPC": "2.0.7", + "erc20:eth:APT": "2.0.7", + "erc20:eth:ARB": "2.0.10", + "erc20:eth:ARC": "2.0.7", + "erc20:eth:ARCT": "2.0.7", + "erc20:eth:ARD": "2.0.7", + "erc20:eth:ARN": "2.0.7", + "erc20:eth:ART": "2.0.7", + "erc20:eth:ARX": "2.0.7", + "erc20:eth:ARXT": "2.0.7", + "erc20:eth:ARY": "2.0.10", + "erc20:eth:AST": "2.0.7", + "erc20:eth:ASTRO": "2.0.10", + "erc20:eth:ATL": "2.0.7", + "erc20:eth:ATM": "2.0.10", + "erc20:eth:ATMI": "2.0.7", + "erc20:eth:ATT": "2.0.7", + "erc20:eth:ATTN": "2.0.7", + "erc20:eth:ATX": "2.0.10", + "erc20:eth:AUC": "2.0.10", + "erc20:eth:AURA": "2.0.10", + "erc20:eth:AUTO": "2.0.10", + "erc20:eth:AVA": "2.0.7", + "erc20:eth:AVT": "2.0.7", + "erc20:eth:AX1": "2.0.7", + "erc20:eth:AXP": "2.0.7", + "erc20:eth:AXPR": "2.0.8", + "erc20:eth:B2BX": "2.0.10", + "erc20:eth:BANCA": "2.0.10", + "erc20:eth:BANX": "2.0.7", + "erc20:eth:BAS": "2.0.10", + "erc20:eth:BAT": "2.0.7", + "erc20:eth:BAX": "2.0.10", + "erc20:eth:BBC": "2.0.10", + "erc20:eth:BBI": "2.0.10", + "erc20:eth:BBK": "2.0.7", + "erc20:eth:BBN": "2.0.10", + "erc20:eth:BBO": "2.0.10", + "erc20:eth:BC": "2.0.10", + "erc20:eth:BCBC": "2.0.7", + "erc20:eth:BCDN": "2.0.7", + "erc20:eth:BCDT": "2.0.7", + "erc20:eth:BCL": "2.0.7", + "erc20:eth:BCPT": "2.0.7", + "erc20:eth:BCV": "2.0.7", + "erc20:eth:BDG": "2.0.7", + "erc20:eth:BEE": "2.0.7", + "erc20:eth:BERRY": "2.0.7", + "erc20:eth:BET": "2.0.7", + "erc20:eth:BETHER": "2.0.8", + "erc20:eth:BETR": "2.0.7", + "erc20:eth:BEZ": "2.0.11", + "erc20:eth:BHPC": "2.0.10", + "erc20:eth:BHR": "2.0.10", + "erc20:eth:BIT": "2.0.11", + "erc20:eth:BITCAR": "2.0.10", + "erc20:eth:BITPARK": "2.0.10", + "erc20:eth:BIX": "2.0.10", + "erc20:eth:BKRx": "2.0.7", + "erc20:eth:BKX": "2.0.7", + "erc20:eth:BLN": "2.0.10", + "erc20:eth:BLT": "2.0.7", + "erc20:eth:BLUE": "2.0.7", + "erc20:eth:BLX (Bullion)": "2.0.7", + "erc20:eth:BLX (Iconomi)": "2.0.7", + "erc20:eth:BLZ": "2.0.7", + "erc20:eth:BMC": "2.0.7", + "erc20:eth:BMT": "2.0.7", + "erc20:eth:BMX": "2.0.7", + "erc20:eth:BNB": "2.0.7", + "erc20:eth:BNFT": "2.0.7", + "erc20:eth:BNN": "2.0.10", + "erc20:eth:BNT": "2.0.7", + "erc20:eth:BNTY": "2.0.7", + "erc20:eth:BOB": "2.0.7", + "erc20:eth:BON": "2.0.7", + "erc20:eth:BOP": "2.0.7", + "erc20:eth:BOU": "2.0.7", + "erc20:eth:BOUTS": "2.0.10", + "erc20:eth:BOXX": "2.0.10", + "erc20:eth:BPT": "2.0.7", + "erc20:eth:BQX": "2.0.7", + "erc20:eth:BRAT": "2.0.7", + "erc20:eth:BRD": "2.0.7", + "erc20:eth:BRLN": "2.0.10", + "erc20:eth:BSDC": "2.0.7", + "erc20:eth:BST": "2.0.7", + "erc20:eth:BTCA": "2.0.10", + "erc20:eth:BTCE": "2.0.7", + "erc20:eth:BTCL": "2.0.7", + "erc20:eth:BTCONE": "2.0.10", + "erc20:eth:BTCR": "2.0.10", + "erc20:eth:BTE": "2.0.7", + "erc20:eth:BTH": "2.0.7", + "erc20:eth:BTHR": "2.0.7", + "erc20:eth:BTK": "2.0.7", + "erc20:eth:BTM": "2.0.7", + "erc20:eth:BTO": "2.0.10", + "erc20:eth:BTQ": "2.0.7", + "erc20:eth:BTRN": "2.0.10", + "erc20:eth:BTT": "2.0.7", + "erc20:eth:BTTX": "2.0.7", + "erc20:eth:BTU": "2.0.10", + "erc20:eth:BTZ": "2.0.8", + "erc20:eth:BUC": "2.0.7", + "erc20:eth:BWX": "2.0.10", + "erc20:eth:BZ": "2.0.10", + "erc20:eth:BZNT": "2.0.10", + "erc20:eth:BeerCoin": "2.0.7", + "erc20:eth:C20": "2.0.7", + "erc20:eth:C8": "2.0.7", + "erc20:eth:CAG": "2.0.7", + "erc20:eth:CAN": "2.0.7", + "erc20:eth:CAPP": "2.0.10", + "erc20:eth:CARB": "2.0.7", + "erc20:eth:CARCO": "2.0.7", + "erc20:eth:CARE": "2.0.7", + "erc20:eth:CAT (BitClave)": "2.0.7", + "erc20:eth:CAT (BlockCAT)": "2.0.11", + "erc20:eth:CBC": "2.0.10", + "erc20:eth:CBIX": "2.0.8", + "erc20:eth:CBM": "2.0.11", + "erc20:eth:CBT": "2.0.10", + "erc20:eth:CC3": "2.0.7", + "erc20:eth:CCC (CryptoCrashCourse)": "2.0.7", + "erc20:eth:CCC (ICONOMI)": "2.0.7", + "erc20:eth:CCCX": "2.0.10", + "erc20:eth:CCLC": "2.0.7", + "erc20:eth:CCO": "2.0.10", + "erc20:eth:CCS": "2.0.7", + "erc20:eth:CCT": "2.0.10", + "erc20:eth:CDL": "2.0.7", + "erc20:eth:CDT": "2.0.7", + "erc20:eth:CEEK": "2.0.7", + "erc20:eth:CENNZ": "2.0.10", + "erc20:eth:CET": "2.0.8", + "erc20:eth:CFC": "2.0.8", + "erc20:eth:CFI": "2.0.7", + "erc20:eth:CFTY": "2.0.7", + "erc20:eth:CHP": "2.0.10", + "erc20:eth:CHSB": "2.0.7", + "erc20:eth:CHX": "2.0.10", + "erc20:eth:CIYA": "2.0.11", + "erc20:eth:CJT": "2.0.10", + "erc20:eth:CK": "2.0.7", + "erc20:eth:CL": "2.0.10", + "erc20:eth:CLB": "2.0.7", + "erc20:eth:CLL": "2.0.7", + "erc20:eth:CLN": "2.0.7", + "erc20:eth:CLP": "2.0.7", + "erc20:eth:CMBT": "2.0.7", + "erc20:eth:CMC": "2.0.7", + "erc20:eth:CMCT": "2.0.10", + "erc20:eth:CMT": "2.0.7", + "erc20:eth:CNB": "2.0.7", + "erc20:eth:CND": "2.0.7", + "erc20:eth:CNN": "2.0.10", + "erc20:eth:CO2": "2.0.7", + "erc20:eth:CO2Bit": "2.0.7", + "erc20:eth:COB": "2.0.7", + "erc20:eth:COFI": "2.0.7", + "erc20:eth:COIL": "2.0.7", + "erc20:eth:CORI": "2.0.8", + "erc20:eth:COSM": "2.0.10", + "erc20:eth:COV": "2.0.7", + "erc20:eth:CPAY": "2.0.10", + "erc20:eth:CPEX": "2.0.7", + "erc20:eth:CPLO": "2.0.10", + "erc20:eth:CPY": "2.0.7", + "erc20:eth:CR7": "2.0.7", + "erc20:eth:CRB": "2.0.7", + "erc20:eth:CRBT": "2.0.10", + "erc20:eth:CRC": "2.0.10", + "erc20:eth:CRED": "2.0.7", + "erc20:eth:CREDO": "2.0.7", + "erc20:eth:CRGO": "2.0.8", + "erc20:eth:CRMT": "2.0.8", + "erc20:eth:CRPT": "2.0.7", + "erc20:eth:CRT": "2.0.7", + "erc20:eth:CS": "2.0.10", + "erc20:eth:CSNO": "2.0.10", + "erc20:eth:CST": "2.0.10", + "erc20:eth:CTF": "2.0.7", + "erc20:eth:CTG": "2.0.7", + "erc20:eth:CTGC": "2.0.8", + "erc20:eth:CTL": "2.0.7", + "erc20:eth:CTR": "2.0.10", + "erc20:eth:CTT": "2.0.7", + "erc20:eth:CTX": "2.0.7", + "erc20:eth:CTXC": "2.0.10", + "erc20:eth:CVC": "2.0.7", + "erc20:eth:CVT": "2.0.10", + "erc20:eth:CXC": "2.0.7", + "erc20:eth:CXO": "2.0.7", + "erc20:eth:CYFM": "2.0.8", + "erc20:eth:CYMT": "2.0.10", + "erc20:eth:CZR": "2.0.10", + "erc20:eth:CryptoCarbon": "2.0.7", + "erc20:eth:DAB": "2.0.7", + "erc20:eth:DACS": "2.0.10", + "erc20:eth:DADI": "2.0.7", + "erc20:eth:DAI": "2.0.10", + "erc20:eth:DALC": "2.0.7", + "erc20:eth:DAN": "2.0.7", + "erc20:eth:DAO": "2.0.7", + "erc20:eth:DAT": "2.0.7", + "erc20:eth:DATA": "2.0.11", + "erc20:eth:DATABroker": "2.0.7", + "erc20:eth:DATX": "2.0.11", + "erc20:eth:DAV": "2.0.7", + "erc20:eth:DAX": "2.0.10", + "erc20:eth:DAXT": "2.0.7", + "erc20:eth:DAY": "2.0.7", + "erc20:eth:DBET": "2.0.10", + "erc20:eth:DCA": "2.0.7", + "erc20:eth:DCC": "2.0.8", + "erc20:eth:DCL": "2.0.7", + "erc20:eth:DCN": "2.0.7", + "erc20:eth:DDF": "2.0.7", + "erc20:eth:DEB": "2.0.7", + "erc20:eth:DEEZ": "2.0.7", + "erc20:eth:DELTA": "2.0.10", + "erc20:eth:DENT": "2.0.7", + "erc20:eth:DEW": "2.0.10", + "erc20:eth:DEX": "2.0.10", + "erc20:eth:DGD": "2.0.10", + "erc20:eth:DGPT": "2.0.7", + "erc20:eth:DGS": "2.0.8", + "erc20:eth:DGTX": "2.0.8", + "erc20:eth:DGX": "2.0.7", + "erc20:eth:DGX1": "2.0.8", + "erc20:eth:DICE": "2.0.7", + "erc20:eth:DIP": "2.0.8", + "erc20:eth:DIT": "2.0.10", + "erc20:eth:DIVX": "2.0.7", + "erc20:eth:DKP": "2.0.7", + "erc20:eth:DLT": "2.0.7", + "erc20:eth:DMT": "2.0.7", + "erc20:eth:DNA": "2.0.10", + "erc20:eth:DNT": "2.0.7", + "erc20:eth:DNX": "2.0.7", + "erc20:eth:DOCK": "2.0.10", + "erc20:eth:DOR": "2.0.10", + "erc20:eth:DOV": "2.0.10", + "erc20:eth:DPP": "2.0.7", + "erc20:eth:DREAM": "2.0.11", + "erc20:eth:DRGN": "2.0.7", + "erc20:eth:DRPU": "2.0.10", + "erc20:eth:DRT": "2.0.10", + "erc20:eth:DRVH": "2.0.8", + "erc20:eth:DSC": "2.0.7", + "erc20:eth:DSCP": "2.0.8", + "erc20:eth:DST": "2.0.11", + "erc20:eth:DTH": "2.0.7", + "erc20:eth:DTR": "2.0.7", + "erc20:eth:DTRC": "2.0.10", + "erc20:eth:DTT": "2.0.7", + "erc20:eth:DXT": "2.0.10", + "erc20:eth:Devcon2 Token": "2.0.7", + "erc20:eth:E4ROW": "2.0.10", + "erc20:eth:EAGLE": "2.0.7", + "erc20:eth:EARTH": "2.0.10", + "erc20:eth:EBC": "2.0.10", + "erc20:eth:EBTC": "2.0.11", + "erc20:eth:ECN": "2.0.7", + "erc20:eth:ECO2": "2.0.7", + "erc20:eth:ECOM": "2.0.10", + "erc20:eth:EDC": "2.0.7", + "erc20:eth:EDG": "2.0.7", + "erc20:eth:EDO": "2.0.7", + "erc20:eth:EDR": "2.0.8", + "erc20:eth:EDU": "2.0.11", + "erc20:eth:EGT": "2.0.11", + "erc20:eth:EHT": "2.0.7", + "erc20:eth:EKO": "2.0.10", + "erc20:eth:EKT": "2.0.10", + "erc20:eth:ELEC": "2.0.10", + "erc20:eth:ELF": "2.0.7", + "erc20:eth:ELIX": "2.0.7", + "erc20:eth:ELTCOIN": "2.0.7", + "erc20:eth:ELY": "2.0.8", + "erc20:eth:EMON": "2.0.7", + "erc20:eth:EMONT": "2.0.7", + "erc20:eth:EMT": "2.0.7", + "erc20:eth:EMV": "2.0.7", + "erc20:eth:ENC": "2.0.7", + "erc20:eth:ENG": "2.0.7", + "erc20:eth:ENGT": "2.0.11", + "erc20:eth:ENJ": "2.0.7", + "erc20:eth:ENTRP": "2.0.7", + "erc20:eth:EPX": "2.0.7", + "erc20:eth:EPY": "2.0.10", + "erc20:eth:EQL": "2.0.10", + "erc20:eth:ERO": "2.0.10", + "erc20:eth:ERT": "2.0.10", + "erc20:eth:ESZ": "2.0.7", + "erc20:eth:ETBS": "2.0.7", + "erc20:eth:ETCH": "2.0.7", + "erc20:eth:ETG": "2.0.10", + "erc20:eth:ETHB": "2.0.7", + "erc20:eth:ETHD": "2.0.10", + "erc20:eth:ETK": "2.0.10", + "erc20:eth:ETR": "2.0.7", + "erc20:eth:EURS": "2.0.10", + "erc20:eth:EURT": "2.0.7", + "erc20:eth:EVC": "2.0.10", + "erc20:eth:EVE": "2.0.7", + "erc20:eth:EVX": "2.0.7", + "erc20:eth:EWO": "2.0.10", + "erc20:eth:EXMR": "2.0.7", + "erc20:eth:EXRN": "2.0.10", + "erc20:eth:EXY": "2.0.8", + "erc20:eth:EZT": "2.0.10", + "erc20:eth:E\u20b9": "2.0.8", + "erc20:eth:FABA": "2.0.10", + "erc20:eth:FACE": "2.0.10", + "erc20:eth:FAM": "2.0.7", + "erc20:eth:FAN": "2.0.8", + "erc20:eth:FDZ": "2.0.10", + "erc20:eth:FGP": "2.0.10", + "erc20:eth:FID": "2.0.10", + "erc20:eth:FIH": "2.0.11", + "erc20:eth:FKX": "2.0.7", + "erc20:eth:FLIXX": "2.0.7", + "erc20:eth:FLOT": "2.0.10", + "erc20:eth:FLP": "2.0.7", + "erc20:eth:FLR": "2.0.7", + "erc20:eth:FLUZ": "2.0.7", + "erc20:eth:FLX": "2.0.7", + "erc20:eth:FMF": "2.0.11", + "erc20:eth:FND": "2.0.7", + "erc20:eth:FNKOS": "2.0.10", + "erc20:eth:FNTB": "2.0.10", + "erc20:eth:FOOD": "2.0.10", + "erc20:eth:FOTA": "2.0.10", + "erc20:eth:FR8": "2.0.11", + "erc20:eth:FRD": "2.0.7", + "erc20:eth:FREC": "2.0.10", + "erc20:eth:FRV": "2.0.10", + "erc20:eth:FSN": "2.0.10", + "erc20:eth:FT": "2.0.10", + "erc20:eth:FTI": "2.0.10", + "erc20:eth:FTR": "2.0.7", + "erc20:eth:FTT": "2.0.7", + "erc20:eth:FTX": "2.0.10", + "erc20:eth:FTXT": "2.0.8", + "erc20:eth:FUEL": "2.0.7", + "erc20:eth:FUN": "2.0.7", + "erc20:eth:FXT": "2.0.10", + "erc20:eth:FYN": "2.0.7", + "erc20:eth:FYP": "2.0.10", + "erc20:eth:Fzcoin": "2.0.10", + "erc20:eth:GAM": "2.0.7", + "erc20:eth:GAT": "2.0.10", + "erc20:eth:GAVEL": "2.0.7", + "erc20:eth:GBT": "2.0.7", + "erc20:eth:GBX": "2.0.7", + "erc20:eth:GCP": "2.0.7", + "erc20:eth:GEE": "2.0.7", + "erc20:eth:GELD": "2.0.7", + "erc20:eth:GEM": "2.0.10", + "erc20:eth:GEN": "2.0.7", + "erc20:eth:GENE": "2.0.11", + "erc20:eth:GET": "2.0.7", + "erc20:eth:GIF": "2.0.7", + "erc20:eth:GIM": "2.0.7", + "erc20:eth:GLA": "2.0.10", + "erc20:eth:GMT": "2.0.7", + "erc20:eth:GNO": "2.0.7", + "erc20:eth:GNT": "2.0.10", + "erc20:eth:GNX": "2.0.10", + "erc20:eth:GNY": "2.0.10", + "erc20:eth:GOLDX": "2.0.7", + "erc20:eth:GOT": "2.0.10", + "erc20:eth:GRID": "2.0.7", + "erc20:eth:GRMD": "2.0.10", + "erc20:eth:GROO": "2.0.10", + "erc20:eth:GROW": "2.0.7", + "erc20:eth:GSC": "2.0.10", + "erc20:eth:GSE": "2.0.8", + "erc20:eth:GTC": "2.0.7", + "erc20:eth:GTKT": "2.0.7", + "erc20:eth:GTO": "2.0.7", + "erc20:eth:GUESS": "2.0.10", + "erc20:eth:GULD": "2.0.8", + "erc20:eth:GUP": "2.0.10", + "erc20:eth:GUSD": "2.0.11", + "erc20:eth:GVT": "2.0.7", + "erc20:eth:GXC": "2.0.7", + "erc20:eth:GXVC": "2.0.7", + "erc20:eth:GZB": "2.0.11", + "erc20:eth:GZE": "2.0.7", + "erc20:eth:GZR": "2.0.7", + "erc20:eth:HAND": "2.0.10", + "erc20:eth:HAPPY": "2.0.8", + "erc20:eth:HAT": "2.0.7", + "erc20:eth:HB": "2.0.10", + "erc20:eth:HBT": "2.0.10", + "erc20:eth:HBZ": "2.0.10", + "erc20:eth:HDG": "2.0.7", + "erc20:eth:HDL": "2.0.10", + "erc20:eth:HER": "2.0.10", + "erc20:eth:HGT": "2.0.7", + "erc20:eth:HIBT": "2.0.8", + "erc20:eth:HIG": "2.0.7", + "erc20:eth:HKG": "2.0.7", + "erc20:eth:HKN": "2.0.10", + "erc20:eth:HKY": "2.0.7", + "erc20:eth:HLX": "2.0.10", + "erc20:eth:HMC": "2.0.10", + "erc20:eth:HMQ": "2.0.7", + "erc20:eth:HODL": "2.0.7", + "erc20:eth:HORSE": "2.0.7", + "erc20:eth:HOT (Holo)": "2.0.11", + "erc20:eth:HOT (Hydro)": "2.0.11", + "erc20:eth:HPB": "2.0.10", + "erc20:eth:HST": "2.0.7", + "erc20:eth:HT": "2.0.10", + "erc20:eth:HVN": "2.0.7", + "erc20:eth:HYDRO": "2.0.7", + "erc20:eth:IAD": "2.0.7", + "erc20:eth:ICE": "2.0.7", + "erc20:eth:ICN": "2.0.7", + "erc20:eth:ICO": "2.0.7", + "erc20:eth:ICOS": "2.0.7", + "erc20:eth:ICX": "2.0.7", + "erc20:eth:IDEA": "2.0.7", + "erc20:eth:IDH": "2.0.10", + "erc20:eth:IDXM": "2.0.10", + "erc20:eth:IETH": "2.0.11", + "erc20:eth:IFT": "2.0.7", + "erc20:eth:IG": "2.0.10", + "erc20:eth:IHT": "2.0.10", + "erc20:eth:IIC": "2.0.7", + "erc20:eth:IKB": "2.0.7", + "erc20:eth:IMC": "2.0.7", + "erc20:eth:IND": "2.0.7", + "erc20:eth:ING": "2.0.10", + "erc20:eth:INRM": "2.0.7", + "erc20:eth:INS": "2.0.7", + "erc20:eth:INSTAR": "2.0.7", + "erc20:eth:INT": "2.0.10", + "erc20:eth:INV": "2.0.10", + "erc20:eth:INXT": "2.0.7", + "erc20:eth:IOST": "2.0.7", + "erc20:eth:IOTX": "2.0.7", + "erc20:eth:IPL": "2.0.7", + "erc20:eth:IPSX": "2.0.7", + "erc20:eth:IQN": "2.0.8", + "erc20:eth:IST34": "2.0.8", + "erc20:eth:ITC": "2.0.7", + "erc20:eth:ITT": "2.0.7", + "erc20:eth:IVY": "2.0.10", + "erc20:eth:IXT": "2.0.7", + "erc20:eth:IoT": "2.0.7", + "erc20:eth:J8T": "2.0.7", + "erc20:eth:JC": "2.0.10", + "erc20:eth:JET": "2.0.7", + "erc20:eth:JNT": "2.0.7", + "erc20:eth:JOT": "2.0.10", + "erc20:eth:JOY": "2.0.7", + "erc20:eth:JetCoins": "2.0.7", + "erc20:eth:KAN": "2.0.10", + "erc20:eth:KC": "2.0.10", + "erc20:eth:KEE": "2.0.7", + "erc20:eth:KICK": "2.0.7", + "erc20:eth:KIN": "2.0.7", + "erc20:eth:KIND": "2.0.10", + "erc20:eth:KNC": "2.0.7", + "erc20:eth:KNDC": "2.0.10", + "erc20:eth:KNT": "2.0.10", + "erc20:eth:KPR": "2.0.7", + "erc20:eth:KRL": "2.0.7", + "erc20:eth:KUE": "2.0.10", + "erc20:eth:KWATT": "2.0.10", + "erc20:eth:KZN": "2.0.7", + "erc20:eth:LA": "2.0.7", + "erc20:eth:LALA": "2.0.7", + "erc20:eth:LATX": "2.0.10", + "erc20:eth:LBA": "2.0.10", + "erc20:eth:LCS": "2.0.10", + "erc20:eth:LDC": "2.0.7", + "erc20:eth:LEDU": "2.0.11", + "erc20:eth:LEND": "2.0.7", + "erc20:eth:LEV": "2.0.10", + "erc20:eth:LFR": "2.0.7", + "erc20:eth:LG": "2.0.10", + "erc20:eth:LGO": "2.0.7", + "erc20:eth:LGR": "2.0.7", + "erc20:eth:LIBER": "2.0.10", + "erc20:eth:LIF": "2.0.7", + "erc20:eth:LIFE": "2.0.7", + "erc20:eth:LIKE": "2.0.10", + "erc20:eth:LINK (Chainlink)": "2.0.7", + "erc20:eth:LIVE": "2.0.7", + "erc20:eth:LKY": "2.0.10", + "erc20:eth:LML": "2.0.10", + "erc20:eth:LND": "2.0.7", + "erc20:eth:LOC": "2.0.7", + "erc20:eth:LOCI": "2.0.7", + "erc20:eth:LOCUS": "2.0.7", + "erc20:eth:LOK": "2.0.7", + "erc20:eth:LOOK": "2.0.8", + "erc20:eth:LOOM": "2.0.7", + "erc20:eth:LOVE": "2.0.8", + "erc20:eth:LPT": "2.0.7", + "erc20:eth:LRC": "2.0.7", + "erc20:eth:LUC": "2.0.7", + "erc20:eth:LUCK": "2.0.7", + "erc20:eth:LUM": "2.0.7", + "erc20:eth:LUN": "2.0.7", + "erc20:eth:LYS": "2.0.7", + "erc20:eth:M-ETH": "2.0.7", + "erc20:eth:MAD": "2.0.7", + "erc20:eth:MAN": "2.0.7", + "erc20:eth:MANA": "2.0.7", + "erc20:eth:MART": "2.0.7", + "erc20:eth:MBRS": "2.0.7", + "erc20:eth:MCAP": "2.0.7", + "erc20:eth:MCI": "2.0.7", + "erc20:eth:MCO": "2.0.7", + "erc20:eth:MDA": "2.0.7", + "erc20:eth:MDS": "2.0.10", + "erc20:eth:MDT": "2.0.10", + "erc20:eth:MEDX": "2.0.10", + "erc20:eth:MEST": "2.0.7", + "erc20:eth:MET": "2.0.10", + "erc20:eth:METM": "2.0.10", + "erc20:eth:MFG": "2.0.7", + "erc20:eth:MFT": "2.0.8", + "erc20:eth:MFTU": "2.0.8", + "erc20:eth:MGO": "2.0.7", + "erc20:eth:MIC": "2.0.10", + "erc20:eth:MITX": "2.0.11", + "erc20:eth:MKR": "2.0.10", + "erc20:eth:MKT": "2.0.7", + "erc20:eth:MLN (new)": "2.0.11", + "erc20:eth:MLN (old):deprecated": "2.0.11", + "erc20:eth:MNE": "2.0.7", + "erc20:eth:MNT": "2.0.7", + "erc20:eth:MNTP": "2.0.7", + "erc20:eth:MOC": "2.0.10", + "erc20:eth:MOD": "2.0.7", + "erc20:eth:MOT": "2.0.10", + "erc20:eth:MOZO": "2.0.10", + "erc20:eth:MRK": "2.0.10", + "erc20:eth:MRL": "2.0.7", + "erc20:eth:MRP": "2.0.7", + "erc20:eth:MRV": "2.0.7", + "erc20:eth:MSP": "2.0.7", + "erc20:eth:MTH": "2.0.7", + "erc20:eth:MTL": "2.0.7", + "erc20:eth:MTN": "2.0.7", + "erc20:eth:MTR": "2.0.7", + "erc20:eth:MTRc": "2.0.7", + "erc20:eth:MTX": "2.0.7", + "erc20:eth:MUXE": "2.0.7", + "erc20:eth:MVL": "2.0.10", + "erc20:eth:MVP": "2.0.7", + "erc20:eth:MWAT": "2.0.7", + "erc20:eth:MYD": "2.0.7", + "erc20:eth:MYST": "2.0.7", + "erc20:eth:NAC": "2.0.7", + "erc20:eth:NANJ": "2.0.7", + "erc20:eth:NAS": "2.0.10", + "erc20:eth:NAVI": "2.0.7", + "erc20:eth:NBAI": "2.0.7", + "erc20:eth:NBC": "2.0.10", + "erc20:eth:NCASH": "2.0.11", + "erc20:eth:NCT": "2.0.7", + "erc20:eth:NDC": "2.0.7", + "erc20:eth:NDX": "2.0.11", + "erc20:eth:NEC": "2.0.7", + "erc20:eth:NEEO": "2.0.10", + "erc20:eth:NET": "2.0.7", + "erc20:eth:NEU": "2.0.7", + "erc20:eth:NEWB": "2.0.10", + "erc20:eth:NEXO": "2.0.10", + "erc20:eth:NGC": "2.0.7", + "erc20:eth:NIMFA": "2.0.7", + "erc20:eth:NIO": "2.0.10", + "erc20:eth:NMR": "2.0.7", + "erc20:eth:NOAH": "2.0.10", + "erc20:eth:NOBS": "2.0.10", + "erc20:eth:NONE": "2.0.10", + "erc20:eth:NOX": "2.0.7", + "erc20:eth:NPER": "2.0.7", + "erc20:eth:NPX": "2.0.10", + "erc20:eth:NPXS": "2.0.7", + "erc20:eth:NTO": "2.0.10", + "erc20:eth:NTWK": "2.0.10", + "erc20:eth:NUG": "2.0.8", + "erc20:eth:NULS": "2.0.7", + "erc20:eth:NXX": "2.0.7", + "erc20:eth:NxC": "2.0.7", + "erc20:eth:OAK": "2.0.7", + "erc20:eth:OAX": "2.0.7", + "erc20:eth:OCC": "2.0.7", + "erc20:eth:OCN": "2.0.10", + "erc20:eth:ODE": "2.0.8", + "erc20:eth:OJX": "2.0.7", + "erc20:eth:OLD_MKR": "2.0.7", + "erc20:eth:OLE": "2.0.10", + "erc20:eth:OLT": "2.0.8", + "erc20:eth:OMG": "2.0.7", + "erc20:eth:OMT": "2.0.8", + "erc20:eth:OMX": "2.0.10", + "erc20:eth:ONE": "2.0.11", + "erc20:eth:ONEK": "2.0.7", + "erc20:eth:ONG": "2.0.11", + "erc20:eth:ONL": "2.0.10", + "erc20:eth:OPT": "2.0.7", + "erc20:eth:OPTI": "2.0.10", + "erc20:eth:ORBS": "2.0.7", + "erc20:eth:ORCA": "2.0.8", + "erc20:eth:ORI": "2.0.10", + "erc20:eth:ORS": "2.0.10", + "erc20:eth:OST": "2.0.7", + "erc20:eth:OTN": "2.0.10", + "erc20:eth:OWN": "2.0.8", + "erc20:eth:Ox Fina": "2.0.7", + "erc20:eth:PAI": "2.0.10", + "erc20:eth:PAL": "2.0.7", + "erc20:eth:PARETO": "2.0.7", + "erc20:eth:PAT": "2.0.11", + "erc20:eth:PATENTS": "2.0.7", + "erc20:eth:PATH": "2.0.7", + "erc20:eth:PAX": "2.0.10", + "erc20:eth:PAY": "2.0.7", + "erc20:eth:PBL": "2.0.7", + "erc20:eth:PBT": "2.0.7", + "erc20:eth:PCL": "2.0.7", + "erc20:eth:PCLOLD": "2.0.7", + "erc20:eth:PDATA": "2.0.10", + "erc20:eth:PEG": "2.0.8", + "erc20:eth:PET": "2.0.7", + "erc20:eth:PETRO": "2.0.7", + "erc20:eth:PEXT": "2.0.7", + "erc20:eth:PFR": "2.0.10", + "erc20:eth:PHI": "2.0.10", + "erc20:eth:PIPL": "2.0.7", + "erc20:eth:PIT": "2.0.11", + "erc20:eth:PIX": "2.0.7", + "erc20:eth:PKG": "2.0.10", + "erc20:eth:PKT": "2.0.10", + "erc20:eth:PLASMA": "2.0.7", + "erc20:eth:PLBT": "2.0.7", + "erc20:eth:PLR": "2.0.7", + "erc20:eth:PLS": "2.0.8", + "erc20:eth:PLU": "2.0.7", + "erc20:eth:PMA": "2.0.10", + "erc20:eth:PMNT": "2.0.10", + "erc20:eth:PNK": "2.0.10", + "erc20:eth:POA20": "2.0.10", + "erc20:eth:POE": "2.0.7", + "erc20:eth:POIN": "2.0.7", + "erc20:eth:POLL": "2.0.10", + "erc20:eth:POLY": "2.0.7", + "erc20:eth:POOL": "2.0.7", + "erc20:eth:POP": "2.0.11", + "erc20:eth:POS": "2.0.7", + "erc20:eth:POWR": "2.0.7", + "erc20:eth:PPP": "2.0.7", + "erc20:eth:PPT": "2.0.7", + "erc20:eth:PRE": "2.0.7", + "erc20:eth:PRG": "2.0.7", + "erc20:eth:PRIX": "2.0.10", + "erc20:eth:PRL": "2.0.7", + "erc20:eth:PRON": "2.0.7", + "erc20:eth:PRS": "2.0.7", + "erc20:eth:PRSP": "2.0.7", + "erc20:eth:PST": "2.0.10", + "erc20:eth:PT": "2.0.7", + "erc20:eth:PTON": "2.0.10", + "erc20:eth:PTOY": "2.0.7", + "erc20:eth:PTT": "2.0.10", + "erc20:eth:PTWO": "2.0.7", + "erc20:eth:PUC": "2.0.7", + "erc20:eth:PURC": "2.0.8", + "erc20:eth:PXT": "2.0.7", + "erc20:eth:PYLNT": "2.0.10", + "erc20:eth:QASH": "2.0.7", + "erc20:eth:QAU": "2.0.7", + "erc20:eth:QBIT": "2.0.10", + "erc20:eth:QBX": "2.0.7", + "erc20:eth:QKC": "2.0.10", + "erc20:eth:QNT": "2.0.8", + "erc20:eth:QRG": "2.0.7", + "erc20:eth:QRL": "2.0.7", + "erc20:eth:QSP": "2.0.7", + "erc20:eth:QTQ": "2.0.7", + "erc20:eth:QTUM": "2.0.7", + "erc20:eth:QUN": "2.0.10", + "erc20:eth:QVT": "2.0.10", + "erc20:eth:R": "2.0.10", + "erc20:eth:RAO": "2.0.7", + "erc20:eth:RATING": "2.0.11", + "erc20:eth:RBLX": "2.0.7", + "erc20:eth:RCN": "2.0.7", + "erc20:eth:RDN": "2.0.10", + "erc20:eth:REA": "2.0.7", + "erc20:eth:REAL": "2.0.10", + "erc20:eth:REBL": "2.0.7", + "erc20:eth:RED": "2.0.7", + "erc20:eth:REDC": "2.0.8", + "erc20:eth:REF": "2.0.10", + "erc20:eth:REM": "2.0.10", + "erc20:eth:REMI": "2.0.11", + "erc20:eth:REN": "2.0.7", + "erc20:eth:REP": "2.0.10", + "erc20:eth:REP:deprecated": "2.0.10", + "erc20:eth:REQ": "2.0.7", + "erc20:eth:REX": "2.0.7", + "erc20:eth:RFR": "2.0.7", + "erc20:eth:RGS": "2.0.10", + "erc20:eth:RHOC": "2.0.10", + "erc20:eth:RIPT": "2.0.7", + "erc20:eth:RIYA": "2.0.10", + "erc20:eth:RKT": "2.0.10", + "erc20:eth:RLC": "2.0.7", + "erc20:eth:RLT": "2.0.7", + "erc20:eth:RLTY": "2.0.7", + "erc20:eth:RLX": "2.0.7", + "erc20:eth:RMC": "2.0.10", + "erc20:eth:RMESH": "2.0.10", + "erc20:eth:RNDR": "2.0.7", + "erc20:eth:RNT": "2.0.10", + "erc20:eth:RNTB": "2.0.10", + "erc20:eth:ROC": "2.0.10", + "erc20:eth:ROCK": "2.0.7", + "erc20:eth:ROCK2": "2.0.10", + "erc20:eth:ROCK2PAY": "2.0.10", + "erc20:eth:ROK": "2.0.7", + "erc20:eth:ROUND": "2.0.7", + "erc20:eth:RPL": "2.0.7", + "erc20:eth:RTB": "2.0.10", + "erc20:eth:RTH": "2.0.10", + "erc20:eth:RTN": "2.0.7", + "erc20:eth:RUFF": "2.0.10", + "erc20:eth:RUNE": "2.0.10", + "erc20:eth:RVL": "2.0.7", + "erc20:eth:RVT": "2.0.7", + "erc20:eth:S-A-PAT": "2.0.7", + "erc20:eth:S-ETH": "2.0.7", + "erc20:eth:SAC": "2.0.10", + "erc20:eth:SALT": "2.0.7", + "erc20:eth:SAN": "2.0.7", + "erc20:eth:SCANDI": "2.0.7", + "erc20:eth:SCL": "2.0.7", + "erc20:eth:SCRL": "2.0.10", + "erc20:eth:SEELE": "2.0.11", + "erc20:eth:SENC": "2.0.10", + "erc20:eth:SENSE": "2.0.7", + "erc20:eth:SENT": "2.0.10", + "erc20:eth:SET": "2.0.7", + "erc20:eth:SEXY": "2.0.7", + "erc20:eth:SGEL": "2.0.7", + "erc20:eth:SGN": "2.0.10", + "erc20:eth:SGP": "2.0.10", + "erc20:eth:SGR": "2.0.10", + "erc20:eth:SHIP": "2.0.10", + "erc20:eth:SHIT": "2.0.7", + "erc20:eth:SHL": "2.0.10", + "erc20:eth:SHP": "2.0.10", + "erc20:eth:SIFT": "2.0.7", + "erc20:eth:SIG": "2.0.7", + "erc20:eth:SKB": "2.0.10", + "erc20:eth:SKE": "2.0.11", + "erc20:eth:SKIN": "2.0.7", + "erc20:eth:SKM": "2.0.10", + "erc20:eth:SKO1": "2.0.7", + "erc20:eth:SKR": "2.0.7", + "erc20:eth:SKYM": "2.0.11", + "erc20:eth:SLT": "2.0.7", + "erc20:eth:SLY": "2.0.8", + "erc20:eth:SMS": "2.0.10", + "erc20:eth:SNBL": "2.0.10", + "erc20:eth:SNC": "2.0.7", + "erc20:eth:SND": "2.0.7", + "erc20:eth:SNG": "2.0.7", + "erc20:eth:SNGLS": "2.0.7", + "erc20:eth:SNIP": "2.0.7", + "erc20:eth:SNM": "2.0.7", + "erc20:eth:SNOV": "2.0.7", + "erc20:eth:SNT": "2.0.7", + "erc20:eth:SNTR": "2.0.10", + "erc20:eth:SNX": "2.0.11", + "erc20:eth:SOAR": "2.0.11", + "erc20:eth:SOC": "2.0.10", + "erc20:eth:SOL": "2.0.7", + "erc20:eth:SONIQ": "2.0.10", + "erc20:eth:SOUL": "2.0.11", + "erc20:eth:SPANK": "2.0.7", + "erc20:eth:SPARC": "2.0.7", + "erc20:eth:SPARTA": "2.0.7", + "erc20:eth:SPD": "2.0.10", + "erc20:eth:SPF": "2.0.7", + "erc20:eth:SPHTX": "2.0.10", + "erc20:eth:SPICE": "2.0.10", + "erc20:eth:SPN": "2.0.7", + "erc20:eth:SPX": "2.0.10", + "erc20:eth:SRN": "2.0.7", + "erc20:eth:SSH": "2.0.7", + "erc20:eth:SSP": "2.0.10", + "erc20:eth:STABIT": "2.0.8", + "erc20:eth:STAC": "2.0.7", + "erc20:eth:STACS": "2.0.11", + "erc20:eth:STAR": "2.0.7", + "erc20:eth:STB": "2.0.10", + "erc20:eth:STC": "2.0.7", + "erc20:eth:STK": "2.0.7", + "erc20:eth:STN": "2.0.7", + "erc20:eth:STORJ": "2.0.7", + "erc20:eth:STORM": "2.0.7", + "erc20:eth:STP": "2.0.7", + "erc20:eth:STQ": "2.0.7", + "erc20:eth:STR": "2.0.10", + "erc20:eth:STRC": "2.0.7", + "erc20:eth:STU": "2.0.10", + "erc20:eth:STX": "2.0.7", + "erc20:eth:SUB": "2.0.7", + "erc20:eth:SUR": "2.0.10", + "erc20:eth:SVD": "2.0.10", + "erc20:eth:SWFTC": "2.0.10", + "erc20:eth:SWM": "2.0.7", + "erc20:eth:SWT": "2.0.7", + "erc20:eth:SXDT": "2.0.7", + "erc20:eth:SXUT": "2.0.7", + "erc20:eth:SYN": "2.0.7", + "erc20:eth:SenSatorI": "2.0.7", + "erc20:eth:TALAO": "2.0.10", + "erc20:eth:TAU": "2.0.7", + "erc20:eth:TBC2": "2.0.7", + "erc20:eth:TBT": "2.0.7", + "erc20:eth:TBX": "2.0.10", + "erc20:eth:TCA": "2.0.8", + "erc20:eth:TCH": "2.0.10", + "erc20:eth:TDH": "2.0.7", + "erc20:eth:TEAM": "2.0.10", + "erc20:eth:TEN": "2.0.10", + "erc20:eth:TFD": "2.0.10", + "erc20:eth:TFL": "2.0.7", + "erc20:eth:TGAME": "2.0.10", + "erc20:eth:TGT": "2.0.10", + "erc20:eth:THETA": "2.0.7", + "erc20:eth:THR": "2.0.10", + "erc20:eth:THRT": "2.0.10", + "erc20:eth:THUG": "2.0.7", + "erc20:eth:TIE": "2.0.10", + "erc20:eth:TIG": "2.0.10", + "erc20:eth:TIME": "2.0.7", + "erc20:eth:TIO": "2.0.7", + "erc20:eth:TIX": "2.0.7", + "erc20:eth:TKA": "2.0.10", + "erc20:eth:TKLN": "2.0.11", + "erc20:eth:TKN": "2.0.7", + "erc20:eth:TKR": "2.0.10", + "erc20:eth:TLX": "2.0.8", + "erc20:eth:TMT": "2.0.10", + "erc20:eth:TNS": "2.0.10", + "erc20:eth:TNT": "2.0.7", + "erc20:eth:TOK": "2.0.11", + "erc20:eth:TOMO": "2.0.10", + "erc20:eth:TOOR": "2.0.8", + "erc20:eth:TRAC": "2.0.10", + "erc20:eth:TRAK": "2.0.10", + "erc20:eth:TRCN": "2.0.7", + "erc20:eth:TRCT": "2.0.10", + "erc20:eth:TRDT": "2.0.10", + "erc20:eth:TRST": "2.0.7", + "erc20:eth:TSW": "2.0.8", + "erc20:eth:TTA": "2.0.10", + "erc20:eth:TTC": "2.0.11", + "erc20:eth:TTU": "2.0.10", + "erc20:eth:TUSD": "2.0.10", + "erc20:eth:TWN": "2.0.7", + "erc20:eth:TWNKL": "2.0.7", + "erc20:eth:TaaS": "2.0.7", + "erc20:eth:UBT": "2.0.10", + "erc20:eth:UCASH": "2.0.10", + "erc20:eth:UCN": "2.0.10", + "erc20:eth:UFR": "2.0.10", + "erc20:eth:UKG": "2.0.7", + "erc20:eth:UP": "2.0.10", + "erc20:eth:UPP": "2.0.10", + "erc20:eth:UQC": "2.0.7", + "erc20:eth:URB": "2.0.8", + "erc20:eth:USDC": "2.0.8", + "erc20:eth:USDM": "2.0.7", + "erc20:eth:USDS": "2.0.11", + "erc20:eth:USDT": "2.0.10", + "erc20:eth:UTK": "2.0.7", + "erc20:eth:UTNP": "2.0.11", + "erc20:eth:UTT": "2.0.10", + "erc20:eth:UUU": "2.0.7", + "erc20:eth:Unicorn": "2.0.7", + "erc20:eth:VDG": "2.0.8", + "erc20:eth:VDOC": "2.0.7", + "erc20:eth:VEE": "2.0.7", + "erc20:eth:VEN": "2.0.7", + "erc20:eth:VENUS": "2.0.7", + "erc20:eth:VERI": "2.0.7", + "erc20:eth:VIB": "2.0.7", + "erc20:eth:VIBE": "2.0.11", + "erc20:eth:VIBEX": "2.0.11", + "erc20:eth:VIEW": "2.0.7", + "erc20:eth:VIKKY": "2.0.10", + "erc20:eth:VIN": "2.0.10", + "erc20:eth:VIT": "2.0.7", + "erc20:eth:VITE": "2.0.10", + "erc20:eth:VIU": "2.0.7", + "erc20:eth:VLD": "2.0.7", + "erc20:eth:VOC": "2.0.7", + "erc20:eth:VOISE": "2.0.7", + "erc20:eth:VSL": "2.0.7", + "erc20:eth:VUU": "2.0.10", + "erc20:eth:VZT": "2.0.10", + "erc20:eth:WAB": "2.0.10", + "erc20:eth:WABI": "2.0.11", + "erc20:eth:WATT": "2.0.8", + "erc20:eth:WAX": "2.0.7", + "erc20:eth:WBA": "2.0.7", + "erc20:eth:WBTC": "2.0.11", + "erc20:eth:WCN": "2.0.7", + "erc20:eth:WCT": "2.0.7", + "erc20:eth:WEB": "2.0.10", + "erc20:eth:WETH": "2.0.7", + "erc20:eth:WHEN": "2.0.7", + "erc20:eth:WILD": "2.0.7", + "erc20:eth:WIN": "2.0.10", + "erc20:eth:WINGS": "2.0.7", + "erc20:eth:WISH": "2.0.10", + "erc20:eth:WMK": "2.0.8", + "erc20:eth:WNK": "2.0.8", + "erc20:eth:WOC": "2.0.11", + "erc20:eth:WPC": "2.0.7", + "erc20:eth:WPR": "2.0.7", + "erc20:eth:WRC": "2.0.10", + "erc20:eth:WRK": "2.0.7", + "erc20:eth:WTC": "2.0.7", + "erc20:eth:WTT": "2.0.10", + "erc20:eth:WYS": "2.0.7", + "erc20:eth:WYV": "2.0.7", + "erc20:eth:X8X": "2.0.7", + "erc20:eth:XAUR": "2.0.7", + "erc20:eth:XBL": "2.0.10", + "erc20:eth:XBP": "2.0.7", + "erc20:eth:XCC": "2.0.7", + "erc20:eth:XCHF": "2.0.11", + "erc20:eth:XCLR": "2.0.10", + "erc20:eth:XDCE": "2.0.10", + "erc20:eth:XES": "2.0.10", + "erc20:eth:XET": "2.0.10", + "erc20:eth:XFS": "2.0.7", + "erc20:eth:XGG": "2.0.7", + "erc20:eth:XGM": "2.0.7", + "erc20:eth:XGT": "2.0.7", + "erc20:eth:XID": "2.0.7", + "erc20:eth:XMCT": "2.0.10", + "erc20:eth:XMX": "2.0.10", + "erc20:eth:XNK": "2.0.7", + "erc20:eth:XNN": "2.0.7", + "erc20:eth:XNT": "2.0.7", + "erc20:eth:XOV": "2.0.10", + "erc20:eth:XPA": "2.0.10", + "erc20:eth:XPAT": "2.0.11", + "erc20:eth:XRL": "2.0.7", + "erc20:eth:XSC": "2.0.7", + "erc20:eth:XYO": "2.0.10", + "erc20:eth:YEE": "2.0.10", + "erc20:eth:YOYOW": "2.0.10", + "erc20:eth:YUP": "2.0.8", + "erc20:eth:YUPIE": "2.0.7", + "erc20:eth:ZAP": "2.0.7", + "erc20:eth:ZCN": "2.0.10", + "erc20:eth:ZCO": "2.0.10", + "erc20:eth:ZCS": "2.0.7", + "erc20:eth:ZEUS": "2.0.11", + "erc20:eth:ZIL": "2.0.7", + "erc20:eth:ZINC": "2.0.10", + "erc20:eth:ZIP": "2.0.10", + "erc20:eth:ZIPT": "2.0.10", + "erc20:eth:ZIX": "2.0.11", + "erc20:eth:ZLA": "2.0.10", + "erc20:eth:ZMN": "2.0.7", + "erc20:eth:ZPR": "2.0.10", + "erc20:eth:ZRX": "2.0.10", + "erc20:eth:ZST": "2.0.7", + "erc20:eth:ZTX": "2.0.10", + "erc20:eth:ZXC": "2.0.10", + "erc20:eth:cV": "2.0.7", + "erc20:eth:eBCH": "2.0.7", + "erc20:eth:eGAS": "2.0.7", + "erc20:eth:eUSD": "2.0.7", + "erc20:eth:eosDAC": "2.0.7", + "erc20:eth:sUSD": "2.0.11", + "erc20:kov:Aeternity": "2.0.7", + "erc20:kov:DAI": "2.0.10", + "erc20:kov:DGD": "2.0.10", + "erc20:kov:GNT": "2.0.10", + "erc20:kov:GUP": "2.0.10", + "erc20:kov:MKR": "2.0.10", + "erc20:kov:MLN": "2.0.10", + "erc20:kov:REP": "2.0.10", + "erc20:kov:ZRX": "2.0.10", + "erc20:rin:AETH": "2.0.7", + "erc20:rin:BHNT": "2.0.7", + "erc20:rin:CTGA": "2.0.7", + "erc20:rin:KC": "2.0.10", + "erc20:rin:NONE": "2.0.10", + "erc20:rin:PPD": "2.0.7", + "erc20:rin:RDN": "2.0.10", + "erc20:rin:WALL": "2.0.7", + "erc20:rop:*PLASMA": "2.0.8", + "erc20:rop:ILSC": "2.0.7", + "erc20:rop:NONE": "2.0.10", + "erc20:rop:dqr30": "2.0.10", + "erc20:ubq:BEER": "2.0.7", + "erc20:ubq:CEFS": "2.0.7", + "erc20:ubq:DOT": "2.0.7", + "erc20:ubq:QWARK": "2.0.7", + "erc20:ubq:RICKS": "2.0.7", + "eth:AKA": "2.0.8", + "eth:ATH": "2.0.8", + "eth:ATS": "2.0.11", + "eth:CLO": "2.0.7", + "eth:DXN": "2.1.1", + "eth:EGEM": "2.0.7", + "eth:ELLA": "2.0.7", + "eth:EOSC": "2.0.7", + "eth:ESN": "2.0.8", + "eth:ETC": "2.0.7", + "eth:ETH": "2.0.7", + "eth:ETHO": "2.0.8", + "eth:ETSC": "2.0.7", + "eth:EXP": "2.0.7", + "eth:GO": "2.0.7", + "eth:MIX": "2.0.10", + "eth:MUSIC": "2.0.8", + "eth:PIRL": "2.0.8", + "eth:RBTC": "2.0.7", + "eth:REOSC": "2.0.11", + "eth:UBQ": "2.0.7", + "eth:tATS": "2.0.11", + "eth:tETC": "2.0.7", + "eth:tKOV": "2.0.7", + "eth:tRBTC": "2.0.7", + "eth:tRIN": "2.0.7", + "eth:tROP": "2.0.7", + "misc:ADA": "2.0.8", + "misc:LSK": "2.0.7", + "misc:MAID": "2.0.10", + "misc:OMNI": "2.0.10", + "misc:USDT": "2.0.10", + "misc:WAN": "2.0.7", + "misc:XLM": "2.0.8", + "misc:XMR": "2.0.8", + "misc:XRP": "2.0.8", + "misc:XTZ": "2.0.8", + "misc:tXRP": "2.0.8", + "nem:BREEZE": "2.0.7", + "nem:DIM": "2.0.7", + "nem:DIMTOK": "2.0.7", + "nem:PAC:CHS": "2.0.7", + "nem:PAC:HRT": "2.0.7", + "nem:XEM": "2.0.7" + }, + "unsupported": { + "bitcoin:CRW": "address_type collides with Bitcoin", + "bitcoin:TRC": "address_type collides with Bitcoin", + "erc20:etc:PLAY": "(AUTO) duplicate key", + "erc20:eth:A18:ba7d": "(AUTO) duplicate key", + "erc20:eth:A18:bde8": "(AUTO) duplicate key", + "erc20:eth:ATH": "(AUTO) duplicate key", + "erc20:eth:ATH (AIgatha Token)": "(AUTO) duplicate key", + "erc20:eth:ATS": "(AUTO) duplicate key", + "erc20:eth:BCAP:1f41": "(AUTO) duplicate key", + "erc20:eth:BCAP:ff35": "(AUTO) duplicate key", + "erc20:eth:BKB:5c39": "(AUTO) duplicate key", + "erc20:eth:BKB:b2bf": "(AUTO) duplicate key", + "erc20:eth:BNC:dd6b": "(AUTO) duplicate key", + "erc20:eth:BNC:ef51": "(AUTO) duplicate key", + "erc20:eth:BOX:63f5": "(AUTO) duplicate key", + "erc20:eth:BOX:e1a1": "(AUTO) duplicate key", + "erc20:eth:BTL (Battle)": "(AUTO) duplicate key", + "erc20:eth:BTL (Bitlle)": "(AUTO) duplicate key", + "erc20:eth:BTR:499a": "(AUTO) duplicate key", + "erc20:eth:BTR:cbf1": "(AUTO) duplicate key", + "erc20:eth:CAR": "(AUTO) duplicate key", + "erc20:eth:CAR (CarBlock)": "(AUTO) duplicate key", + "erc20:eth:CARD:1ed2": "(AUTO) duplicate key", + "erc20:eth:CARD:954b": "(AUTO) duplicate key", + "erc20:eth:CARD:b07e": "(AUTO) duplicate key", + "erc20:eth:CAS:7794": "(AUTO) duplicate key", + "erc20:eth:CAS:e878": "(AUTO) duplicate key", + "erc20:eth:CATS": "(AUTO) duplicate key", + "erc20:eth:CATs (BitClave)_Old": "(AUTO) duplicate key", + "erc20:eth:CDX:2cb1": "(AUTO) duplicate key", + "erc20:eth:CDX:6fff": "(AUTO) duplicate key", + "erc20:eth:COIN:5e8f": "(AUTO) duplicate key", + "erc20:eth:COIN:eb54": "(AUTO) duplicate key", + "erc20:eth:COSS:6529": "(AUTO) duplicate key", + "erc20:eth:COSS:9e96": "(AUTO) duplicate key", + "erc20:eth:CPC": "(AUTO) duplicate key", + "erc20:eth:CPT:88d5": "(AUTO) duplicate key", + "erc20:eth:CPT:9b62": "(AUTO) duplicate key", + "erc20:eth:DEPO": "(AUTO) duplicate key", + "erc20:eth:DEPO (Depository Network)": "(AUTO) duplicate key", + "erc20:eth:DOW:7697": "(AUTO) duplicate key", + "erc20:eth:DOW:eef6": "(AUTO) duplicate key", + "erc20:eth:DROP": "(AUTO) duplicate key", + "erc20:eth:DROP (dropil)": "(AUTO) duplicate key", + "erc20:eth:DRP:2799": "(AUTO) duplicate key", + "erc20:eth:DRP:621d": "(AUTO) duplicate key", + "erc20:eth:DTX": "(AUTO) duplicate key", + "erc20:eth:DTx": "(AUTO) duplicate key", + "erc20:eth:DUBI:9c6f": "(AUTO) duplicate key", + "erc20:eth:DUBI:d4cf": "(AUTO) duplicate key", + "erc20:eth:DUBI:ed7f": "(AUTO) duplicate key", + "erc20:eth:ECP:8869": "(AUTO) duplicate key", + "erc20:eth:ECP:aea1": "(AUTO) duplicate key", + "erc20:eth:EOS": "switched to custom network", + "erc20:eth:EVN:6890": "(AUTO) duplicate key", + "erc20:eth:EVN:d780": "(AUTO) duplicate key", + "erc20:eth:EXC:00c4": "(AUTO) duplicate key", + "erc20:eth:EXC:9e4c": "(AUTO) duplicate key", + "erc20:eth:FANX:7dcb": "(AUTO) duplicate key", + "erc20:eth:FANX:7f67": "(AUTO) duplicate key", + "erc20:eth:FLMC:04cc": "(AUTO) duplicate key", + "erc20:eth:FLMC:5976": "(AUTO) duplicate key", + "erc20:eth:FTC": "(AUTO) duplicate key", + "erc20:eth:FUCK:65be": "(AUTO) duplicate key", + "erc20:eth:FUCK:ab16": "(AUTO) duplicate key", + "erc20:eth:FXC:4a57": "(AUTO) duplicate key", + "erc20:eth:FXC:c92d": "(AUTO) duplicate key", + "erc20:eth:GANA:6754": "(AUTO) duplicate key", + "erc20:eth:GANA:c0ea": "(AUTO) duplicate key", + "erc20:eth:Hdp": "(AUTO) duplicate key", + "erc20:eth:Hdp.\u0444": "(AUTO) duplicate key", + "erc20:eth:IMT:1311": "(AUTO) duplicate key", + "erc20:eth:IMT:22e5": "(AUTO) duplicate key", + "erc20:eth:JBX:0aaf": "(AUTO) duplicate key", + "erc20:eth:JBX:884e": "(AUTO) duplicate key", + "erc20:eth:KEY:4cc1": "(AUTO) duplicate key", + "erc20:eth:KEY:4cd9": "(AUTO) duplicate key", + "erc20:eth:LCT:05c7": "(AUTO) duplicate key", + "erc20:eth:LCT:4a37": "(AUTO) duplicate key", + "erc20:eth:LEMO:60c2": "(AUTO) duplicate key", + "erc20:eth:LEMO:b5ae": "(AUTO) duplicate key", + "erc20:eth:LEMO:d6e3": "(AUTO) duplicate key", + "erc20:eth:LINK Platform": "(AUTO) duplicate key", + "erc20:eth:LNC": "(AUTO) duplicate key", + "erc20:eth:LNC (Linker Coin)": "(AUTO) duplicate key", + "erc20:eth:LYM:57ad": "(AUTO) duplicate key", + "erc20:eth:LYM:c690": "(AUTO) duplicate key", + "erc20:eth:MESH:01f2": "(AUTO) duplicate key", + "erc20:eth:MESH:f030": "(AUTO) duplicate key", + "erc20:eth:MIT": "(AUTO) duplicate key", + "erc20:eth:MIT (Mychatcoin)": "(AUTO) duplicate key", + "erc20:eth:MORE:5012": "(AUTO) duplicate key", + "erc20:eth:MORE:5906": "(AUTO) duplicate key", + "erc20:eth:MTC:905e": "(AUTO) duplicate key", + "erc20:eth:MTC:dfdc": "(AUTO) duplicate key", + "erc20:eth:NCC:5d48": "(AUTO) duplicate key", + "erc20:eth:NCC:9344": "(AUTO) duplicate key", + "erc20:eth:NTK:5d4d": "(AUTO) duplicate key", + "erc20:eth:NTK:69be": "(AUTO) duplicate key", + "erc20:eth:NXX OLD": "(AUTO) duplicate key", + "erc20:eth:OHNI:6f53": "(AUTO) duplicate key", + "erc20:eth:OHNI:7f21": "(AUTO) duplicate key", + "erc20:eth:OPEN:69c4": "(AUTO) duplicate key", + "erc20:eth:OPEN:e9de": "(AUTO) duplicate key", + "erc20:eth:ORME:516e": "(AUTO) duplicate key", + "erc20:eth:ORME:c96d": "(AUTO) duplicate key", + "erc20:eth:PASS:7776": "(AUTO) duplicate key", + "erc20:eth:PASS:ee44": "(AUTO) duplicate key", + "erc20:eth:PCH:e3f4": "(AUTO) duplicate key", + "erc20:eth:PCH:fcac": "(AUTO) duplicate key", + "erc20:eth:PLAY": "(AUTO) duplicate key", + "erc20:eth:PRO:226b": "(AUTO) duplicate key", + "erc20:eth:PRO:9041": "(AUTO) duplicate key", + "erc20:eth:PRPS:7641": "(AUTO) duplicate key", + "erc20:eth:PRPS:d94f": "(AUTO) duplicate key", + "erc20:eth:PRPS:e40c": "(AUTO) duplicate key", + "erc20:eth:PTC": "(AUTO) duplicate key", + "erc20:eth:RCT:13f2": "(AUTO) duplicate key", + "erc20:eth:RCT:2a3a": "(AUTO) duplicate key", + "erc20:eth:RING:86e5": "(AUTO) duplicate key", + "erc20:eth:RING:9469": "(AUTO) duplicate key", + "erc20:eth:SGT:3742": "(AUTO) duplicate key", + "erc20:eth:SGT:d248": "(AUTO) duplicate key", + "erc20:eth:SKRP:324a": "(AUTO) duplicate key", + "erc20:eth:SKRP:6e34": "(AUTO) duplicate key", + "erc20:eth:SKRP:fdfe": "(AUTO) duplicate key", + "erc20:eth:SMART": "(AUTO) duplicate key", + "erc20:eth:SMT:2dcf": "(AUTO) duplicate key", + "erc20:eth:SMT:55f9": "(AUTO) duplicate key", + "erc20:eth:SMT:78eb": "(AUTO) duplicate key", + "erc20:eth:SS:b15f": "(AUTO) duplicate key", + "erc20:eth:SS:bbff": "(AUTO) duplicate key", + "erc20:eth:TEL:85e0": "(AUTO) duplicate key", + "erc20:eth:TEL:ec32": "(AUTO) duplicate key", + "erc20:eth:TIC:614b": "(AUTO) duplicate key", + "erc20:eth:TIC:7243": "(AUTO) duplicate key", + "erc20:eth:TICO:7f4b": "(AUTO) duplicate key", + "erc20:eth:TICO:a5db": "(AUTO) duplicate key", + "erc20:eth:TRC": "(AUTO) duplicate key", + "erc20:eth:TRX": "switched to custom network", + "erc20:eth:UMKA:105d": "(AUTO) duplicate key", + "erc20:eth:UMKA:8e5a": "(AUTO) duplicate key", + "erc20:eth:VRS:92e7": "(AUTO) duplicate key", + "erc20:eth:VRS:edba": "(AUTO) duplicate key", + "erc20:eth:WHO:e200": "(AUTO) duplicate key", + "erc20:eth:WHO:e933": "(AUTO) duplicate key", + "erc20:eth:WIC": "(AUTO) duplicate key", + "erc20:eth:WOLK:7287": "(AUTO) duplicate key", + "erc20:eth:WOLK:f6b5": "(AUTO) duplicate key", + "erc20:eth:WORK:a686": "(AUTO) duplicate key", + "erc20:eth:WORK:d18e": "(AUTO) duplicate key", + "erc20:eth:WiC": "(AUTO) duplicate key", + "erc20:eth:YEED:6f7a": "(AUTO) duplicate key", + "erc20:eth:YEED:ca27": "(AUTO) duplicate key" + } + }, + "webwallet": { + "supported": { + "bitcoin:ACM": true, + "bitcoin:BCH": true, + "bitcoin:BTC": true, + "bitcoin:BTCP": true, + "bitcoin:BTG": true, + "bitcoin:DASH": true, + "bitcoin:DCR": true, + "bitcoin:DGB": true, + "bitcoin:DOGE": true, + "bitcoin:FJC": true, + "bitcoin:GRS": true, + "bitcoin:KOTO": true, + "bitcoin:LTC": true, + "bitcoin:MONA": true, + "bitcoin:NMC": true, + "bitcoin:RVN": true, + "bitcoin:TAZ": true, + "bitcoin:TDCR": true, + "bitcoin:TEST": true, + "bitcoin:VIA": true, + "bitcoin:VTC": true, + "bitcoin:XZC": true, + "bitcoin:ZEC": true, + "bitcoin:tGRS": true, + "bitcoin:tLTC": true, + "eth:ETC": true, + "eth:ETH": true + }, + "unsupported": {} + } +} diff --git a/common/defs/wallets.json b/common/defs/wallets.json new file mode 100644 index 000000000..d92f05b8c --- /dev/null +++ b/common/defs/wallets.json @@ -0,0 +1,67 @@ +{ + "bitcoin:ACM": { + "Actilectrum": "https://actilectrum.org" + }, + "bitcoin:BCH": { + "Electron Cash": "https://electroncash.org" + }, + "bitcoin:BTC": { + "Electrum": "https://electrum.org" + }, + "bitcoin:BTCP": { + "BTCP Electrum": "https://github.com/BTCPrivate/electrum-btcp" + }, + "bitcoin:BTG": { + "ElectrumG": "https://github.com/BTCGPU/electrum" + }, + "bitcoin:BTX": { + "Electrum-BTX": "https://github.com/LIMXTEC/electrum-btx" + }, + "bitcoin:DASH": { + "Dash Electrum": "https://electrum.dash.org" + }, + "bitcoin:FJC": { + "Electrum-FJC": "http://www.fujicoin.org/downloads.php" + }, + "bitcoin:FTC": { + "Electrum-FTC": "https://github.com/Feathercoin-Foundation/electrum-ftc" + }, + "bitcoin:GAME": { + "Electrum-GAME": "https://electrum-game.org" + }, + "bitcoin:GRS": { + "Electrum-GRS": "https://www.groestlcoin.org/groestlcoin-electrum-wallet" + }, + "bitcoin:KOTO": { + "Electrum-KOTO": "https://electrum.kotocoin.info" + }, + "bitcoin:LTC": { + "Electrum-LTC": "https://electrum-ltc.org" + }, + "bitcoin:MONA": { + "Electrum-MONA": "https://electrum-mona.org" + }, + "bitcoin:NMC": { + "Electrum-NMC": "https://github.com/namecoin/electrum-nmc" + }, + "bitcoin:VIA": { + "Vialectrum": "https://vialectrum.org" + }, + "bitcoin:XZC": { + "Electrum-XZC": "https://github.com/zcoinofficial/electrum-xzc", + "Znode Tool": "https://github.com/yura-pakhuchiy/znode-tool" + }, + "bitcoin:SMART": { + "Electrum-SMART": "https://github.com/smartcash/electrum-smart" + }, + "bitcoin:NIX": { + "NIX-Electrum": "https://github.com/nixplatform/electrum-nix", + "Ghostnode Tool": "https://github.com/nixplatform/ghostnode-tool" + }, + "bitcoin:QTUM": { + "Qtum-Electrum": "https://github.com/qtumproject/qtum-electrum" + }, + "bitcoin:RVN": { + "Electrum-RVN": "https://github.com/traysi/electrum-raven" + } +} diff --git a/common/defs/webauthn/apps/bitbucket.json b/common/defs/webauthn/apps/bitbucket.json new file mode 100644 index 000000000..e5e7a0bff --- /dev/null +++ b/common/defs/webauthn/apps/bitbucket.json @@ -0,0 +1,4 @@ +{ + "label": "Bitbucket", + "u2f": "https://bitbucket.org" +} diff --git a/common/defs/webauthn/apps/bitbucket.png b/common/defs/webauthn/apps/bitbucket.png new file mode 100644 index 000000000..d8307c4df Binary files /dev/null and b/common/defs/webauthn/apps/bitbucket.png differ diff --git a/common/defs/webauthn/apps/bitfinex.json b/common/defs/webauthn/apps/bitfinex.json new file mode 100644 index 000000000..c144860bc --- /dev/null +++ b/common/defs/webauthn/apps/bitfinex.json @@ -0,0 +1,4 @@ +{ + "label": "Bitfinex", + "u2f": "https://www.bitfinex.com" +} diff --git a/common/defs/webauthn/apps/bitfinex.png b/common/defs/webauthn/apps/bitfinex.png new file mode 100644 index 000000000..80b352983 Binary files /dev/null and b/common/defs/webauthn/apps/bitfinex.png differ diff --git a/common/defs/webauthn/apps/bitwarden.json b/common/defs/webauthn/apps/bitwarden.json new file mode 100644 index 000000000..12f185f89 --- /dev/null +++ b/common/defs/webauthn/apps/bitwarden.json @@ -0,0 +1,4 @@ +{ + "label": "Bitwarden", + "u2f": "https://vault.bitwarden.com/app-id.json" +} diff --git a/common/defs/webauthn/apps/dashlane.json b/common/defs/webauthn/apps/dashlane.json new file mode 100644 index 000000000..6969adfe3 --- /dev/null +++ b/common/defs/webauthn/apps/dashlane.json @@ -0,0 +1,4 @@ +{ + "label": "Dashlane", + "u2f": "https://www.dashlane.com" +} diff --git a/common/defs/webauthn/apps/dashlane.png b/common/defs/webauthn/apps/dashlane.png new file mode 100644 index 000000000..cfb5c115d Binary files /dev/null and b/common/defs/webauthn/apps/dashlane.png differ diff --git a/common/defs/webauthn/apps/dropbox.json b/common/defs/webauthn/apps/dropbox.json new file mode 100644 index 000000000..e97f52884 --- /dev/null +++ b/common/defs/webauthn/apps/dropbox.json @@ -0,0 +1,5 @@ +{ + "label": "Dropbox", + "u2f": "https://www.dropbox.com/u2f-app-id.json", + "webauthn": "www.dropbox.com" +} diff --git a/common/defs/webauthn/apps/dropbox.png b/common/defs/webauthn/apps/dropbox.png new file mode 100644 index 000000000..c2ef266d5 Binary files /dev/null and b/common/defs/webauthn/apps/dropbox.png differ diff --git a/common/defs/webauthn/apps/duo.json b/common/defs/webauthn/apps/duo.json new file mode 100644 index 000000000..51d83661c --- /dev/null +++ b/common/defs/webauthn/apps/duo.json @@ -0,0 +1,4 @@ +{ + "label": "Duo", + "u2f": "https://api-9dcf9b83.duosecurity.com" +} diff --git a/common/defs/webauthn/apps/duo.png b/common/defs/webauthn/apps/duo.png new file mode 100644 index 000000000..ec31b1a6e Binary files /dev/null and b/common/defs/webauthn/apps/duo.png differ diff --git a/common/defs/webauthn/apps/fastmail.json b/common/defs/webauthn/apps/fastmail.json new file mode 100644 index 000000000..2e3d2e8f3 --- /dev/null +++ b/common/defs/webauthn/apps/fastmail.json @@ -0,0 +1,4 @@ +{ + "label": "FastMail", + "u2f": "https://www.fastmail.com" +} diff --git a/common/defs/webauthn/apps/fastmail.png b/common/defs/webauthn/apps/fastmail.png new file mode 100644 index 000000000..1ef1233be Binary files /dev/null and b/common/defs/webauthn/apps/fastmail.png differ diff --git a/common/defs/webauthn/apps/fedora.json b/common/defs/webauthn/apps/fedora.json new file mode 100644 index 000000000..b1c921393 --- /dev/null +++ b/common/defs/webauthn/apps/fedora.json @@ -0,0 +1,4 @@ +{ + "label": "Fedora", + "u2f": "https://id.fedoraproject.org/u2f-origins.json" +} diff --git a/common/defs/webauthn/apps/fedora.png b/common/defs/webauthn/apps/fedora.png new file mode 100644 index 000000000..d01c272d6 Binary files /dev/null and b/common/defs/webauthn/apps/fedora.png differ diff --git a/common/defs/webauthn/apps/gandi.json b/common/defs/webauthn/apps/gandi.json new file mode 100644 index 000000000..9f27a2668 --- /dev/null +++ b/common/defs/webauthn/apps/gandi.json @@ -0,0 +1,4 @@ +{ + "label": "Gandi", + "u2f": "https://account.gandi.net/api/u2f/trusted_facets.json" +} diff --git a/common/defs/webauthn/apps/gandi.png b/common/defs/webauthn/apps/gandi.png new file mode 100644 index 000000000..724e558f0 Binary files /dev/null and b/common/defs/webauthn/apps/gandi.png differ diff --git a/common/defs/webauthn/apps/github.json b/common/defs/webauthn/apps/github.json new file mode 100644 index 000000000..4afd557e1 --- /dev/null +++ b/common/defs/webauthn/apps/github.json @@ -0,0 +1,4 @@ +{ + "label": "GitHub", + "u2f": "https://github.com/u2f/trusted_facets" +} diff --git a/common/defs/webauthn/apps/github.png b/common/defs/webauthn/apps/github.png new file mode 100644 index 000000000..773f69530 Binary files /dev/null and b/common/defs/webauthn/apps/github.png differ diff --git a/common/defs/webauthn/apps/gitlab.json b/common/defs/webauthn/apps/gitlab.json new file mode 100644 index 000000000..261f3fa33 --- /dev/null +++ b/common/defs/webauthn/apps/gitlab.json @@ -0,0 +1,4 @@ +{ + "label": "GitLab", + "u2f": "https://gitlab.com" +} diff --git a/common/defs/webauthn/apps/gitlab.png b/common/defs/webauthn/apps/gitlab.png new file mode 100644 index 000000000..5c32dddaa Binary files /dev/null and b/common/defs/webauthn/apps/gitlab.png differ diff --git a/common/defs/webauthn/apps/google.json b/common/defs/webauthn/apps/google.json new file mode 100644 index 000000000..bd86f22a0 --- /dev/null +++ b/common/defs/webauthn/apps/google.json @@ -0,0 +1,4 @@ +{ + "label": "Google", + "u2f": "https://www.gstatic.com/securitykey/origins.json" +} diff --git a/common/defs/webauthn/apps/google.png b/common/defs/webauthn/apps/google.png new file mode 100644 index 000000000..de5a29a17 Binary files /dev/null and b/common/defs/webauthn/apps/google.png differ diff --git a/common/defs/webauthn/apps/keeper.json b/common/defs/webauthn/apps/keeper.json new file mode 100644 index 000000000..97677a061 --- /dev/null +++ b/common/defs/webauthn/apps/keeper.json @@ -0,0 +1,4 @@ +{ + "label": "Keeper", + "u2f": "https://keepersecurity.com" +} diff --git a/common/defs/webauthn/apps/keeper.png b/common/defs/webauthn/apps/keeper.png new file mode 100644 index 000000000..ab934e235 Binary files /dev/null and b/common/defs/webauthn/apps/keeper.png differ diff --git a/common/defs/webauthn/apps/lastpass.json b/common/defs/webauthn/apps/lastpass.json new file mode 100644 index 000000000..721de8a75 --- /dev/null +++ b/common/defs/webauthn/apps/lastpass.json @@ -0,0 +1,4 @@ +{ + "label": "LastPass", + "u2f": "https://lastpass.com" +} diff --git a/common/defs/webauthn/apps/lastpass.png b/common/defs/webauthn/apps/lastpass.png new file mode 100644 index 000000000..2eb382d5d Binary files /dev/null and b/common/defs/webauthn/apps/lastpass.png differ diff --git a/common/defs/webauthn/apps/login.gov.json b/common/defs/webauthn/apps/login.gov.json new file mode 100644 index 000000000..c892da420 --- /dev/null +++ b/common/defs/webauthn/apps/login.gov.json @@ -0,0 +1,4 @@ +{ + "label": "login.gov", + "webauthn": "secure.login.gov" +} diff --git a/common/defs/webauthn/apps/login.gov.png b/common/defs/webauthn/apps/login.gov.png new file mode 100644 index 000000000..a33cb5ace Binary files /dev/null and b/common/defs/webauthn/apps/login.gov.png differ diff --git a/common/defs/webauthn/apps/slushpool.json b/common/defs/webauthn/apps/slushpool.json new file mode 100644 index 000000000..c821da769 --- /dev/null +++ b/common/defs/webauthn/apps/slushpool.json @@ -0,0 +1,4 @@ +{ + "label": "Slush Pool", + "u2f": "https://slushpool.com/static/security/u2f.json" +} diff --git a/common/defs/webauthn/apps/slushpool.png b/common/defs/webauthn/apps/slushpool.png new file mode 100644 index 000000000..2cbd58791 Binary files /dev/null and b/common/defs/webauthn/apps/slushpool.png differ diff --git a/common/defs/webauthn/apps/stripe.json b/common/defs/webauthn/apps/stripe.json new file mode 100644 index 000000000..403696c7f --- /dev/null +++ b/common/defs/webauthn/apps/stripe.json @@ -0,0 +1,4 @@ +{ + "label": "Stripe", + "u2f": "https://dashboard.stripe.com" +} diff --git a/common/defs/webauthn/apps/stripe.png b/common/defs/webauthn/apps/stripe.png new file mode 100644 index 000000000..351d67723 Binary files /dev/null and b/common/defs/webauthn/apps/stripe.png differ diff --git a/common/defs/webauthn/apps/u2f.bin.coffee.json b/common/defs/webauthn/apps/u2f.bin.coffee.json new file mode 100644 index 000000000..6fecab464 --- /dev/null +++ b/common/defs/webauthn/apps/u2f.bin.coffee.json @@ -0,0 +1,4 @@ +{ + "label": "u2f.bin.coffee", + "u2f": "https://u2f.bin.coffee" +} diff --git a/common/defs/webauthn/apps/webauthn.bin.coffee.json b/common/defs/webauthn/apps/webauthn.bin.coffee.json new file mode 100644 index 000000000..716aa0c8d --- /dev/null +++ b/common/defs/webauthn/apps/webauthn.bin.coffee.json @@ -0,0 +1,4 @@ +{ + "label": "webauthn.bin.coffee", + "webauthn": "webauthn.bin.coffee" +} diff --git a/common/defs/webauthn/apps/webauthn.io.json b/common/defs/webauthn/apps/webauthn.io.json new file mode 100644 index 000000000..71ab05857 --- /dev/null +++ b/common/defs/webauthn/apps/webauthn.io.json @@ -0,0 +1,4 @@ +{ + "label": "WebAuthn.io", + "webauthn": "webauthn.io" +} diff --git a/common/defs/webauthn/apps/webauthn.me.json b/common/defs/webauthn/apps/webauthn.me.json new file mode 100644 index 000000000..3d658d277 --- /dev/null +++ b/common/defs/webauthn/apps/webauthn.me.json @@ -0,0 +1,4 @@ +{ + "label": "WebAuthn.me", + "webauthn": "webauthn.me" +} diff --git a/common/defs/webauthn/apps/yubico-demo.json b/common/defs/webauthn/apps/yubico-demo.json new file mode 100644 index 000000000..bb40392d6 --- /dev/null +++ b/common/defs/webauthn/apps/yubico-demo.json @@ -0,0 +1,4 @@ +{ + "label": "demo.yubico.com", + "webauthn": "demo.yubico.com" +} diff --git a/common/defs/webauthn/gen.py b/common/defs/webauthn/gen.py new file mode 100755 index 000000000..e7b094439 --- /dev/null +++ b/common/defs/webauthn/gen.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +import sys +from glob import glob +import json +from hashlib import sha256 + + +try: + opt = sys.argv[1] +except: + print("Usage: gen.py [core|mcu|check])") + sys.exit(1) + + +def c_bytes(h): + return "{ " + ", ".join(["0x%02x" % x for x in h]) + " }" + + +def gen_core(data): + print("_knownapps = {") + print(" # U2F") + for d in data: + if "u2f" in d: + url, label = d["u2f"], d["label"] + print(" \"%s\": \"%s\"," % (url, label)) + print(" # WebAuthn") + for d in data: + if "webauthn" in d: + origin, label = d["webauthn"], d["label"] + print(" \"%s\": \"%s\"," % (origin, label)) + print("}") + + +def gen_mcu(data): + for d in data: + if "u2f" in d: + url, label = d["u2f"], d["label"] + h = sha256(url.encode()).digest() + print("\t{\n\t\t// U2F: %s\n\t\t%s,\n\t\t\"%s\"\n\t}," % (url, c_bytes(h), label)) + if "webauthn" in d: + origin, label = d["webauthn"], d["label"] + h = sha256(origin.encode()).digest() + print("\t{\n\t\t// WebAuthn: %s\n\t\t%s,\n\t\t\"%s\"\n\t}," % (origin, c_bytes(h), label)) + + + +data = [] +for fn in sorted(glob("apps/*.json")): + d = json.load(open(fn, "rt")) + data.append(d) + +if opt == "core": + gen_core(data) +elif opt == "mcu": + gen_mcu(data) diff --git a/common/keys/public_trezor1.h b/common/keys/public_trezor1.h new file mode 100644 index 000000000..ebd7d5b3e --- /dev/null +++ b/common/keys/public_trezor1.h @@ -0,0 +1,6 @@ +// TREZORv1 production public keys +"\x04\xd5\x71\xb7\xf1\x48\xc5\xe4\x23\x2c\x38\x14\xf7\x77\xd8\xfa\xea\xf1\xa8\x42\x16\xc7\x8d\x56\x9b\x71\x04\x1f\xfc\x76\x8a\x5b\x2d\x81\x0f\xc3\xbb\x13\x4d\xd0\x26\xb5\x7e\x65\x00\x52\x75\xae\xde\xf4\x3e\x15\x5f\x48\xfc\x11\xa3\x2e\xc7\x90\xa9\x33\x12\xbd\x58", +"\x04\x63\x27\x9c\x0c\x08\x66\xe5\x0c\x05\xc7\x99\xd3\x2b\xd6\xba\xb0\x18\x8b\x6d\xe0\x65\x36\xd1\x10\x9d\x2e\xd9\xce\x76\xcb\x33\x5c\x49\x0e\x55\xae\xe1\x0c\xc9\x01\x21\x51\x32\xe8\x53\x09\x7d\x54\x32\xed\xa0\x6b\x79\x20\x73\xbd\x77\x40\xc9\x4c\xe4\x51\x6c\xb1", +"\x04\x43\xae\xdb\xb6\xf7\xe7\x1c\x56\x3f\x8e\xd2\xef\x64\xec\x99\x81\x48\x25\x19\xe7\xef\x4f\x4a\xa9\x8b\x27\x85\x4e\x8c\x49\x12\x6d\x49\x56\xd3\x00\xab\x45\xfd\xc3\x4c\xd2\x6b\xc8\x71\x0d\xe0\xa3\x1d\xbd\xf6\xde\x74\x35\xfd\x0b\x49\x2b\xe7\x0a\xc7\x5f\xde\x58", +"\x04\x87\x7c\x39\xfd\x7c\x62\x23\x7e\x03\x82\x35\xe9\xc0\x75\xda\xb2\x61\x63\x0f\x78\xee\xb8\xed\xb9\x24\x87\x15\x9f\xff\xed\xfd\xf6\x04\x6c\x6f\x8b\x88\x1f\xa4\x07\xc4\xa4\xce\x6c\x28\xde\x0b\x19\xc1\xf4\xe2\x9f\x1f\xcb\xc5\xa5\x8f\xfd\x14\x32\xa3\xe0\x93\x8a", +"\x04\x73\x84\xc5\x1a\xe8\x1a\xdd\x0a\x52\x3a\xdb\xb1\x86\xc9\x1b\x90\x6f\xfb\x64\xc2\xc7\x65\x80\x2b\xf2\x6d\xbd\x13\xbd\xf1\x2c\x31\x9e\x80\xc2\x21\x3a\x13\x6c\x8e\xe0\x3d\x78\x74\xfd\x22\xb7\x0d\x68\xe7\xde\xe4\x69\xde\xcf\xbb\xb5\x10\xee\x9a\x46\x0c\xda\x45", diff --git a/common/keys/public_trezor1.pem b/common/keys/public_trezor1.pem new file mode 100644 index 000000000..5ca09ff4d --- /dev/null +++ b/common/keys/public_trezor1.pem @@ -0,0 +1,24 @@ +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE1XG38UjF5CMsOBT3d9j66vGoQhbHjVab +cQQf/HaKWy2BD8O7E03QJrV+ZQBSda7e9D4VX0j8EaMux5CpMxK9WA== +-----END PUBLIC KEY----- + +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEYyecDAhm5QwFx5nTK9a6sBiLbeBlNtEQ +nS7ZznbLM1xJDlWu4QzJASFRMuhTCX1UMu2ga3kgc713QMlM5FFssQ== +-----END PUBLIC KEY----- + +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEQ67btvfnHFY/jtLvZOyZgUglGefvT0qp +iyeFToxJEm1JVtMAq0X9w0zSa8hxDeCjHb323nQ1/QtJK+cKx1/eWA== +-----END PUBLIC KEY----- + +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEh3w5/XxiI34DgjXpwHXasmFjD3juuO25 +JIcVn//t/fYEbG+LiB+kB8Skzmwo3gsZwfTinx/LxaWP/RQyo+CTig== +-----END PUBLIC KEY----- + +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEc4TFGuga3QpSOtuxhskbkG/7ZMLHZYAr +8m29E73xLDGegMIhOhNsjuA9eHT9IrcNaOfe5Gnez7u1EO6aRgzaRQ== +-----END PUBLIC KEY----- diff --git a/common/keys/public_trezor1.txt b/common/keys/public_trezor1.txt new file mode 100644 index 000000000..fb63d9149 --- /dev/null +++ b/common/keys/public_trezor1.txt @@ -0,0 +1,5 @@ +04d571b7f148c5e4232c3814f777d8faeaf1a84216c78d569b71041ffc768a5b2d810fc3bb134dd026b57e65005275aedef43e155f48fc11a32ec790a93312bd58 +0463279c0c0866e50c05c799d32bd6bab0188b6de06536d1109d2ed9ce76cb335c490e55aee10cc901215132e853097d5432eda06b792073bd7740c94ce4516cb1 +0443aedbb6f7e71c563f8ed2ef64ec9981482519e7ef4f4aa98b27854e8c49126d4956d300ab45fdc34cd26bc8710de0a31dbdf6de7435fd0b492be70ac75fde58 +04877c39fd7c62237e038235e9c075dab261630f78eeb8edb92487159fffedfdf6046c6f8b881fa407c4a4ce6c28de0b19c1f4e29f1fcbc5a58ffd1432a3e0938a +047384c51ae81add0a523adbb186c91b906ffb64c2c765802bf26dbd13bdf12c319e80c2213a136c8ee03d7874fd22b70d68e7dee469decfbbb510ee9a460cda45 diff --git a/common/keys/sample.h b/common/keys/sample.h new file mode 100644 index 000000000..1518d4f3b --- /dev/null +++ b/common/keys/sample.h @@ -0,0 +1,2 @@ +// sample public key "correct horse battery staple" +"\x04\x78\xd4\x30\x27\x4f\x8c\x5e\xc1\x32\x13\x38\x15\x1e\x9f\x27\xf4\xc6\x76\xa0\x08\xbd\xf8\x63\x8d\x07\xc0\xb6\xbe\x9a\xb3\x5c\x71\xa1\x51\x80\x63\x24\x3a\xcd\x4d\xfe\x96\xb6\x6e\x3f\x2e\xc8\x01\x3c\x8e\x07\x2c\xd0\x9b\x38\x34\xa1\x9f\x81\xf6\x59\xcc\x34\x55" diff --git a/common/keys/sample.pem b/common/keys/sample.pem new file mode 100644 index 000000000..08b0a588c --- /dev/null +++ b/common/keys/sample.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAENEoHRLyHw1AM5jl0pbUNgXHFldzn1jWT +/tGrlePY/vfKVVc2QM2pz0fbYUn4WEZC8DDfQ3XEhvKnsyOotsY7QQ== +-----END PUBLIC KEY----- diff --git a/common/keys/sample.txt b/common/keys/sample.txt new file mode 100644 index 000000000..53fd380d2 --- /dev/null +++ b/common/keys/sample.txt @@ -0,0 +1 @@ +0478d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71a1518063243acd4dfe96b66e3f2ec8013c8e072cd09b3834a19f81f659cc3455 diff --git a/common/protob/.gitignore b/common/protob/.gitignore new file mode 100644 index 000000000..c7a7b20ef --- /dev/null +++ b/common/protob/.gitignore @@ -0,0 +1,2 @@ +*.pb +combined.proto diff --git a/common/protob/Makefile b/common/protob/Makefile new file mode 100644 index 000000000..97955679c --- /dev/null +++ b/common/protob/Makefile @@ -0,0 +1,12 @@ +check: messages.pb messages-binance.pb messages-bitcoin.pb messages-bootloader.pb messages-cardano.pb messages-common.pb messages-crypto.pb messages-debug.pb messages-ethereum.pb messages-lisk.pb messages-management.pb messages-monero.pb messages-nem.pb messages-ripple.pb messages-stellar.pb messages-tezos.pb messages-ontology.pb messages-tron.pb messages-eos.pb + +%.pb: %.proto + protoc -I/usr/include -I. $< -o $@ + +combine: + echo 'syntax = "proto2";' > combined.proto + echo 'import "google/protobuf/descriptor.proto";' >> combined.proto + grep -hv -e '^import ' -e '^syntax' -e '^package' -e 'option java_' messages*.proto | sed 's/hw\.trezor\.messages\.common\.//' >> combined.proto + +clean: + rm -f *.pb diff --git a/common/protob/check.py b/common/protob/check.py new file mode 100755 index 000000000..0b612d4e8 --- /dev/null +++ b/common/protob/check.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +from glob import glob +import os +import re +import sys + +error = False + +MYDIR = os.path.dirname(__file__) + +EXPECTED_PREFIX_RE = re.compile(r"messages-(\w+)\.proto") + +for fn in sorted(glob(os.path.join(MYDIR, "messages-*.proto"))): + with open(fn, "rt") as f: + prefix = EXPECTED_PREFIX_RE.search(fn).group(1).capitalize() + if prefix in ["Bitcoin", "Bootloader", "Common", "Crypto", "Management"]: + continue + if prefix == "Nem": + prefix = "NEM" + for line in f: + line = line.strip().split(" ") + if line[0] not in ["enum", "message"]: + continue + if not line[1].startswith(prefix) and not line[1].startswith("Debug" + prefix): + print("ERROR:", fn, line[1]) + error = True + +if error: + sys.exit(1) diff --git a/common/protob/graph.py b/common/protob/graph.py new file mode 100755 index 000000000..362a1d8b1 --- /dev/null +++ b/common/protob/graph.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +import sys +from os.path import basename + +from graphviz import Digraph + + +class Message(object): + def __init__(self, fname, name, attrs): + self.fname = basename(fname) + self.name = name + if len(attrs) == 0: + raise ValueError("message '%s' has no attributes" % name) + t = attrs[0][0] + if t in ["start", "end", "auxstart", "auxend", "embed", "ignore"]: + self.typ = t + attrs = attrs[1:] + elif t == "next": + self.typ = "normal" + attrs = attrs + else: + raise ValueError("wrong message type in message '%s'" % name) + self.next = [] + for a in attrs: + if a[0] == "next": + self.next.append(a[1]) + + def __repr__(self): + return '%s(type=%s, fname="%s", next=%s)' % ( + self.name, + self.typ, + self.fname, + self.next, + ) + + +def generate_messages(files): + attrs = [] + msgs = {} + for f in files: + for line in open(f, "rt").readlines(): + line = line.rstrip() + if line.startswith(" * @"): + attrs.append(line[4:].split(" ")) + elif line.startswith("message "): + name = line[8:-2] + msgs[name] = Message(f, name, attrs) + attrs = [] + return msgs + + +def generate_graph(msgs, fn): + dot = Digraph() + dot.attr(rankdir="LR") + for m in msgs.values(): + if m.typ == "start": + dot.node(m.name, shape="box", color="blue") + elif m.typ == "end": + dot.node(m.name, shape="box", color="green3") + elif m.typ == "auxstart": + dot.node(m.name, shape="diamond", color="blue") + elif m.typ == "auxend": + dot.node(m.name, shape="diamond", color="green3") + elif m.typ == "normal": + dot.node(m.name) + + for m in msgs.values(): + for n in m.next: + dot.edge(m.name, n) + dot.render(fn) + + +def main(): + proto_files = sys.argv + + msgs = generate_messages(proto_files) + generate_graph(msgs, "proto.gv") + + +if __name__ == "__main__": + main() diff --git a/common/protob/messages-binance.proto b/common/protob/messages-binance.proto new file mode 100644 index 000000000..95c04a383 --- /dev/null +++ b/common/protob/messages-binance.proto @@ -0,0 +1,151 @@ +syntax = "proto2"; +package hw.trezor.messages.binance; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageBinance"; + +/** + * Request: Ask the device for a Binance address. + * @start + * @next BinanceAddress + * @next Failure + */ +message BinanceGetAddress { + repeated uint32 address_n = 1; // BIP-32-style path to derive the key from master node + optional bool show_display = 2; // optionally prompt for confirmation on trezor display +} + +/** + * Response: A Binance address. + * @end + */ +message BinanceAddress { + optional string address = 1; // prefixed bech32 Binance address +} + +/** + * Request: Ask device for a public key corresponding to address_n path. + * @start + * @next BinancePublicKey + */ +message BinanceGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: A public key corresponding to address_n path. + * @end + */ +message BinancePublicKey { + optional bytes public_key = 1; +} + +/** + * Request: Starts the Binance transaction protocol flow. + * A transaction consists of these common fields and a series of BinanceMsg messages. + * These parts form a JSON structure (a string) in Trezor's memory, which is signed to produce a BinanceSignedTx. + * @start + * @next BinanceTxRequest + * @next Failure +*/ +message BinanceSignTx { + repeated uint32 address_n = 1; // BIP-32-style path to derive the key from master node + optional uint32 msg_count = 2; // count of BinanceMsg to be included in this tx + optional sint64 account_number = 3; + optional string chain_id = 4; + optional string memo = 5; + optional sint64 sequence = 6; + optional sint64 source = 7; +} + +/** + * Response: Trezor requests the next message or signals that it is ready to send a BinanceSignedTx. + * @next BinanceTransferMsg + * @next BinanceOrderMsg + * @next BinanceCancelMsg + */ +message BinanceTxRequest { +} + +/** + * Request: Ask the device to include a Binance transfer msg in the tx. + * @next BinanceTxRequest + * @next BinanceSignedTx + * @next Failure + */ +message BinanceTransferMsg { + repeated BinanceInputOutput inputs = 1; + repeated BinanceInputOutput outputs = 2; + + message BinanceInputOutput { + optional string address = 1; + repeated BinanceCoin coins = 2; + } + + message BinanceCoin { + optional sint64 amount = 1; + optional string denom = 2; + } +} + +/** + * Request: Ask the device to include a Binance order msg in the tx. + * @next BinanceTxRequest + * @next BinanceSignedTx + * @next Failure + */ +message BinanceOrderMsg { + optional string id = 1; + optional BinanceOrderType ordertype = 2; + optional sint64 price = 3; + optional sint64 quantity = 4; + optional string sender = 5; + optional BinanceOrderSide side = 6; + optional string symbol = 7; + optional BinanceTimeInForce timeinforce = 8; + + enum BinanceOrderType { + OT_UNKNOWN = 0; + MARKET = 1; + LIMIT = 2; + OT_RESERVED = 3; + } + + enum BinanceOrderSide { + SIDE_UNKNOWN = 0; + BUY = 1; + SELL = 2; + } + + enum BinanceTimeInForce { + TIF_UNKNOWN = 0; + GTE = 1; + TIF_RESERVED = 2; + IOC = 3; + } +} + +/** + * Request: Ask the device to include a Binance cancel msg in the tx. + * @next BinanceTxRequest + * @next BinanceSignedTx + * @next Failure + */ +message BinanceCancelMsg { + optional string refid = 1; + optional string sender = 2; + optional string symbol = 3; +} + +/** + * Response: A transaction signature and public key corresponding to the address_n path in BinanceSignTx. + * @end + */ +message BinanceSignedTx { + optional bytes signature = 1; + optional bytes public_key = 2; + optional string json = 3; +} + diff --git a/common/protob/messages-bitcoin.proto b/common/protob/messages-bitcoin.proto new file mode 100644 index 000000000..484a0f5b1 --- /dev/null +++ b/common/protob/messages-bitcoin.proto @@ -0,0 +1,251 @@ +syntax = "proto2"; +package hw.trezor.messages.bitcoin; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageBitcoin"; + +import "messages-common.proto"; + +/** + * Type of script which will be used for transaction output + */ +enum InputScriptType { + SPENDADDRESS = 0; // standard P2PKH address + SPENDMULTISIG = 1; // P2SH multisig address + EXTERNAL = 2; // reserved for external inputs (coinjoin) + SPENDWITNESS = 3; // native SegWit + SPENDP2SHWITNESS = 4; // SegWit over P2SH (backward compatible) +} + +/** + * Type of redeem script used in input + * @embed + */ +message MultisigRedeemScriptType { + repeated HDNodePathType pubkeys = 1; // pubkeys from multisig address (sorted lexicographically) + repeated bytes signatures = 2; // existing signatures for partially signed input + optional uint32 m = 3; // "m" from n, how many valid signatures is necessary for spending + repeated hw.trezor.messages.common.HDNodeType nodes = 4; // simplified way how to specify pubkeys if they share the same address_n path + repeated uint32 address_n = 5; // use only field 1 or fields 4+5, if fields 4+5 are used, field 1 is ignored + /** + * Structure representing HDNode + Path + */ + message HDNodePathType { + required hw.trezor.messages.common.HDNodeType node = 1; // BIP-32 node in deserialized form + repeated uint32 address_n = 2; // BIP-32 path to derive the key from node + } +} + +/** + * Request: Ask device for public key corresponding to address_n path + * @start + * @next PublicKey + * @next Failure + */ +message GetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional string ecdsa_curve_name = 2; // ECDSA curve name to use + optional bool show_display = 3; // optionally show on display before sending the result + optional string coin_name = 4 [default='Bitcoin']; // coin to use for verifying + optional InputScriptType script_type = 5 [default=SPENDADDRESS]; // used to distinguish between various address formats (non-segwit, segwit, etc.) +} + +/** + * Response: Contains public key derived from device private seed + * @end + */ +message PublicKey { + optional hw.trezor.messages.common.HDNodeType node = 1; // BIP32 public node + optional string xpub = 2; // serialized form of public node +} + +/** + * Request: Ask device for address corresponding to address_n path + * @start + * @next Address + * @next Failure + */ +message GetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional string coin_name = 2 [default='Bitcoin']; // coin to use + optional bool show_display = 3; // optionally show on display before sending the result + optional MultisigRedeemScriptType multisig = 4; // filled if we are showing a multisig address + optional InputScriptType script_type = 5 [default=SPENDADDRESS]; // used to distinguish between various address formats (non-segwit, segwit, etc.) +} + +/** + * Response: Contains address derived from device private seed + * @end + */ +message Address { + required string address = 1; // Coin address in Base58 encoding +} + +/** + * Request: Ask device to sign message + * @start + * @next MessageSignature + * @next Failure + */ +message SignMessage { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + required bytes message = 2; // message to be signed + optional string coin_name = 3 [default='Bitcoin']; // coin to use for signing + optional InputScriptType script_type = 4 [default=SPENDADDRESS]; // used to distinguish between various address formats (non-segwit, segwit, etc.) +} + +/** + * Response: Signed message + * @end + */ +message MessageSignature { + optional string address = 1; // address used to sign the message + optional bytes signature = 2; // signature of the message +} + +/** + * Request: Ask device to verify message + * @start + * @next Success + * @next Failure + */ +message VerifyMessage { + optional string address = 1; // address to verify + optional bytes signature = 2; // signature to verify + optional bytes message = 3; // message to verify + optional string coin_name = 4 [default='Bitcoin']; // coin to use for verifying +} + +/** + * Request: Ask device to sign transaction + * @start + * @next TxRequest + * @next Failure + */ +message SignTx { + required uint32 outputs_count = 1; // number of transaction outputs + required uint32 inputs_count = 2; // number of transaction inputs + optional string coin_name = 3 [default='Bitcoin']; // coin to use + optional uint32 version = 4 [default=1]; // transaction version + optional uint32 lock_time = 5 [default=0]; // transaction lock_time + optional uint32 expiry = 6; // only for Decred and Zcash + optional bool overwintered = 7; // only for Zcash + optional uint32 version_group_id = 8; // only for Zcash, nVersionGroupId when overwintered is set + optional uint32 timestamp = 9; // only for Capricoin, transaction timestamp + optional uint32 branch_id = 10; // only for Zcash, BRANCH_ID when overwintered is set +} + +/** + * Response: Device asks for information for signing transaction or returns the last result + * If request_index is set, device awaits TxAck message (with fields filled in according to request_type) + * If signature_index is set, 'signature' contains signed input of signature_index's input + * @end + * @next TxAck + */ +message TxRequest { + optional RequestType request_type = 1; // what should be filled in TxAck message? + optional TxRequestDetailsType details = 2; // request for tx details + optional TxRequestSerializedType serialized = 3; // serialized data and request for next + /** + * Type of information required by transaction signing process + */ + enum RequestType { + TXINPUT = 0; + TXOUTPUT = 1; + TXMETA = 2; + TXFINISHED = 3; + TXEXTRADATA = 4; + } + /** + * Structure representing request details + */ + message TxRequestDetailsType { + optional uint32 request_index = 1; // device expects TxAck message from the computer + optional bytes tx_hash = 2; // tx_hash of requested transaction + optional uint32 extra_data_len = 3; // length of requested extra data + optional uint32 extra_data_offset = 4; // offset of requested extra data + } + /** + * Structure representing serialized data + */ + message TxRequestSerializedType { + optional uint32 signature_index = 1; // 'signature' field contains signed input of this index + optional bytes signature = 2; // signature of the signature_index input + optional bytes serialized_tx = 3; // part of serialized and signed transaction + } +} + +/** + * Request: Reported transaction data + * @next TxRequest + */ +message TxAck { + optional TransactionType tx = 1; + /** + * Structure representing transaction + */ + message TransactionType { + optional uint32 version = 1; + repeated TxInputType inputs = 2; + repeated TxOutputBinType bin_outputs = 3; + optional uint32 lock_time = 4; + repeated TxOutputType outputs = 5; + optional uint32 inputs_cnt = 6; + optional uint32 outputs_cnt = 7; + optional bytes extra_data = 8; // only for Zcash + optional uint32 extra_data_len = 9; // only for Zcash + optional uint32 expiry = 10; // only for Decred and Zcash + optional bool overwintered = 11; // only for Zcash + optional uint32 version_group_id = 12; // only for Zcash, nVersionGroupId when overwintered is set + optional uint32 timestamp = 13; // only for Capricoin, transaction timestamp + optional uint32 branch_id = 14; // only for Zcash, BRANCH_ID when overwintered is set + /** + * Structure representing transaction input + */ + message TxInputType { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + required bytes prev_hash = 2; // hash of previous transaction output to spend by this input + required uint32 prev_index = 3; // index of previous output to spend + optional bytes script_sig = 4; // script signature, unset for tx to sign + optional uint32 sequence = 5 [default=4294967295]; // sequence (default=0xffffffff) + optional InputScriptType script_type = 6 [default=SPENDADDRESS]; // defines template of input script + optional MultisigRedeemScriptType multisig = 7; // Filled if input is going to spend multisig tx + optional uint64 amount = 8; // amount of previous transaction output (for segwit only) + optional uint32 decred_tree = 9; // only for Decred + optional uint32 decred_script_version = 10; // only for Decred + optional bytes prev_block_hash_bip115 = 11; // block hash of previous transaction output (for bip115 implementation) + optional uint32 prev_block_height_bip115 = 12; // block height of previous transaction output (for bip115 implementation) + } + /** + * Structure representing compiled transaction output + */ + message TxOutputBinType { + required uint64 amount = 1; + required bytes script_pubkey = 2; + optional uint32 decred_script_version = 3; // only for Decred + } + /** + * Structure representing transaction output + */ + message TxOutputType { + optional string address = 1; // target coin address in Base58 encoding + repeated uint32 address_n = 2; // BIP-32 path to derive the key from master node; has higher priority than "address" + required uint64 amount = 3; // amount to spend in satoshis + required OutputScriptType script_type = 4; // output script type + optional MultisigRedeemScriptType multisig = 5; // defines multisig address; script_type must be PAYTOMULTISIG + optional bytes op_return_data = 6; // defines op_return data; script_type must be PAYTOOPRETURN, amount must be 0 + optional uint32 decred_script_version = 7; // only for Decred + optional bytes block_hash_bip115 = 8; // block hash of existing block (recommended current_block - 300) (for bip115 implementation) + optional uint32 block_height_bip115 = 9; // block height of existing block (recommended current_block - 300) (for bip115 implementation) + enum OutputScriptType { + PAYTOADDRESS = 0; // used for all addresses (bitcoin, p2sh, witness) + PAYTOSCRIPTHASH = 1; // p2sh address (deprecated; use PAYTOADDRESS) + PAYTOMULTISIG = 2; // only for change output + PAYTOOPRETURN = 3; // op_return + PAYTOWITNESS = 4; // only for change output + PAYTOP2SHWITNESS = 5; // only for change output + } + } + } +} diff --git a/common/protob/messages-bootloader.proto b/common/protob/messages-bootloader.proto new file mode 100644 index 000000000..7151a8e3b --- /dev/null +++ b/common/protob/messages-bootloader.proto @@ -0,0 +1,44 @@ +syntax = "proto2"; +package hw.trezor.messages.bootloader; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageBootloader"; + +/** + * Request: Ask device to erase its firmware (so it can be replaced via FirmwareUpload) + * @start + * @next FirmwareRequest + */ +message FirmwareErase { + optional uint32 length = 1; // length of new firmware +} + +/** + * Response: Ask for firmware chunk + * @next FirmwareUpload + */ +message FirmwareRequest { + optional uint32 offset = 1; // offset of requested firmware chunk + optional uint32 length = 2; // length of requested firmware chunk +} + +/** + * Request: Send firmware in binary form to the device + * @next FirmwareRequest + * @next Success + * @next Failure + */ +message FirmwareUpload { + required bytes payload = 1; // firmware to be loaded into device + optional bytes hash = 2; // hash of the payload +} + +/** + * Request: Perform a device self-test + * @next Success + * @next Failure + */ +message SelfTest { + optional bytes payload = 1; // payload to be used in self-test +} diff --git a/common/protob/messages-cardano.proto b/common/protob/messages-cardano.proto new file mode 100644 index 000000000..c18f7b99a --- /dev/null +++ b/common/protob/messages-cardano.proto @@ -0,0 +1,107 @@ +syntax = "proto2"; +package hw.trezor.messages.cardano; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageCardano"; + +import "messages-common.proto"; + +/** + * Request: Ask device for Cardano address + * @start + * @next CardanoAddress + * @next Failure + */ +message CardanoGetAddress { + repeated uint32 address_n = 1; // BIP-32-style path to derive the key from master node + optional bool show_display = 2; // optionally prompt for confirmation on trezor display +} + +/** + * Request: Ask device for Cardano address + * @end + */ +message CardanoAddress { + optional string address = 1; // Base58 cardano address +} + +/** + * Request: Ask device for public key corresponding to address_n path + * @start + * @next CardanoPublicKey + * @next Failure + */ +message CardanoGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Contains public key derived from device private seed + * @end + */ +message CardanoPublicKey { + optional string xpub = 1; // Xpub key + optional hw.trezor.messages.common.HDNodeType node = 2; // BIP-32 public node +} + +/** + * Request: Ask device to sign Cardano transaction + * @start + * @next CardanoSignedTx + * @next CardanoTxRequest + * @next Failure + */ +message CardanoSignTx { + repeated CardanoTxInputType inputs = 1; // inputs to be used in transaction + repeated CardanoTxOutputType outputs = 2; // outputs to be used in transaction + optional uint32 transactions_count = 3; // transactions count + optional uint32 protocol_magic = 5; // network's protocol magic + /** + * Structure representing cardano transaction input + */ + message CardanoTxInputType { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes prev_hash = 2; // hash of previous transaction output to spend by this input + optional uint32 prev_index = 3; // index of previous output to spend + optional uint32 type = 4; // input type, defaults to 0 + } + /** + * Structure representing cardano transaction output + */ + message CardanoTxOutputType { + optional string address = 1; // target coin address in Base58 encoding + repeated uint32 address_n = 2; // BIP-32 path to derive the key from master node; has higher priority than "address" + optional uint64 amount = 3; // amount to spend + } +} + +/** + * Response: Serialised signed cardano transaction if tx_index is not specified. + * If tx_index is specified, trezor will wait for transaction + * @next CardanoTxAck + */ +message CardanoTxRequest { + optional uint32 tx_index = 1; // index of requested transaction + optional bytes tx_hash = 2; // hash of the signed transaction + optional bytes tx_body = 3; // serialised body of the signed transaction +} + +/** + * Request: Reported transaction data + * @next CardanoSignedTx + * @next CardanoTxRequest + */ +message CardanoTxAck { + optional bytes transaction = 1; +} + +/** + * Response: Serialised signed cardano transaction + * @end + */ +message CardanoSignedTx { + optional bytes tx_hash = 1; // hash of the signed transaction + optional bytes tx_body = 2; // serialised body of the signed transaction +} diff --git a/common/protob/messages-common.proto b/common/protob/messages-common.proto new file mode 100644 index 000000000..0e23c87e5 --- /dev/null +++ b/common/protob/messages-common.proto @@ -0,0 +1,143 @@ +syntax = "proto2"; +package hw.trezor.messages.common; + +/** + * Response: Success of the previous request + * @end + */ +message Success { + optional string message = 1; // human readable description of action or request-specific payload +} + +/** + * Response: Failure of the previous request + * @end + */ +message Failure { + optional FailureType code = 1; // computer-readable definition of the error state + optional string message = 2; // human-readable message of the error state + enum FailureType { + Failure_UnexpectedMessage = 1; + Failure_ButtonExpected = 2; + Failure_DataError = 3; + Failure_ActionCancelled = 4; + Failure_PinExpected = 5; + Failure_PinCancelled = 6; + Failure_PinInvalid = 7; + Failure_InvalidSignature = 8; + Failure_ProcessError = 9; + Failure_NotEnoughFunds = 10; + Failure_NotInitialized = 11; + Failure_PinMismatch = 12; + Failure_FirmwareError = 99; + } +} + +/** + * Response: Device is waiting for HW button press. + * @auxstart + * @next ButtonAck + */ +message ButtonRequest { + optional ButtonRequestType code = 1; + optional string data = 2; + /** + * Type of button request + */ + enum ButtonRequestType { + ButtonRequest_Other = 1; + ButtonRequest_FeeOverThreshold = 2; + ButtonRequest_ConfirmOutput = 3; + ButtonRequest_ResetDevice = 4; + ButtonRequest_ConfirmWord = 5; + ButtonRequest_WipeDevice = 6; + ButtonRequest_ProtectCall = 7; + ButtonRequest_SignTx = 8; + ButtonRequest_FirmwareCheck = 9; + ButtonRequest_Address = 10; + ButtonRequest_PublicKey = 11; + ButtonRequest_MnemonicWordCount = 12; + ButtonRequest_MnemonicInput = 13; + ButtonRequest_PassphraseType = 14; + ButtonRequest_UnknownDerivationPath = 15; + } +} + +/** + * Request: Computer agrees to wait for HW button press + * @auxend + */ +message ButtonAck { +} + +/** + * Response: Device is asking computer to show PIN matrix and awaits PIN encoded using this matrix scheme + * @auxstart + * @next PinMatrixAck + */ +message PinMatrixRequest { + optional PinMatrixRequestType type = 1; + /** + * Type of PIN request + */ + enum PinMatrixRequestType { + PinMatrixRequestType_Current = 1; + PinMatrixRequestType_NewFirst = 2; + PinMatrixRequestType_NewSecond = 3; + } +} + +/** + * Request: Computer responds with encoded PIN + * @auxend + */ +message PinMatrixAck { + required string pin = 1; // matrix encoded PIN entered by user +} + +/** + * Response: Device awaits encryption passphrase + * @auxstart + * @next PassphraseAck + */ +message PassphraseRequest { + optional bool on_device = 1; // passphrase is being entered on the device +} + +/** + * Request: Send passphrase back + * @next PassphraseStateRequest + */ +message PassphraseAck { + optional string passphrase = 1; + optional bytes state = 2; // expected device state +} + +/** + * Response: Device awaits passphrase state + * @next PassphraseStateAck + */ +message PassphraseStateRequest { + optional bytes state = 1; // actual device state +} + +/** + * Request: Send passphrase state back + * @auxend + */ +message PassphraseStateAck { +} + +/** + * Structure representing BIP32 (hierarchical deterministic) node + * Used for imports of private key into the device and exporting public key out of device + * @embed + */ +message HDNodeType { + required uint32 depth = 1; + required uint32 fingerprint = 2; + required uint32 child_num = 3; + required bytes chain_code = 4; + optional bytes private_key = 5; + optional bytes public_key = 6; +} diff --git a/common/protob/messages-crypto.proto b/common/protob/messages-crypto.proto new file mode 100644 index 000000000..8841fbc6b --- /dev/null +++ b/common/protob/messages-crypto.proto @@ -0,0 +1,127 @@ +syntax = "proto2"; +package hw.trezor.messages.crypto; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageCrypto"; + +/** + * Request: Ask device to encrypt or decrypt value of given key + * @start + * @next CipheredKeyValue + * @next Failure + */ +message CipherKeyValue { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional string key = 2; // key component of key:value + optional bytes value = 3; // value component of key:value + optional bool encrypt = 4; // are we encrypting (True) or decrypting (False)? + optional bool ask_on_encrypt = 5; // should we ask on encrypt operation? + optional bool ask_on_decrypt = 6; // should we ask on decrypt operation? + optional bytes iv = 7; // initialization vector (will be computed if not set) +} + +/** + * Response: Return ciphered/deciphered value + * @end + */ +message CipheredKeyValue { + optional bytes value = 1; // ciphered/deciphered value +} + +/** + * Structure representing identity data + * @embed + */ +message IdentityType { + optional string proto = 1; // proto part of URI + optional string user = 2; // user part of URI + optional string host = 3; // host part of URI + optional string port = 4; // port part of URI + optional string path = 5; // path part of URI + optional uint32 index = 6 [default=0]; // identity index +} + +/** + * Request: Ask device to sign identity + * @start + * @next SignedIdentity + * @next Failure + */ +message SignIdentity { + optional IdentityType identity = 1; // identity + optional bytes challenge_hidden = 2; // non-visible challenge + optional string challenge_visual = 3; // challenge shown on display (e.g. date+time) + optional string ecdsa_curve_name = 4; // ECDSA curve name to use +} + +/** + * Response: Device provides signed identity + * @end + */ +message SignedIdentity { + optional string address = 1; // identity address + optional bytes public_key = 2; // identity public key + optional bytes signature = 3; // signature of the identity data +} + +/** + * Request: Ask device to generate ECDH session key + * @start + * @next ECDHSessionKey + * @next Failure + */ +message GetECDHSessionKey { + optional IdentityType identity = 1; // identity + optional bytes peer_public_key = 2; // peer's public key + optional string ecdsa_curve_name = 3; // ECDSA curve name to use +} + +/** + * Response: Device provides ECDH session key + * @end + */ +message ECDHSessionKey { + optional bytes session_key = 1; // ECDH session key +} + +/** + * Request: Ask device to commit to CoSi signing + * @start + * @next CosiCommitment + * @next Failure + */ +message CosiCommit { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes data = 2; // Data to be signed +} + +/** + * Response: Contains a CoSi commitment + * @end + */ +message CosiCommitment { + optional bytes commitment = 1; // Commitment + optional bytes pubkey = 2; // Public key +} + +/** + * Request: Ask device to sign using CoSi + * @start + * @next CosiSignature + * @next Failure + */ +message CosiSign { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes data = 2; // Data to be signed + optional bytes global_commitment = 3; // Aggregated commitment + optional bytes global_pubkey = 4; // Aggregated public key +} + +/** + * Response: Contains a CoSi signature + * @end + */ +message CosiSignature { + optional bytes signature = 1; // Signature +} diff --git a/common/protob/messages-debug.proto b/common/protob/messages-debug.proto new file mode 100644 index 000000000..ff1a458c7 --- /dev/null +++ b/common/protob/messages-debug.proto @@ -0,0 +1,105 @@ +syntax = "proto2"; +package hw.trezor.messages.debug; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageDebug"; + +import "messages-common.proto"; + +/** + * Request: "Press" the button on the device + * @start + * @next Success + */ +message DebugLinkDecision { + optional bool yes_no = 1; // true for "Confirm", false for "Cancel" + optional bool up_down = 2; // true for scroll up, false for scroll down + optional string input = 3; // keyboard input +} + +/** + * Request: Computer asks for device state + * @start + * @next DebugLinkState + */ +message DebugLinkGetState { +} + +/** + * Response: Device current state + * @end + */ +message DebugLinkState { + optional bytes layout = 1; // raw buffer of display + optional string pin = 2; // current PIN, blank if PIN is not set/enabled + optional string matrix = 3; // current PIN matrix + optional bytes mnemonic_secret = 4; // current mnemonic secret + optional hw.trezor.messages.common.HDNodeType node = 5; // current BIP-32 node + optional bool passphrase_protection = 6; // is node/mnemonic encrypted using passphrase? + optional string reset_word = 7; // word on device display during ResetDevice workflow + optional bytes reset_entropy = 8; // current entropy during ResetDevice workflow + optional string recovery_fake_word = 9; // (fake) word on display during RecoveryDevice workflow + optional uint32 recovery_word_pos = 10; // index of mnemonic word the device is expecting during RecoveryDevice workflow + optional uint32 reset_word_pos = 11; // index of mnemonic word the device is expecting during ResetDevice workflow + optional uint32 mnemonic_type = 12; // current mnemonic type (BIP-39/SLIP-39) +} + +/** + * Request: Ask device to restart + * @start + */ +message DebugLinkStop { +} + +/** + * Response: Device wants host to log event + * @ignore + */ +message DebugLinkLog { + optional uint32 level = 1; + optional string bucket = 2; + optional string text = 3; +} + +/** + * Request: Read memory from device + * @start + * @next DebugLinkMemory + */ +message DebugLinkMemoryRead { + optional uint32 address = 1; + optional uint32 length = 2; +} + +/** + * Response: Device sends memory back + * @end + */ +message DebugLinkMemory { + optional bytes memory = 1; +} + +/** + * Request: Write memory to device. + * WARNING: Writing to the wrong location can irreparably break the device. + * @start + * @next Success + * @next Failure + */ +message DebugLinkMemoryWrite { + optional uint32 address = 1; + optional bytes memory = 2; + optional bool flash = 3; +} + +/** + * Request: Erase block of flash on device + * WARNING: Writing to the wrong location can irreparably break the device. + * @start + * @next Success + * @next Failure + */ +message DebugLinkFlashErase { + optional uint32 sector = 1; +} diff --git a/common/protob/messages-eos.proto b/common/protob/messages-eos.proto new file mode 100644 index 000000000..c66799e56 --- /dev/null +++ b/common/protob/messages-eos.proto @@ -0,0 +1,283 @@ +syntax = "proto2"; +package hw.trezor.messages.eos; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageEos"; + +/** + * Request: Ask device for Eos public key corresponding to address_n path + * @start + * @next EosPublicKey + * @next Failure + */ +message EosGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node 44'/194'/0' + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Contains an Eos public key derived from device private seed + * @end + */ +message EosPublicKey { + optional string wif_public_key = 1; // EOS pub key in Base58 encoding + optional bytes raw_public_key = 2; // Raw public key +} + +/** + * Request: Ask device to sign transaction + * @start + * @next EosTxRequest + * @next Failure + */ +message EosSignTx { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node 44'/194'/0' + optional bytes chain_id = 2; // 256-bit long chain id + optional EosTxHeader header = 3; // EOS transaction header + optional uint32 num_actions = 4; // number of actions + + /** + * Structure representing EOS transaction header + */ + message EosTxHeader { + required uint32 expiration = 1; // time at which transaction expires + required uint32 ref_block_num = 2; // 16-bit specifies a block num in the last 2^16 blocks. + required uint32 ref_block_prefix = 3; // specifies the lower 32 bits of the blockid at get_ref_blocknum + required uint32 max_net_usage_words = 4; // upper limit on total network bandwidth (in 8 byte words) billed for this transaction + required uint32 max_cpu_usage_ms = 5; // 8-bit upper limit on the total CPU time billed for this transaction + required uint32 delay_sec = 6; // number of seconds to delay this transaction for during which it may be canceled. + } +} + +/** + * Response: Device asks to upload next action + * @next EosTxActionAck + */ +message EosTxActionRequest { + optional uint32 data_size = 1; +} + +/** + * Request: Next action data that needs to be uploaded + * @next EosTxActionRequest + * @next EosSignedTx + * @next Failure + */ +message EosTxActionAck { + optional EosActionCommon common = 1; + optional EosActionTransfer transfer = 2; + optional EosActionDelegate delegate = 3; + optional EosActionUndelegate undelegate = 4; + optional EosActionRefund refund = 5; + optional EosActionBuyRam buy_ram = 6; + optional EosActionBuyRamBytes buy_ram_bytes = 7; + optional EosActionSellRam sell_ram = 8; + optional EosActionVoteProducer vote_producer = 9; + optional EosActionUpdateAuth update_auth = 10; + optional EosActionDeleteAuth delete_auth = 11; + optional EosActionLinkAuth link_auth = 12; + optional EosActionUnlinkAuth unlink_auth = 13; + optional EosActionNewAccount new_account = 14; + optional EosActionUnknown unknown = 15; + + /** + * Structure representing asset type + */ + message EosAsset { + optional sint64 amount = 1; + optional uint64 symbol = 2; // Lowest 8 bits used for precision. + } + + /** + * Structure representing action permission level + */ + message EosPermissionLevel { + optional uint64 actor = 1; + optional uint64 permission = 2; + } + + /** + * Structure representing auth key + */ + message EosAuthorizationKey { + optional uint32 type = 1; + optional bytes key = 2; // Explicit public key bytes; when present, address_n must be empty + repeated uint32 address_n = 3; // BIP-32 path to derive key; when filled out, key must not be present + optional uint32 weight = 4; + } + + /** + * Structure representing auth account + */ + message EosAuthorizationAccount { + optional EosPermissionLevel account = 1; + optional uint32 weight = 2; + } + + /** + * Structure representing auth delays + */ + message EosAuthorizationWait { + optional uint32 wait_sec = 1; + optional uint32 weight = 2; + } + + /** + * Structure representing authorization settings + */ + message EosAuthorization { + optional uint32 threshold = 1; + repeated EosAuthorizationKey keys = 2; + repeated EosAuthorizationAccount accounts = 3; + repeated EosAuthorizationWait waits = 4; + } + + /** + * Structure representing the common part of every action + */ + message EosActionCommon { + optional uint64 account = 1; // Contract name + optional uint64 name = 2; // Action name + repeated EosPermissionLevel authorization = 3; + } + + /** + * Structure representing transfer data structure + */ + message EosActionTransfer { + optional uint64 sender = 1; // Asset sender + optional uint64 receiver = 2; + optional EosAsset quantity = 3; + optional string memo = 4; + } + + /** + * Structure representing delegation data structure + */ + message EosActionDelegate { + optional uint64 sender = 1; + optional uint64 receiver = 2; + optional EosAsset net_quantity = 3; // Asset format '1.0000 EOS' + optional EosAsset cpu_quantity = 4; // Asset format '1.0000 EOS' + optional bool transfer = 5; // Transfer delegated tokens or not. + } + + /** + * Structure representing the removal of delegated resources from `sender` + */ + message EosActionUndelegate { + optional uint64 sender = 1; + optional uint64 receiver = 2; + optional EosAsset net_quantity = 3; // Asset format '1.0000 EOS' + optional EosAsset cpu_quantity = 4; // Asset format '1.0000 EOS' + } + + /** + * Structure representing fallback if undelegate wasnt executed automaticaly. + */ + message EosActionRefund { + optional uint64 owner = 1; + } + + /** + * Structure representing buying RAM operation for EOS tokens + */ + message EosActionBuyRam { + optional uint64 payer = 1; + optional uint64 receiver = 2; + optional EosAsset quantity = 3; // Asset format '1.0000 EOS' + } + + /** + * Structure representing buying bytes according to RAM market price. + */ + message EosActionBuyRamBytes { + optional uint64 payer = 1; + optional uint64 receiver = 2; + optional uint32 bytes = 3; // Number of bytes + } + + /** + * Structure representing sell RAM + */ + message EosActionSellRam { + optional uint64 account = 1; + optional uint64 bytes = 2; // Number of bytes + } + + /** + * Structure representing voting. Currently, there could be up to 30 producers. + */ + message EosActionVoteProducer { + optional uint64 voter = 1; // Voter account + optional uint64 proxy = 2; // Proxy voter account + repeated uint64 producers = 3; // List of producers + } + + /** + * Structure representing update authorization. + */ + message EosActionUpdateAuth { + optional uint64 account = 1; + optional uint64 permission = 2; + optional uint64 parent = 3; + optional EosAuthorization auth = 4; + } + + /** + * Structure representing delete authorization. + */ + message EosActionDeleteAuth { + optional uint64 account = 1; + optional uint64 permission = 2; + } + + /** + * Structure representing link authorization to action. + */ + message EosActionLinkAuth { + optional uint64 account = 1; + optional uint64 code = 2; + optional uint64 type = 3; + optional uint64 requirement = 4; + } + + /** + * Structure representing unlink authorization from action. + */ + message EosActionUnlinkAuth { + optional uint64 account = 1; + optional uint64 code = 2; + optional uint64 type = 3; + } + + /** + * Structure representing creation of a new account. + */ + message EosActionNewAccount { + optional uint64 creator = 1; + optional uint64 name = 2; + optional EosAuthorization owner = 3; + optional EosAuthorization active = 4; + } + + /** + * Structure representing actions not implemented above. + */ + message EosActionUnknown { + optional uint32 data_size = 1; + optional bytes data_chunk = 2; + } +} + +/** + * Response: Device returns the signature. + * The signature_* fields contain the computed transaction signature. All three fields will be present. + * @end + */ +message EosSignedTx { + optional uint32 signature_v = 1; // Computed signature (recovery parameter, limited to 31 or 32) + optional bytes signature_r = 2; // Computed signature R component (256 bit) + optional bytes signature_s = 3; // Computed signature S component (256 bit) +} diff --git a/common/protob/messages-ethereum.proto b/common/protob/messages-ethereum.proto new file mode 100644 index 000000000..abc699010 --- /dev/null +++ b/common/protob/messages-ethereum.proto @@ -0,0 +1,123 @@ +syntax = "proto2"; +package hw.trezor.messages.ethereum; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageEthereum"; + +import "messages-common.proto"; + + +/** + * Request: Ask device for public key corresponding to address_n path + * @start + * @next EthereumPublicKey + * @next Failure + */ +message EthereumGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Contains public key derived from device private seed + * @end + */ +message EthereumPublicKey { + optional hw.trezor.messages.common.HDNodeType node = 1; // BIP32 public node + optional string xpub = 2; // serialized form of public node +} + +/** + * Request: Ask device for Ethereum address corresponding to address_n path + * @start + * @next EthereumAddress + * @next Failure + */ +message EthereumGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Contains an Ethereum address derived from device private seed + * @end + */ +message EthereumAddress { + optional string address = 2; // Ethereum address as string +} + +/** + * Request: Ask device to sign transaction + * All fields are optional from the protocol's point of view. Each field defaults to value `0` if missing. + * Note: the first at most 1024 bytes of data MUST be transmitted as part of this message. + * @start + * @next EthereumTxRequest + * @next Failure + */ +message EthereumSignTx { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes nonce = 2; // <=256 bit unsigned big endian + optional bytes gas_price = 3; // <=256 bit unsigned big endian (in wei) + optional bytes gas_limit = 4; // <=256 bit unsigned big endian + optional string to = 11; // recipient address + optional bytes value = 6; // <=256 bit unsigned big endian (in wei) + optional bytes data_initial_chunk = 7; // The initial data chunk (<= 1024 bytes) + optional uint32 data_length = 8; // Length of transaction payload + optional uint32 chain_id = 9; // Chain Id for EIP 155 + optional uint32 tx_type = 10; // (only for Wanchain) +} + +/** + * Response: Device asks for more data from transaction payload, or returns the signature. + * If data_length is set, device awaits that many more bytes of payload. + * Otherwise, the signature_* fields contain the computed transaction signature. All three fields will be present. + * @end + * @next EthereumTxAck + */ +message EthereumTxRequest { + optional uint32 data_length = 1; // Number of bytes being requested (<= 1024) + optional uint32 signature_v = 2; // Computed signature (recovery parameter, limited to 27 or 28) + optional bytes signature_r = 3; // Computed signature R component (256 bit) + optional bytes signature_s = 4; // Computed signature S component (256 bit) +} + +/** + * Request: Transaction payload data. + * @next EthereumTxRequest + */ +message EthereumTxAck { + optional bytes data_chunk = 1; // Bytes from transaction payload (<= 1024 bytes) +} + +/** + * Request: Ask device to sign message + * @start + * @next EthereumMessageSignature + * @next Failure + */ +message EthereumSignMessage { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes message = 2; // message to be signed +} + +/** + * Response: Signed message + * @end + */ +message EthereumMessageSignature { + optional bytes signature = 2; // signature of the message + optional string address = 3; // address used to sign the message +} + +/** + * Request: Ask device to verify message + * @start + * @next Success + * @next Failure + */ +message EthereumVerifyMessage { + optional bytes signature = 2; // signature to verify + optional bytes message = 3; // message to verify + optional string address = 4; // address to verify +} diff --git a/common/protob/messages-lisk.proto b/common/protob/messages-lisk.proto new file mode 100644 index 000000000..ceeb26c9b --- /dev/null +++ b/common/protob/messages-lisk.proto @@ -0,0 +1,151 @@ +syntax = "proto2"; +package hw.trezor.messages.lisk; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageLisk"; + +/** + * Request: Ask device for Lisk address corresponding to address_n path + * @start + * @next LiskAddress + * @next Failure + */ +message LiskGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Lisk address derived from device private seed + * @end + */ +message LiskAddress { + optional string address = 1; // Lisk address +} + +/** + * Request: Ask device for Lisk public key corresponding to address_n path + * @start + * @next LiskPublicKey + */ +message LiskGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Lisk public key derived from device private seed + * @end + */ +message LiskPublicKey { + optional bytes public_key = 1; // Lisk public key +} + +/** + * Request: Ask device to sign Lisk transaction + * @start + * @next LiskSignedTx + * @next Failure + */ +message LiskSignTx { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional LiskTransactionCommon transaction = 2; // Lisk transaction structure + /** + * Structure representing the common part for Lisk transactions + */ + message LiskTransactionCommon { + optional LiskTransactionType type = 1; + optional uint64 amount = 2 [default=0]; + optional uint64 fee = 3; + optional string recipient_id = 4; + optional bytes sender_public_key = 5; + optional bytes requester_public_key = 6; + optional bytes signature = 7; + optional uint32 timestamp = 8; + optional LiskTransactionAsset asset = 9; + /** + * Type of Lisk transaction + */ + enum LiskTransactionType { + Transfer = 0; + RegisterSecondPassphrase = 1; + RegisterDelegate = 2; + CastVotes = 3; + RegisterMultisignatureAccount = 4; + CreateDapp = 5; + TransferIntoDapp = 6; + TransferOutOfDapp = 7; + } + /** + * Structure representing the asset field in the Lisk transaction + */ + message LiskTransactionAsset { + optional LiskSignatureType signature = 1; + optional LiskDelegateType delegate = 2; + repeated string votes = 3; + optional LiskMultisignatureType multisignature = 4; + optional string data = 5; + /** + * Structure representing the signature field in the Lisk transaction asset field + */ + message LiskSignatureType { + optional bytes public_key = 1; + } + /** + * Structure representing the delegate field in the Lisk transaction asset field + */ + message LiskDelegateType { + optional string username = 1; + } + /** + * Structure representing the multisignature field in the Lisk transaction asset field + */ + message LiskMultisignatureType { + optional uint32 min = 1; + optional uint32 life_time = 2; + repeated string keys_group = 3; + } + } + } +} + +/** + * Response: Contains Lisk transaction signature + * @end + */ +message LiskSignedTx { + optional bytes signature = 1; +} + +/** + * Request: Ask device to sign message + * @start + * @next LiskMessageSignature + * @next Failure + */ +message LiskSignMessage { + repeated uint32 address_n = 1; + optional bytes message = 2; +} + +/** + * Response: Signed message + * @end + */ +message LiskMessageSignature { + optional bytes public_key = 1; + optional bytes signature = 2; +} + +/** + * Request: Ask device to verify message + * @start + * @next Success + * @next Failure + */ +message LiskVerifyMessage { + optional bytes public_key = 1; + optional bytes signature = 2; + optional bytes message = 3; +} diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto new file mode 100644 index 000000000..1e6d6d2ac --- /dev/null +++ b/common/protob/messages-management.proto @@ -0,0 +1,285 @@ +syntax = "proto2"; +package hw.trezor.messages.management; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageManagement"; + +import "messages-common.proto"; + +/** + * Request: Reset device to default state and ask for device details + * @start + * @next Features + */ +message Initialize { + optional bytes state = 1; // assumed device state, clear session if set and different + optional bool skip_passphrase = 2; // this session should always assume empty passphrase +} + +/** + * Request: Ask for device details (no device reset) + * @start + * @next Features + */ +message GetFeatures { +} + +/** + * Response: Reports various information about the device + * @end + */ +message Features { + optional string vendor = 1; // name of the manufacturer, e.g. "trezor.io" + optional uint32 major_version = 2; // major version of the firmware/bootloader, e.g. 1 + optional uint32 minor_version = 3; // minor version of the firmware/bootloader, e.g. 0 + optional uint32 patch_version = 4; // patch version of the firmware/bootloader, e.g. 0 + optional bool bootloader_mode = 5; // is device in bootloader mode? + optional string device_id = 6; // device's unique identifier + optional bool pin_protection = 7; // is device protected by PIN? + optional bool passphrase_protection = 8; // is node/mnemonic encrypted using passphrase? + optional string language = 9; // device language + optional string label = 10; // device description label + optional bool initialized = 12; // does device contain seed? + optional bytes revision = 13; // SCM revision of firmware + optional bytes bootloader_hash = 14; // hash of the bootloader + optional bool imported = 15; // was storage imported from an external source? + optional bool pin_cached = 16; // is PIN already cached in session? + optional bool passphrase_cached = 17; // is passphrase already cached in session? + optional bool firmware_present = 18; // is valid firmware loaded? + optional bool needs_backup = 19; // does storage need backup? (equals to Storage.needs_backup) + optional uint32 flags = 20; // device flags (equals to Storage.flags) + optional string model = 21; // device hardware model + optional uint32 fw_major = 22; // reported firmware version if in bootloader mode + optional uint32 fw_minor = 23; // reported firmware version if in bootloader mode + optional uint32 fw_patch = 24; // reported firmware version if in bootloader mode + optional string fw_vendor = 25; // reported firmware vendor if in bootloader mode + optional bytes fw_vendor_keys = 26; // reported firmware vendor keys (their hash) + optional bool unfinished_backup = 27; // report unfinished backup (equals to Storage.unfinished_backup) + optional bool no_backup = 28; // report no backup (equals to Storage.no_backup) +} + +/** + * Request: clear session (removes cached PIN, passphrase, etc). + * @start + * @next Success + */ +message ClearSession { +} + +/** + * Request: change language and/or label of the device + * @start + * @next Success + * @next Failure + */ +message ApplySettings { + optional string language = 1; + optional string label = 2; + optional bool use_passphrase = 3; + optional bytes homescreen = 4; + optional PassphraseSourceType passphrase_source = 5; + optional uint32 auto_lock_delay_ms = 6; + optional uint32 display_rotation = 7; // in degrees from North + /** + * Structure representing passphrase source + */ + enum PassphraseSourceType { + ASK = 0; + DEVICE = 1; + HOST = 2; + } +} + +/** + * Request: set flags of the device + * @start + * @next Success + * @next Failure + */ +message ApplyFlags { + optional uint32 flags = 1; // bitmask, can only set bits, not unset +} + +/** + * Request: Starts workflow for setting/changing/removing the PIN + * @start + * @next Success + * @next Failure + */ +message ChangePin { + optional bool remove = 1; // is PIN removal requested? +} + +/** + * Request: Test if the device is alive, device sends back the message in Success response + * @start + * @next Success + */ +message Ping { + optional string message = 1; // message to send back in Success message + optional bool button_protection = 2; // ask for button press + optional bool pin_protection = 3; // ask for PIN if set in device + optional bool passphrase_protection = 4; // ask for passphrase if set in device +} + +/** + * Request: Abort last operation that required user interaction + * @start + * @next Failure + */ +message Cancel { +} + +/** + * Request: Request a sample of random data generated by hardware RNG. May be used for testing. + * @start + * @next Entropy + * @next Failure + */ +message GetEntropy { + required uint32 size = 1; // size of requested entropy +} + +/** + * Response: Reply with random data generated by internal RNG + * @end + */ +message Entropy { + required bytes entropy = 1; // chunk of random generated bytes +} + +/** + * Request: Request device to wipe all sensitive data and settings + * @start + * @next Success + * @next Failure + */ +message WipeDevice { +} + +/** + * Request: Load seed and related internal settings from the computer + * @start + * @next Success + * @next Failure + */ +message LoadDevice { + optional string mnemonic = 1; // seed encoded as BIP-39 mnemonic (12, 18 or 24 words) + optional hw.trezor.messages.common.HDNodeType node = 2; // BIP-32 node + optional string pin = 3; // set PIN protection + optional bool passphrase_protection = 4; // enable master node encryption using passphrase + optional string language = 5 [default='english']; // device language + optional string label = 6; // device label + optional bool skip_checksum = 7; // do not test mnemonic for valid BIP-39 checksum + optional uint32 u2f_counter = 8; // U2F counter +} + +/** + * Request: Ask device to do initialization involving user interaction + * @start + * @next EntropyRequest + * @next Failure + */ +message ResetDevice { + optional bool display_random = 1; // display entropy generated by the device before asking for additional entropy + optional uint32 strength = 2 [default=256]; // strength of seed in bits + optional bool passphrase_protection = 3; // enable master node encryption using passphrase + optional bool pin_protection = 4; // enable PIN protection + optional string language = 5 [default='english']; // device language + optional string label = 6; // device label + optional uint32 u2f_counter = 7; // U2F counter + optional bool skip_backup = 8; // postpone seed backup to BackupDevice workflow + optional bool no_backup = 9; // indicate that no backup is going to be made +} + +/** + * Request: Perform backup of the device seed if not backed up using ResetDevice + * @start + * @next Success + */ +message BackupDevice { +} + +/** + * Response: Ask for additional entropy from host computer + * @next EntropyAck + */ +message EntropyRequest { +} + +/** + * Request: Provide additional entropy for seed generation function + * @next Success + */ +message EntropyAck { + optional bytes entropy = 1; // 256 bits (32 bytes) of random data +} + +/** + * Request: Start recovery workflow asking user for specific words of mnemonic + * Used to recovery device safely even on untrusted computer. + * @start + * @next WordRequest + */ +message RecoveryDevice { + optional uint32 word_count = 1; // number of words in BIP-39 mnemonic + optional bool passphrase_protection = 2; // enable master node encryption using passphrase + optional bool pin_protection = 3; // enable PIN protection + optional string language = 4 [default='english']; // device language + optional string label = 5; // device label + optional bool enforce_wordlist = 6; // enforce BIP-39 wordlist during the process + // 7 reserved for unused recovery method + optional RecoveryDeviceType type = 8; // supported recovery type + optional uint32 u2f_counter = 9; // U2F counter + optional bool dry_run = 10; // perform dry-run recovery workflow (for safe mnemonic validation) + /** + * Type of recovery procedure. These should be used as bitmask, e.g., + * `RecoveryDeviceType_ScrambledWords | RecoveryDeviceType_Matrix` + * listing every method supported by the host computer. + * + * Note that ScrambledWords must be supported by every implementation + * for backward compatibility; there is no way to not support it. + */ + enum RecoveryDeviceType { + // use powers of two when extending this field + RecoveryDeviceType_ScrambledWords = 0; // words in scrambled order + RecoveryDeviceType_Matrix = 1; // matrix recovery type + } +} + +/** + * Response: Device is waiting for user to enter word of the mnemonic + * Its position is shown only on device's internal display. + * @next WordAck + */ +message WordRequest { + optional WordRequestType type = 1; + /** + * Type of Recovery Word request + */ + enum WordRequestType { + WordRequestType_Plain = 0; + WordRequestType_Matrix9 = 1; + WordRequestType_Matrix6 = 2; + } +} + +/** + * Request: Computer replies with word from the mnemonic + * @next WordRequest + * @next Success + * @next Failure + */ +message WordAck { + required string word = 1; // one word of mnemonic on asked position +} + +/** + * Request: Set U2F counter + * @start + * @next Success + */ +message SetU2FCounter { + optional uint32 u2f_counter = 1; // counter +} diff --git a/common/protob/messages-monero.proto b/common/protob/messages-monero.proto new file mode 100644 index 000000000..0e99eb447 --- /dev/null +++ b/common/protob/messages-monero.proto @@ -0,0 +1,503 @@ +syntax = "proto2"; +package hw.trezor.messages.monero; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageMonero"; + +/** + * Structure representing Monero transaction source entry, UTXO + * @embed + */ +message MoneroTransactionSourceEntry { + repeated MoneroOutputEntry outputs = 1; // all outputs including decoys (forms the ring) + optional uint64 real_output = 2; // index denoting which item in `outputs` is our real output (not a decoy) + optional bytes real_out_tx_key = 3; // tx key located in the real output's tx + repeated bytes real_out_additional_tx_keys = 4; // additional tx keys if applicable + optional uint64 real_output_in_tx_index = 5; // index of our real output in the tx (aka which output was it in the transaction) + optional uint64 amount = 6; + optional bool rct = 7; // is RingCT used (true for newer UTXOs) + optional bytes mask = 8; + optional MoneroMultisigKLRki multisig_kLRki = 9; + message MoneroOutputEntry { + optional uint64 idx = 1; + optional MoneroRctKeyPublic key = 2; + message MoneroRctKeyPublic { + optional bytes dest = 1; + optional bytes commitment = 2; + } + } + message MoneroMultisigKLRki { + optional bytes K = 1; + optional bytes L = 2; + optional bytes R = 3; + optional bytes ki = 4; + } +} + +/** + * Structure representing Monero transaction destination entry + * @embed + */ +message MoneroTransactionDestinationEntry { + optional uint64 amount = 1; + optional MoneroAccountPublicAddress addr = 2; + optional bool is_subaddress = 3; + optional bytes original = 4; + optional bool is_integrated = 5; + /** + * Structure representing Monero public address + */ + message MoneroAccountPublicAddress { + optional bytes spend_public_key = 1; + optional bytes view_public_key = 2; + } +} + +/** + * Range sig parameters / data. + * @embed + */ +message MoneroTransactionRsigData { + optional uint32 rsig_type = 1; // range signature (aka proof) type + optional uint32 offload_type = 2; + repeated uint64 grouping = 3; // aggregation scheme for BP + + optional bytes mask = 4; // mask vector + optional bytes rsig = 5; // range sig data, all of it or partial (based on rsig_parts) + repeated bytes rsig_parts = 6; + optional uint32 bp_version = 7; // Bulletproof version +} + +/** + * Request: Ask device for public address derived from seed and address_n + * @start + * @next MoneroAddress + * @next Failure + */ +message MoneroGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result + optional uint32 network_type = 3; // Main-net / testnet / stagenet + optional uint32 account = 4; // Major subaddr index + optional uint32 minor = 5; // Minor subaddr index +} + +/** + * Response: Contains Monero watch-only credentials derived from device private seed + * @end + */ +message MoneroAddress { + optional bytes address = 1; +} + +/** + * Request: Ask device for watch only credentials + * @start + * @next MoneroWatchKey + * @next Failure + */ +message MoneroGetWatchKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network_type = 2; // Main-net / testnet / stagenet +} + +/** + * Response: Contains Monero watch-only credentials derived from device private seed + * @end + */ +message MoneroWatchKey { + optional bytes watch_key = 1; + optional bytes address = 2; +} + +/** + * Request: Sub request of MoneroTransactionSign. Initializes transaction signing. + * @start + * @next MoneroTransactionInitAck + */ +message MoneroTransactionInitRequest { + optional uint32 version = 1; + repeated uint32 address_n = 2; + optional uint32 network_type = 3; // Main-net / testnet / stagenet + optional MoneroTransactionData tsx_data = 4; + /** + * Structure representing Monero initial transaction information + */ + message MoneroTransactionData { + optional uint32 version = 1; + optional bytes payment_id = 2; + optional uint64 unlock_time = 3; + repeated MoneroTransactionDestinationEntry outputs = 4; + optional MoneroTransactionDestinationEntry change_dts = 5; + optional uint32 num_inputs = 6; + optional uint32 mixin = 7; + optional uint64 fee = 8; + optional uint32 account = 9; + repeated uint32 minor_indices = 10; + optional MoneroTransactionRsigData rsig_data = 11; + repeated uint32 integrated_indices = 12; + optional uint32 client_version = 13; // connected client version + optional uint32 hard_fork = 14; // transaction hard fork number + optional bytes monero_version = 15; // monero software version + } +} + +/** + * Response: Response to transaction signing initialization. + * @next MoneroTransactionSetInputRequest + */ +message MoneroTransactionInitAck { + repeated bytes hmacs = 1; + optional MoneroTransactionRsigData rsig_data = 2; +} + +/** + * Request: Sub request of MoneroTransactionSign. Sends one UTXO to device + * @next MoneroTransactionSetInputAck + */ +message MoneroTransactionSetInputRequest { + optional MoneroTransactionSourceEntry src_entr = 1; +} + +/** + * Response: Response to setting UTXO for signature. Contains sealed values needed for further protocol steps. + * @next MoneroTransactionSetInputAck + * @next MoneroTransactionInputsPermutationRequest + */ +message MoneroTransactionSetInputAck { + optional bytes vini = 1; // xmrtypes.TxinToKey + optional bytes vini_hmac = 2; + optional bytes pseudo_out = 3; + optional bytes pseudo_out_hmac = 4; + optional bytes pseudo_out_alpha = 5; + optional bytes spend_key = 6; +} + +/** + * Request: Sub request of MoneroTransactionSign. Permutation on key images. + * @next MoneroTransactionInputsPermutationAck + */ +message MoneroTransactionInputsPermutationRequest { + repeated uint32 perm = 1; +} + +/** + * Response: Response to setting permutation on key images + * @next MoneroTransactionInputViniRequest + */ +message MoneroTransactionInputsPermutationAck { +} + +/** + * Request: Sub request of MoneroTransactionSign. Sends one UTXO to device together with sealed values. + * @next MoneroTransactionInputViniAck + */ +message MoneroTransactionInputViniRequest { + optional MoneroTransactionSourceEntry src_entr = 1; + optional bytes vini = 2; // xmrtypes.TxinToKey + optional bytes vini_hmac = 3; + optional bytes pseudo_out = 4; + optional bytes pseudo_out_hmac = 5; +} + +/** + * Response: Response to setting UTXO to the device + * @next MoneroTransactionInputViniRequest + * @next MoneroTransactionAllInputsSetRequest + */ +message MoneroTransactionInputViniAck { +} + +/** + * Request: Sub request of MoneroTransactionSign. Sent after all inputs have been sent. Useful for rangeisg offloading. + * @next MoneroTransactionAllInputsSetAck + */ +message MoneroTransactionAllInputsSetRequest { +} + +/** + * Response: Response to after all inputs have been set. + * @next MoneroTransactionSetOutputRequest + */ +message MoneroTransactionAllInputsSetAck { + optional MoneroTransactionRsigData rsig_data = 1; +} + +/** + * Request: Sub request of MoneroTransactionSign. Sends one transaction destination to device (HMACed) + * @next MoneroTransactionSetOutputAck + */ +message MoneroTransactionSetOutputRequest { + optional MoneroTransactionDestinationEntry dst_entr = 1; + optional bytes dst_entr_hmac = 2; + optional MoneroTransactionRsigData rsig_data = 3; + optional bool is_offloaded_bp = 4; // Extra message, with offloaded BP. +} + +/** + * Response: Response to setting transaction destination. Contains sealed values needed for further protocol steps. + * @next MoneroTransactionSetOutputRequest + * @next MoneroTransactionAllOutSetRequest + */ +message MoneroTransactionSetOutputAck { + optional bytes tx_out = 1; // xmrtypes.TxOut + optional bytes vouti_hmac = 2; + optional MoneroTransactionRsigData rsig_data = 3; + optional bytes out_pk = 4; + optional bytes ecdh_info = 5; +} + +/** + * Request: Sub request of MoneroTransactionSign. Sent after all outputs are sent. + * @next MoneroTransactionAllOutSetAck + */ +message MoneroTransactionAllOutSetRequest { + optional MoneroTransactionRsigData rsig_data = 1; +} + +/** + * Response: After all outputs are sent the initial RCT signature fields are sent. + * @next MoneroTransactionSignInputRequest + */ +message MoneroTransactionAllOutSetAck { + optional bytes extra = 1; + optional bytes tx_prefix_hash = 2; + optional MoneroRingCtSig rv = 4; // xmrtypes.RctSig + optional bytes full_message_hash = 5; + + /* + * Structure represents initial fields of the Monero RCT signature + */ + message MoneroRingCtSig { + optional uint64 txn_fee = 1; + optional bytes message = 2; + optional uint32 rv_type = 3; + } +} + +/** + * Request: Sub request of MoneroTransactionSign. Sends UTXO for the signing. + * @next MoneroTransactionSignInputAck + */ +message MoneroTransactionSignInputRequest { + optional MoneroTransactionSourceEntry src_entr = 1; + optional bytes vini = 2; // xmrtypes.TxinToKey + optional bytes vini_hmac = 3; + optional bytes pseudo_out = 4; + optional bytes pseudo_out_hmac = 5; + optional bytes pseudo_out_alpha = 6; + optional bytes spend_key = 7; +} + +/** + * Response: Contains full MG signature of the UTXO + multisig data if applicable. + * @next MoneroTransactionSignInputRequest + * @next MoneroTransactionFinalRequest + */ +message MoneroTransactionSignInputAck { + optional bytes signature = 1; + optional bytes pseudo_out = 2; // updated pseudo-out after mask correction +} + +/** + * Request: Sub request of MoneroTransactionSign. Final message of the procol after all UTXOs are signed + * @next MoneroTransactionFinalAck + */ +message MoneroTransactionFinalRequest { +} + +/** + * Response: Contains transaction metadata and encryption keys needed for further transaction operations (e.g. multisig, send proof). + * @end + */ +message MoneroTransactionFinalAck { + optional bytes cout_key = 1; + optional bytes salt = 2; + optional bytes rand_mult = 3; + optional bytes tx_enc_keys = 4; +} + +/** + * Request: Sub request of MoneroKeyImageSync. Initializing key image sync. + * @start + * @next MoneroKeyImageExportInitAck + */ +message MoneroKeyImageExportInitRequest { + optional uint64 num = 1; + optional bytes hash = 2; + repeated uint32 address_n = 3; // BIP-32 path to derive the key from master node + optional uint32 network_type = 4; // Main-net / testnet / stagenet + repeated MoneroSubAddressIndicesList subs = 5; + /** + * Structure representing Monero list of sub-addresses + */ + message MoneroSubAddressIndicesList { + optional uint32 account = 1; + repeated uint32 minor_indices = 2; + } +} + +/** + * Response: Response to key image sync initialization. + * @next MoneroKeyImageSyncStepRequest + */ +message MoneroKeyImageExportInitAck { +} + +/** + * Request: Sub request of MoneroKeyImageSync. Contains batch of the UTXO to export key image for. + * @next MoneroKeyImageSyncStepAck + */ +message MoneroKeyImageSyncStepRequest { + repeated MoneroTransferDetails tdis = 1; + /** + * Structure representing Monero UTXO for key image sync + */ + message MoneroTransferDetails { + optional bytes out_key = 1; + optional bytes tx_pub_key = 2; + repeated bytes additional_tx_pub_keys = 3; + optional uint64 internal_output_index = 4; + } +} + +/** + * Response: Response to key image sync step. Contains encrypted exported key image. + * @next MoneroKeyImageSyncStepRequest + * @next MoneroKeyImageSyncFinalRequest + */ +message MoneroKeyImageSyncStepAck { + repeated MoneroExportedKeyImage kis = 1; + /** + * Structure representing Monero encrypted exported key image + */ + message MoneroExportedKeyImage { + optional bytes iv = 1; + optional bytes blob = 3; + } +} + +/** + * Request: Sub request of MoneroKeyImageSync. Final message of the sync protocol. + * @next MoneroKeyImageSyncFinalAck + */ +message MoneroKeyImageSyncFinalRequest { +} + +/** + * Response: Response to key image sync step. Contains encryption keys for exported key images. + * @end + */ +message MoneroKeyImageSyncFinalAck { + optional bytes enc_key = 1; +} + +/** + * Request: Decrypt tx private keys blob + * @next MoneroGetTxKeyAck + */ +message MoneroGetTxKeyRequest { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network_type = 2; // Main-net / testnet / stagenet + + optional bytes salt1 = 3; + optional bytes salt2 = 4; + optional bytes tx_enc_keys = 5; + optional bytes tx_prefix_hash = 6; + optional uint32 reason = 7; // reason to display for user. e.g., tx_proof + optional bytes view_public_key = 8; // addr for derivation +} + +/** + * Response: Response with the re-encrypted private keys and derivations blob under view key + * @end + */ +message MoneroGetTxKeyAck { + optional bytes salt = 1; + optional bytes tx_keys = 2; + optional bytes tx_derivations = 3; +} + +/** + * Request: Starts live refresh flow. Asks user permission, switches state + * @next MoneroLiveRefreshStartAck + */ +message MoneroLiveRefreshStartRequest { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network_type = 2; // Main-net / testnet / stagenet +} + +/** + * Response after user gave permission + * @next MoneroLiveRefreshStepRequest + * @next MoneroLiveRefreshFinalRequest + */ +message MoneroLiveRefreshStartAck { + +} + +/** + * Request: Request to compute a single key image during live sync + * @next MoneroLiveRefreshStepAck + */ +message MoneroLiveRefreshStepRequest { + optional bytes out_key = 1; + optional bytes recv_deriv = 2; + optional uint64 real_out_idx = 3; + optional uint32 sub_addr_major = 4; + optional uint32 sub_addr_minor = 5; +} + +/** + * Response: Response with the encrypted key image + signature + * @next MoneroLiveRefreshStepRequest + * @next MoneroLiveRefreshFinishedRequest + */ +message MoneroLiveRefreshStepAck { + optional bytes salt = 1; + optional bytes key_image = 2; +} + +/** + * Request: Request terminating live refresh mode. + * @next MoneroLiveRefreshFinishedAck + */ +message MoneroLiveRefreshFinalRequest { + +} + +/** + * Response: Response on termination of live refresh mode. + * @end + */ +message MoneroLiveRefreshFinalAck { + +} + +/** + * Request: Universal Monero protocol implementation diagnosis request. + * @start + * @next DebugMoneroDiagAck + */ +message DebugMoneroDiagRequest { + optional uint64 ins = 1; + optional uint64 p1 = 2; + optional uint64 p2 = 3; + repeated uint64 pd = 4; + optional bytes data1 = 5; + optional bytes data2 = 6; +} + +/** + * Response: Response to Monero diagnosis protocol. + * @end + */ +message DebugMoneroDiagAck { + optional uint64 ins = 1; + optional uint64 p1 = 2; + optional uint64 p2 = 3; + repeated uint64 pd = 4; + optional bytes data1 = 5; + optional bytes data2 = 6; +} diff --git a/common/protob/messages-nem.proto b/common/protob/messages-nem.proto new file mode 100644 index 000000000..295f9dcdb --- /dev/null +++ b/common/protob/messages-nem.proto @@ -0,0 +1,198 @@ +syntax = "proto2"; +package hw.trezor.messages.nem; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageNem"; + +/** + * Request: Ask device for NEM address corresponding to address_n path + * @start + * @next NEMAddress + * @next Failure + */ +message NEMGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network = 2; // Network ID (0x68 = Mainnet, 0x98 = Testnet, 0x60 = Mijin) + optional bool show_display = 3; // Optionally show on display before sending the result +} + +/** + * Response: Contains NEM address derived from device private seed + * @end + */ +message NEMAddress { + required string address = 1; // NEM address in Base32 encoding +} + +/** + * Request: Ask device to sign transaction + * @start + * @next NEMSignedTx + * @next Failure + */ +message NEMSignTx { + optional NEMTransactionCommon transaction = 1; // Common part of transaction + optional NEMTransactionCommon multisig = 2; // Common part of inner transaction for multisig transactions + optional NEMTransfer transfer = 3; // Transfer transaction part + optional bool cosigning = 4; // Whether cosigning or initiating the multisig transaction + optional NEMProvisionNamespace provision_namespace = 5; // Provision namespace part + optional NEMMosaicCreation mosaic_creation = 6; // Mosaic definition creation part + optional NEMMosaicSupplyChange supply_change = 7; // Mosaic supply change part + optional NEMAggregateModification aggregate_modification = 8; // Aggregate modification part + optional NEMImportanceTransfer importance_transfer = 9; // Importance transfer part + /** + * Structure representing the common part for NEM transactions + */ + message NEMTransactionCommon { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network = 2; // Network ID (0x68 = Mainnet, 0x98 = Testnet, 0x60 = Mijin) + optional uint32 timestamp = 3; // Number of seconds elapsed since the creation of the nemesis block + optional uint64 fee = 4; // Fee for the transaction + optional uint32 deadline = 5; // Deadline of the transaction + optional bytes signer = 6; // Public key of the account (for multisig transactions) + } + /** + * Structure representing the transfer transaction part for NEM transactions + */ + message NEMTransfer { + optional string recipient = 1; // Address of the recipient + optional uint64 amount = 2; // Amount of micro NEM that is transferred + optional bytes payload = 3; // Actual message data (unencrypted) + optional bytes public_key = 4; // Public key of the recipient (for encrypted payloads) + repeated NEMMosaic mosaics = 5; // Attached mosaics + /** + * Structure representing the mosaic attachment for NEM transfer transactions + */ + message NEMMosaic { + optional string namespace = 1; // Fully qualified name of the namespace + optional string mosaic = 2; // Name of the mosaic definition + optional uint64 quantity = 3; // Mosaic quantity, always given in smallest units + } + } + /** + * Structure representing the provision namespace part for NEM transactions + */ + message NEMProvisionNamespace { + optional string namespace = 1; // New part concatenated to the parent + optional string parent = 2; // Parent namespace (for child namespaces) + optional string sink = 3; // Rental fee sink address + optional uint64 fee = 4; // Rental fee + } + /** + * Structure representing the mosaic definition creation part for NEM transactions + */ + message NEMMosaicCreation { + optional NEMMosaicDefinition definition = 1; // Mosaic definition + optional string sink = 2; // Creation fee sink address + optional uint64 fee = 3; // Creation fee + /** + * Structure representing a mosaic definition + */ + message NEMMosaicDefinition { + optional string name = 1; // User-friendly name of the mosaic (for whitelisted mosaics) + optional string ticker = 2; // Ticker of the mosaic (for whitelisted mosaics) + optional string namespace = 3; // Fully qualified name of the namespace + optional string mosaic = 4; // Name of the mosaic definition + optional uint32 divisibility = 5; // Number of decimal places that a mosaic can be divided into + optional NEMMosaicLevy levy = 6; // Levy type + optional uint64 fee = 7; // Levy fee (interpretation depends on levy type) + optional string levy_address = 8; // Levy address + optional string levy_namespace = 9; // Fully qualified name of the namespace of the levy mosaic + optional string levy_mosaic = 10; // Name of the levy mosaic + optional uint64 supply = 11; // Initial supply to create, always given in entire units + optional bool mutable_supply = 12; // Mutable supply + optional bool transferable = 13; // Mosaic allows transfers among accounts other than the creator + optional string description = 14; // Mosaic description + repeated uint32 networks = 15; // Networks that the mosaic is valid on (for whitelisted mosaics) + /** + * Type of levy which will be used for mosaic + */ + enum NEMMosaicLevy { + MosaicLevy_Absolute = 1; + MosaicLevy_Percentile = 2; + } + } + } + /** + * Structure representing the mosaic supply change part for NEM transactions + */ + message NEMMosaicSupplyChange { + optional string namespace = 1; // Fully qualified name of the namespace + optional string mosaic = 2; // Name of the mosaic definition + optional NEMSupplyChangeType type = 3; // Type of supply change + optional uint64 delta = 4; // Supply delta + /** + * Type of supply change which will be applied to mosaic + */ + enum NEMSupplyChangeType { + SupplyChange_Increase = 1; + SupplyChange_Decrease = 2; + } + } + /** + * Structure representing the aggregate modification part for NEM transactions + */ + message NEMAggregateModification { + repeated NEMCosignatoryModification modifications = 1; // Cosignatory modifications + optional sint32 relative_change = 2; // Relative change of the minimum cosignatories + /** + * Structure representing the cosignatory modification for aggregate modification transactions + */ + message NEMCosignatoryModification { + optional NEMModificationType type = 1; // Type of cosignatory modification + optional bytes public_key = 2; // Public key of the cosignatory + /** + * Type of cosignatory modification + */ + enum NEMModificationType { + CosignatoryModification_Add = 1; + CosignatoryModification_Delete = 2; + } + } + } + /** + * Structure representing the importance transfer part for NEM transactions + */ + message NEMImportanceTransfer { + optional NEMImportanceTransferMode mode = 1; // Mode of importance transfer + optional bytes public_key = 2; // Public key of the remote account + /** + * Mode of importance transfer + */ + enum NEMImportanceTransferMode { + ImportanceTransfer_Activate = 1; + ImportanceTransfer_Deactivate = 2; + } + } +} + +/** + * Response: Contains NEM transaction data and signature + * @end + */ +message NEMSignedTx { + optional bytes data = 1; // Transaction data + optional bytes signature = 2; // Signature for the transaction +} + +/** + * Request: Ask device to decrypt NEM transaction payload + * @start + * @next NEMDecryptedMessage + * @next Failure + */ +message NEMDecryptMessage { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional uint32 network = 2; // Network ID (0x68 = Mainnet, 0x98 = Testnet, 0x60 = Mijin) + optional bytes public_key = 3; // Public key of the other party + optional bytes payload = 4; // Actual message data (encrypted) +} + +/** + * Response: Contains decrypted NEM transaction payload + * @end + */ +message NEMDecryptedMessage { + optional bytes payload = 1; // Actual message data (unencrypted) +} diff --git a/common/protob/messages-ontology.proto b/common/protob/messages-ontology.proto new file mode 100644 index 000000000..1bb184569 --- /dev/null +++ b/common/protob/messages-ontology.proto @@ -0,0 +1,189 @@ +syntax = "proto2"; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageOntology"; + +/** + * Ontology Transaction + * @embed + */ +message OntologyTransaction { + optional uint32 version = 1; + optional uint32 type = 2; + optional uint32 nonce = 3; + optional uint64 gas_price = 4; + optional uint64 gas_limit = 5; + optional string payer = 6; + repeated OntologyTxAttribute tx_attributes = 7; + /** + * Attribute of Ontology transaction + */ + message OntologyTxAttribute { + optional uint32 usage = 1; + optional bytes data = 2; + } +} + +/** + * Request: Ask device for Ontology public key corresponding to address_n path + * @start + * @next OntologyPublicKey + */ +message OntologyGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Ontology public key derived from device private seed + * @end + */ +message OntologyPublicKey { + optional bytes public_key = 1; // Ontology public key +} + +/** + * Request: Ask device for Ontology address corresponding to address_n path + * @start + * @next OntologyAddress + */ +message OntologyGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Ontology address derived from device private seed + * @end + */ +message OntologyAddress { + optional string address = 1; // Ontology address +} + +/** + * Request: Ask device to sign Ontology transfer + * @start + * @next OntologySignedTransfer + */ +message OntologySignTransfer { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional OntologyTransaction transaction = 2; + optional OntologyTransfer transfer = 3; + /** + * Ontology Transfer + */ + message OntologyTransfer { + optional OntologyAsset asset = 1; + optional uint64 amount = 2; + optional string from_address = 3; + optional string to_address = 4; + /** + * Ontology Asset + */ + enum OntologyAsset { + ONT = 1; + ONG = 2; + } + } +} + +/** + * Response: Contains Ontology transfer signature + * @end + */ +message OntologySignedTransfer { + optional bytes signature = 1; + optional bytes payload = 2; +} + +/** + * Request: Ask device to sign Ontology ONG withdrawal + * @start + * @next OntologySignedWithdrawOng + */ +message OntologySignWithdrawOng { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional OntologyTransaction transaction = 2; + optional OntologyWithdrawOng withdraw_ong = 3; + /** + * Ontology ONG Withdrawal + */ + message OntologyWithdrawOng { + optional uint64 amount = 1; + optional string from_address = 2; + optional string to_address = 3; + } +} + +/** + * Response: Contains Ontology ONG withdrawal signature + * @end + */ +message OntologySignedWithdrawOng { + optional bytes signature = 1; + optional bytes payload = 2; +} + +/** + * Request: Ask device to sign Ontology ONT ID registration + * @start + * @next OntologySignedOntIdRegister + */ +message OntologySignOntIdRegister { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional OntologyTransaction transaction = 2; + optional OntologyOntIdRegister ont_id_register = 3; + /** + * Ontology ONT ID registration + */ + message OntologyOntIdRegister { + optional string ont_id = 1; + optional bytes public_key = 2; + } +} + +/** + * Response: Contains Ontology ONT ID registration signature + * @end + */ +message OntologySignedOntIdRegister { + optional bytes signature = 1; + optional bytes payload = 2; +} + +/** + * Request: Ask device to sign Ontology ONT ID attributes adding + * @start + * @next OntologySignedOntIdAddAttributes + */ +message OntologySignOntIdAddAttributes { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional OntologyTransaction transaction = 2; + optional OntologyOntIdAddAttributes ont_id_add_attributes = 3; + /** + * Ontology ONT ID attributes adding + */ + message OntologyOntIdAddAttributes { + optional string ont_id = 1; + optional bytes public_key = 2; + repeated OntologyOntIdAttribute ont_id_attributes = 3; + /** + * Attribute of Ontology ONT ID + */ + message OntologyOntIdAttribute { + optional string key = 1; + optional string type = 2; + optional string value = 3; + } + } +} + +/** + * Response: Contains Ontology ONT ID attributes adding signature + * @end + */ +message OntologySignedOntIdAddAttributes { + optional bytes signature = 1; + optional bytes payload = 2; +} diff --git a/common/protob/messages-ripple.proto b/common/protob/messages-ripple.proto new file mode 100644 index 000000000..ce31fbf0b --- /dev/null +++ b/common/protob/messages-ripple.proto @@ -0,0 +1,59 @@ +syntax = "proto2"; +package hw.trezor.messages.ripple; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageRipple"; + +/** + * Request: Address at the specified index + * @start + * @next RippleAddress + */ +message RippleGetAddress { + repeated uint32 address_n = 1; // BIP-32 path. For compatibility with other wallets, must be m/44'/144'/index' + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Address for the given index + * @end + */ +message RippleAddress { + optional string address = 1; // Address in Ripple format (base58 of a pubkey with checksum) +} + +/** + * Request: ask device to sign Ripple transaction + * @start + * @next RippleSignedTx + */ +message RippleSignTx { + repeated uint32 address_n = 1; // BIP-32 path. For compatibility with other wallets, must be m/44'/144'/index' + optional uint64 fee = 2; // fee (in drops) for the transaction + optional uint32 flags = 3; // transaction flags + optional uint32 sequence = 4; // transaction sequence number + optional uint32 last_ledger_sequence = 5; // see https://developers.ripple.com/reliable-transaction-submission.html#lastledgersequence + optional RipplePayment payment = 6; // Payment transaction type + + /** + * Payment transaction type + * - simple A sends money to B + * - only a subset of fields is supported + * - see https://developers.ripple.com/payment.html + */ + message RipplePayment { + optional uint64 amount = 1; // only XRP is supported at the moment so this an integer + optional string destination = 2; // destination account address + optional uint32 destination_tag = 3; // destination tag to identify payments + } +} + +/** + * Response: signature for transaction + * @end + */ +message RippleSignedTx { + optional bytes signature = 1; + optional bytes serialized_tx = 2; +} diff --git a/common/protob/messages-stellar.proto b/common/protob/messages-stellar.proto new file mode 100644 index 000000000..c8229c7c0 --- /dev/null +++ b/common/protob/messages-stellar.proto @@ -0,0 +1,222 @@ +syntax = "proto2"; +package hw.trezor.messages.stellar; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageStellar"; + +/** + * Describes a Stellar asset + * @embed + */ +message StellarAssetType { + optional uint32 type = 1; // 0 = native asset (XLM), 1 = alphanum 4, 2 = alphanum 12 + optional string code = 2; // for non-native assets, string describing the code + optional string issuer = 3; // issuing address +} + +/** + * Request: Address at the specified index + * @start + * @next StellarAddress + */ +message StellarGetAddress { + repeated uint32 address_n = 1; // BIP-32 path. For compatibility with other wallets, must be m/44'/148'/index' + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Address for the given index + * @end + */ +message StellarAddress { + optional string address = 1; // Address in Stellar format (base32 of a pubkey with checksum) +} + +/** + * Request: ask device to sign Stellar transaction + * @start + * @next StellarTxOpRequest + */ +message StellarSignTx { + repeated uint32 address_n = 2; // BIP-32 path. For compatibility with other wallets, must be m/44'/148'/index' + optional string network_passphrase = 3; // passphrase for signing messages on the destination network + optional string source_account = 4; // source account address + optional uint32 fee = 5; // Fee (in stroops) for the transaction + optional uint64 sequence_number = 6; // transaction sequence number + optional uint32 timebounds_start = 8; // unix timestamp (client must truncate this to 32 bytes) + optional uint32 timebounds_end = 9; // unix timestamp (client must truncate this to 32 bytes) + optional uint32 memo_type = 10; // 0 = none, 1 = text, 2 = id, 3 = hash, 4 = return + optional string memo_text = 11; // up to 28 characters (4 bytes are for length) + optional uint64 memo_id = 12; // 8-byte uint64 + optional bytes memo_hash = 13; // 32 bytes representing a hash + optional uint32 num_operations = 14; // number of operations in this transaction +} + +/** + * Response: device is ready for client to send the next operation + * @next StellarPaymentOp + * @next StellarCreateAccountOp + * @next StellarPathPaymentOp + * @next StellarManageOfferOp + * @next StellarCreatePassiveOfferOp + * @next StellarSetOptionsOp + * @next StellarChangeTrustOp + * @next StellarAllowTrustOp + * @next StellarAccountMergeOp + * @next StellarManageDataOp + * @next StellarBumpSequenceOp + */ +message StellarTxOpRequest { +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarPaymentOp { + optional string source_account = 1; // (optional) source account address + optional string destination_account = 2; // destination account address + optional StellarAssetType asset = 3; // asset involved in the operation + optional sint64 amount = 4; // amount of the given asset to pay +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarCreateAccountOp { + optional string source_account = 1; // (optional) source account address + optional string new_account = 2; // account address to create + optional sint64 starting_balance = 3; // initial starting balance for the new account +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarPathPaymentOp { + optional string source_account = 1; // (optional) source address + optional StellarAssetType send_asset = 2; + optional sint64 send_max = 3; + optional string destination_account = 4; + optional StellarAssetType destination_asset = 5; + optional sint64 destination_amount = 6; + repeated StellarAssetType paths = 7; +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarManageOfferOp { + optional string source_account = 1; // (optional) source account address + optional StellarAssetType selling_asset = 2; + optional StellarAssetType buying_asset = 3; + optional sint64 amount = 4; + optional uint32 price_n = 5; // Price numerator + optional uint32 price_d = 6; // Price denominator + optional uint64 offer_id = 7; // Offer ID for updating an existing offer +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarCreatePassiveOfferOp { + optional string source_account = 1; // (optional) source account address + optional StellarAssetType selling_asset = 2; + optional StellarAssetType buying_asset = 3; + optional sint64 amount = 4; + optional uint32 price_n = 5; // Price numerator + optional uint32 price_d = 6; // Price denominator +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarSetOptionsOp { + optional string source_account = 1; // (optional) source account address + optional string inflation_destination_account = 2; // (optional) inflation destination address + optional uint32 clear_flags = 3; + optional uint32 set_flags = 4; + optional uint32 master_weight = 5; + optional uint32 low_threshold = 6; + optional uint32 medium_threshold = 7; + optional uint32 high_threshold = 8; + optional string home_domain = 9; + optional uint32 signer_type = 10; + optional bytes signer_key = 11; + optional uint32 signer_weight = 12; +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarChangeTrustOp { + optional string source_account = 1; // (optional) source account address + optional StellarAssetType asset = 2; + optional uint64 limit = 3; +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarAllowTrustOp { + optional string source_account = 1; // (optional) source account address + optional string trusted_account = 2; // The account being allowed to hold the asset + optional uint32 asset_type = 3; // 1 = 4-character, 2 = 12-character + optional string asset_code = 4; // human-readable asset code + optional uint32 is_authorized = 5; +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarAccountMergeOp { + optional string source_account = 1; // (optional) source account address + optional string destination_account = 2; // destination account address +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarManageDataOp { + optional string source_account = 1; // (optional) source account address + optional string key = 2; + optional bytes value = 3; // 64 bytes of arbitrary data +} + +/** + * Request: ask device to confirm this operation type + * @next StellarTxOpRequest + * @next StellarSignedTx + */ +message StellarBumpSequenceOp { + optional string source_account = 1; // (optional) source account address + optional uint64 bump_to = 2; // new sequence number +} + +/** + * Response: signature for transaction + * @end + */ +message StellarSignedTx { + optional bytes public_key = 1; // public key for the private key used to sign data + optional bytes signature = 2; // signature suitable for sending to the Stellar network +} diff --git a/common/protob/messages-tezos.proto b/common/protob/messages-tezos.proto new file mode 100644 index 000000000..e429ce8b8 --- /dev/null +++ b/common/protob/messages-tezos.proto @@ -0,0 +1,133 @@ +syntax = "proto2"; +package hw.trezor.messages.tezos; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageTezos"; + +/** + * Request: Ask device for Tezos address corresponding to address_n path + * @start + * @next TezosAddress + * @next Failure + */ +message TezosGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // optionally show on display before sending the result +} + +/** + * Response: Contains Tezos address derived from device private seed + * @end + */ +message TezosAddress { + optional string address = 1; // Coin address in Base58 encoding +} + +/** + * Request: Ask device for Tezos public key corresponding to address_n path + * @start + * @next TezosPublicKey + */ +message TezosGetPublicKey { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Tezos public key derived from device private seed + * @end + */ +message TezosPublicKey { + optional string public_key = 1; // b58 encoded Tezos public key with prefix +} + +/** + * Request: Ask device to sign Tezos transaction + * @start + * @next TezosSignedTx + */ +message TezosSignTx { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bytes branch = 2; + + optional TezosRevealOp reveal = 3; // Tezos reveal operation (may be bundled with other op) + optional TezosTransactionOp transaction = 4; // Tezos transaction operation + optional TezosOriginationOp origination = 5; // Tezos origination operation + optional TezosDelegationOp delegation = 6; // Tezos delegation operation + /* + * Tezos contract ID + */ + message TezosContractID { + optional TezosContractType tag = 1; + optional bytes hash = 2; // Implicit = 21B, originated = 20B + 1B padding + /* + * Type of Tezos Contract type + */ + enum TezosContractType { + Implicit = 0; + Originated = 1; + } + } + /** + * Structure representing information for reveal + */ + message TezosRevealOp { + optional TezosContractID source = 1; + optional uint64 fee = 2; + optional uint64 counter = 3; + optional uint64 gas_limit = 4; + optional uint64 storage_limit = 5; + optional bytes public_key = 6; + } + /** + * Structure representing information for transaction + */ + message TezosTransactionOp { + optional TezosContractID source = 1; + optional uint64 fee = 2; + optional uint64 counter = 3; + optional uint64 gas_limit = 4; + optional uint64 storage_limit = 5; + optional uint64 amount = 6; + optional TezosContractID destination = 7; + optional bytes parameters = 8; + } + /** + * Structure representing information for origination + */ + message TezosOriginationOp { + optional TezosContractID source = 1; + optional uint64 fee = 2; + optional uint64 counter = 3; + optional uint64 gas_limit = 4; + optional uint64 storage_limit = 5; + optional bytes manager_pubkey = 6; + optional uint64 balance = 7; + optional bool spendable = 8; + optional bool delegatable = 9; + optional bytes delegate = 10; + optional bytes script = 11; + } + /** + * Structure representing information for delegation + */ + message TezosDelegationOp { + optional TezosContractID source = 1; + optional uint64 fee = 2; + optional uint64 counter = 3; + optional uint64 gas_limit = 4; + optional uint64 storage_limit = 5; + optional bytes delegate = 6; + } +} + +/** + * Response: Contains Tezos transaction signature + * @end + */ +message TezosSignedTx { + optional string signature = 1; // Tezos b58 encoded transaction signature with prefix + optional bytes sig_op_contents = 2; // operation_bytes + signed operation_bytes + optional string operation_hash = 3; // b58 encoded hashed operation contents with prefix +} diff --git a/common/protob/messages-tron.proto b/common/protob/messages-tron.proto new file mode 100644 index 000000000..ce3525c93 --- /dev/null +++ b/common/protob/messages-tron.proto @@ -0,0 +1,162 @@ +syntax = "proto2"; + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessageTron"; + +/** + * Request: Ask device for Tron address corresponding to address_n path + * @start + * @next TronAddress + * @next Failure + */ +message TronGetAddress { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + optional bool show_display = 2; // Optionally show on display before sending the result +} + +/** + * Response: Contains Tron address derived from device private seed + * @end + */ +message TronAddress { + optional string address = 1; // Tron address (base58) +} + +/** + * Request: Ask device to sign Tron transaction + * @start + * @next TronSignedTx + */ +message TronSignTx { + repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node + // Common part of transaction + optional bytes ref_block_bytes = 2; // Reference block number + optional bytes ref_block_hash = 3; // Reference block hash + optional uint64 expiration = 4; // Transaction expiration + optional string data = 5; // Extra transaction info + optional TronContract contract = 6; // Contract messages + optional uint64 timestamp = 7; // UTC timestamp + + /*** + * Tron Contracts Messages + * + */ + message TronContract { + // Update account name + message TronAccountUpdateContract { + optional string account_name = 1; // Account name is not unique + } + // Transfer TRX + message TronTransferContract { + optional bytes to_address = 1; // To address - decoded base 58 + optional uint64 amount = 2; // TRX amount in sun (10^-6) + } + // Transfer asset + message TronTransferAssetContract { + optional string asset_name = 1; // Asset name + optional bytes to_address = 2; // To address - decoded base 58 + optional uint64 amount = 3; // Amount to transfer + } + // Vote witness + message TronVoteWitnessContract { + message TronVote { + optional bytes vote_address = 1; // Candidate Address - decoded base 58 + optional uint64 vote_count = 2; // Amount of votes + } + repeated TronVote votes = 1; // votes + } + // Upgrade account to witness + message TronWitnessCreateContract { + optional string url = 1; // Witness URL + } + // Update witness URL + message TronWitnessUpdateContract { + optional string update_url = 2; // Witness URL + } + // Issue Asset + message TronAssetIssueContract { + message TronFrozenSupply { + optional uint64 frozen_amount = 1; // Amount frozen + optional uint64 frozen_days = 2; // Days from issue date + } + optional string name = 2; // Asset name + optional string abbr = 3; // Asset abbreviation + optional uint64 total_supply = 4; // Total supply including frozen + repeated TronFrozenSupply frozen_supply = 5; // Frozen supply + optional uint32 trx_num = 6; // Amount of TRX (exchange ratio) + optional uint32 num = 7; // Amount of tokens (exchange ratio) + optional uint64 start_time = 8; // Negotiation start date and time + optional uint64 end_time = 9; // Negotiation end date and time + optional string description = 10; // Asset description + optional string url = 11; // Asset URL + } + // Participate in an asset + message TronParticipateAssetIssueContract { + optional bytes to_address = 1; // Asset issuer address - decoded base 58 + optional string asset_name = 2; // The name of target asset + optional uint64 amount = 3; // TRX amount in sun + } + // Freeze TRX balance + message TronFreezeBalanceContract { + optional uint64 frozen_balance = 1; // Amount to freeze + optional uint64 frozen_duration = 2; // Freeze minimal duration in days + } + // Unfreeze TRX Balance + message TronUnfreezeBalanceContract { + } + // Unfreeze Asset Balance + message TronUnfreezeAssetContract { + } + // Withdraw witness balance + message TronWithdrawBalanceContract { + } + // Update Asset + message TronUpdateAssetContract { + optional string description = 1; // New description + optional string url = 2; // New URL + } + // Network proposal contract + message TronProposalCreateContract { + message TronProposalParameters { + optional uint64 key = 1; // Parameter key + optional uint64 value = 2; // Parameter value + } + repeated TronProposalParameters parameters = 1; // Parameter to be changed + } + // Approval contract + message TronProposalApproveContract { + optional uint64 proposal_id = 1; // Proposal ID + optional bool is_add_approval = 2; // Add or remove approval + } + // Delete proposal + message TronProposalDeleteContract { + optional uint64 proposal_id = 1; // Proposal ID + } + optional TronTransferContract transfer_contract = 1; + optional TronTransferAssetContract transfer_asset_contract = 2; + optional TronVoteWitnessContract vote_witness_contract = 4; + optional TronWitnessCreateContract witness_create_contract = 5; + optional TronAssetIssueContract asset_issue_contract = 6; + optional TronWitnessUpdateContract witness_update_contract = 8; + optional TronParticipateAssetIssueContract participate_asset_issue_contract = 9; + optional TronAccountUpdateContract account_update_contract = 10; + optional TronFreezeBalanceContract freeze_balance_contract = 11; + optional TronUnfreezeBalanceContract unfreeze_balance_contract = 12; + optional TronWithdrawBalanceContract withdraw_balance_contract = 13; + optional TronUnfreezeAssetContract unfreeze_asset_contract = 14; + optional TronUpdateAssetContract update_asset_contract = 15; + optional TronProposalCreateContract proposal_create_contract = 16; + optional TronProposalApproveContract proposal_approve_contract = 17; + optional TronProposalDeleteContract proposal_delete_contract = 18; + } +} + +/** + * Response: Contains Tron transaction signature + * @end + */ +message TronSignedTx { + optional bytes signature = 1; // Transaction signature + optional bytes serialized_tx = 2; // Serialized transaction +} diff --git a/common/protob/messages.proto b/common/protob/messages.proto new file mode 100644 index 000000000..63f13e5d8 --- /dev/null +++ b/common/protob/messages.proto @@ -0,0 +1,260 @@ +syntax = "proto2"; +package hw.trezor.messages; + +/** + * Messages for TREZOR communication + */ + +// Sugar for easier handling in Java +option java_package = "com.satoshilabs.trezor.lib.protobuf"; +option java_outer_classname = "TrezorMessage"; + +import "google/protobuf/descriptor.proto"; + +/** + * Options for specifying message direction and type of wire (normal/debug) + */ +extend google.protobuf.EnumValueOptions { + optional bool wire_in = 50002; // message can be transmitted via wire from PC to TREZOR + optional bool wire_out = 50003; // message can be transmitted via wire from TREZOR to PC + optional bool wire_debug_in = 50004; // message can be transmitted via debug wire from PC to TREZOR + optional bool wire_debug_out = 50005; // message can be transmitted via debug wire from TREZOR to PC + optional bool wire_tiny = 50006; // message is handled by TREZOR when the USB stack is in tiny mode + optional bool wire_bootloader = 50007; // message is only handled by TREZOR Bootloader + optional bool wire_no_fsm = 50008; // message is not handled by TREZOR unless the USB stack is in tiny mode +} + +/** + * Mapping between TREZOR wire identifier (uint) and a protobuf message + */ +enum MessageType { + + // Management + MessageType_Initialize = 0 [(wire_in) = true, (wire_tiny) = true]; + MessageType_Ping = 1 [(wire_in) = true]; + MessageType_Success = 2 [(wire_out) = true]; + MessageType_Failure = 3 [(wire_out) = true]; + MessageType_ChangePin = 4 [(wire_in) = true]; + MessageType_WipeDevice = 5 [(wire_in) = true]; + MessageType_GetEntropy = 9 [(wire_in) = true]; + MessageType_Entropy = 10 [(wire_out) = true]; + MessageType_LoadDevice = 13 [(wire_in) = true]; + MessageType_ResetDevice = 14 [(wire_in) = true]; + MessageType_Features = 17 [(wire_out) = true]; + MessageType_PinMatrixRequest = 18 [(wire_out) = true]; + MessageType_PinMatrixAck = 19 [(wire_in) = true, (wire_tiny) = true, (wire_no_fsm) = true]; + MessageType_Cancel = 20 [(wire_in) = true, (wire_tiny) = true]; + MessageType_ClearSession = 24 [(wire_in) = true]; + MessageType_ApplySettings = 25 [(wire_in) = true]; + MessageType_ButtonRequest = 26 [(wire_out) = true]; + MessageType_ButtonAck = 27 [(wire_in) = true, (wire_tiny) = true, (wire_no_fsm) = true]; + MessageType_ApplyFlags = 28 [(wire_in) = true]; + MessageType_BackupDevice = 34 [(wire_in) = true]; + MessageType_EntropyRequest = 35 [(wire_out) = true]; + MessageType_EntropyAck = 36 [(wire_in) = true]; + MessageType_PassphraseRequest = 41 [(wire_out) = true]; + MessageType_PassphraseAck = 42 [(wire_in) = true, (wire_tiny) = true, (wire_no_fsm) = true]; + MessageType_PassphraseStateRequest = 77 [(wire_out) = true]; + MessageType_PassphraseStateAck = 78 [(wire_in) = true, (wire_tiny) = true, (wire_no_fsm) = true]; + MessageType_RecoveryDevice = 45 [(wire_in) = true]; + MessageType_WordRequest = 46 [(wire_out) = true]; + MessageType_WordAck = 47 [(wire_in) = true]; + MessageType_GetFeatures = 55 [(wire_in) = true]; + MessageType_SetU2FCounter = 63 [(wire_in) = true]; + + // Bootloader + MessageType_FirmwareErase = 6 [(wire_in) = true, (wire_bootloader) = true]; + MessageType_FirmwareUpload = 7 [(wire_in) = true, (wire_bootloader) = true]; + MessageType_FirmwareRequest = 8 [(wire_out) = true, (wire_bootloader) = true]; + MessageType_SelfTest = 32 [(wire_in) = true, (wire_bootloader) = true]; + + // Bitcoin + MessageType_GetPublicKey = 11 [(wire_in) = true]; + MessageType_PublicKey = 12 [(wire_out) = true]; + MessageType_SignTx = 15 [(wire_in) = true]; + MessageType_TxRequest = 21 [(wire_out) = true]; + MessageType_TxAck = 22 [(wire_in) = true]; + MessageType_GetAddress = 29 [(wire_in) = true]; + MessageType_Address = 30 [(wire_out) = true]; + MessageType_SignMessage = 38 [(wire_in) = true]; + MessageType_VerifyMessage = 39 [(wire_in) = true]; + MessageType_MessageSignature = 40 [(wire_out) = true]; + + // Crypto + MessageType_CipherKeyValue = 23 [(wire_in) = true]; + MessageType_CipheredKeyValue = 48 [(wire_out) = true]; + MessageType_SignIdentity = 53 [(wire_in) = true]; + MessageType_SignedIdentity = 54 [(wire_out) = true]; + MessageType_GetECDHSessionKey = 61 [(wire_in) = true]; + MessageType_ECDHSessionKey = 62 [(wire_out) = true]; + MessageType_CosiCommit = 71 [(wire_in) = true]; + MessageType_CosiCommitment = 72 [(wire_out) = true]; + MessageType_CosiSign = 73 [(wire_in) = true]; + MessageType_CosiSignature = 74 [(wire_out) = true]; + + // Debug + MessageType_DebugLinkDecision = 100 [(wire_debug_in) = true, (wire_tiny) = true, (wire_no_fsm) = true]; + MessageType_DebugLinkGetState = 101 [(wire_debug_in) = true, (wire_tiny) = true]; + MessageType_DebugLinkState = 102 [(wire_debug_out) = true]; + MessageType_DebugLinkStop = 103 [(wire_debug_in) = true]; + MessageType_DebugLinkLog = 104 [(wire_debug_out) = true]; + MessageType_DebugLinkMemoryRead = 110 [(wire_debug_in) = true]; + MessageType_DebugLinkMemory = 111 [(wire_debug_out) = true]; + MessageType_DebugLinkMemoryWrite = 112 [(wire_debug_in) = true]; + MessageType_DebugLinkFlashErase = 113 [(wire_debug_in) = true]; + + // Ethereum + MessageType_EthereumGetPublicKey = 450 [(wire_in) = true]; + MessageType_EthereumPublicKey = 451 [(wire_out) = true]; + MessageType_EthereumGetAddress = 56 [(wire_in) = true]; + MessageType_EthereumAddress = 57 [(wire_out) = true]; + MessageType_EthereumSignTx = 58 [(wire_in) = true]; + MessageType_EthereumTxRequest = 59 [(wire_out) = true]; + MessageType_EthereumTxAck = 60 [(wire_in) = true]; + MessageType_EthereumSignMessage = 64 [(wire_in) = true]; + MessageType_EthereumVerifyMessage = 65 [(wire_in) = true]; + MessageType_EthereumMessageSignature = 66 [(wire_out) = true]; + + // NEM + MessageType_NEMGetAddress = 67 [(wire_in) = true]; + MessageType_NEMAddress = 68 [(wire_out) = true]; + MessageType_NEMSignTx = 69 [(wire_in) = true]; + MessageType_NEMSignedTx = 70 [(wire_out) = true]; + MessageType_NEMDecryptMessage = 75 [(wire_in) = true]; + MessageType_NEMDecryptedMessage = 76 [(wire_out) = true]; + + // Lisk + MessageType_LiskGetAddress = 114 [(wire_in) = true]; + MessageType_LiskAddress = 115 [(wire_out) = true]; + MessageType_LiskSignTx = 116 [(wire_in) = true]; + MessageType_LiskSignedTx = 117 [(wire_out) = true]; + MessageType_LiskSignMessage = 118 [(wire_in) = true]; + MessageType_LiskMessageSignature = 119 [(wire_out) = true]; + MessageType_LiskVerifyMessage = 120 [(wire_in) = true]; + MessageType_LiskGetPublicKey = 121 [(wire_in) = true]; + MessageType_LiskPublicKey = 122 [(wire_out) = true]; + + // Tezos + MessageType_TezosGetAddress = 150 [(wire_in) = true]; + MessageType_TezosAddress = 151 [(wire_out) = true]; + MessageType_TezosSignTx = 152 [(wire_in) = true]; + MessageType_TezosSignedTx = 153 [(wire_out) = true]; + MessageType_TezosGetPublicKey = 154 [(wire_in) = true]; + MessageType_TezosPublicKey = 155 [(wire_out) = true]; + + // Stellar + MessageType_StellarSignTx = 202 [(wire_in) = true]; + MessageType_StellarTxOpRequest = 203 [(wire_out) = true]; + MessageType_StellarGetAddress = 207 [(wire_in) = true]; + MessageType_StellarAddress = 208 [(wire_out) = true]; + MessageType_StellarCreateAccountOp = 210 [(wire_in) = true]; + MessageType_StellarPaymentOp = 211 [(wire_in) = true]; + MessageType_StellarPathPaymentOp = 212 [(wire_in) = true]; + MessageType_StellarManageOfferOp = 213 [(wire_in) = true]; + MessageType_StellarCreatePassiveOfferOp = 214 [(wire_in) = true]; + MessageType_StellarSetOptionsOp = 215 [(wire_in) = true]; + MessageType_StellarChangeTrustOp = 216 [(wire_in) = true]; + MessageType_StellarAllowTrustOp = 217 [(wire_in) = true]; + MessageType_StellarAccountMergeOp = 218 [(wire_in) = true]; + // omitted: StellarInflationOp is not a supported operation, would be 219 + MessageType_StellarManageDataOp = 220 [(wire_in) = true]; + MessageType_StellarBumpSequenceOp = 221 [(wire_in) = true]; + MessageType_StellarSignedTx = 230 [(wire_out) = true]; + + // TRON + MessageType_TronGetAddress = 250 [(wire_in) = true]; + MessageType_TronAddress = 251 [(wire_out) = true]; + MessageType_TronSignTx = 252 [(wire_in) = true]; + MessageType_TronSignedTx = 253 [(wire_out) = true]; + + // Cardano + // dropped Sign/VerifyMessage ids 300-302 + MessageType_CardanoSignTx = 303 [(wire_in) = true]; + MessageType_CardanoTxRequest = 304 [(wire_out) = true]; + MessageType_CardanoGetPublicKey = 305 [(wire_in) = true]; + MessageType_CardanoPublicKey = 306 [(wire_out) = true]; + MessageType_CardanoGetAddress = 307 [(wire_in) = true]; + MessageType_CardanoAddress = 308 [(wire_out) = true]; + MessageType_CardanoTxAck = 309 [(wire_in) = true]; + MessageType_CardanoSignedTx = 310 [(wire_out) = true]; + + // Ontology + MessageType_OntologyGetAddress = 350 [(wire_in) = true]; + MessageType_OntologyAddress = 351 [(wire_out) = true]; + MessageType_OntologyGetPublicKey = 352 [(wire_in) = true]; + MessageType_OntologyPublicKey = 353 [(wire_out) = true]; + MessageType_OntologySignTransfer = 354 [(wire_in) = true]; + MessageType_OntologySignedTransfer = 355 [(wire_out) = true]; + MessageType_OntologySignWithdrawOng = 356 [(wire_in) = true]; + MessageType_OntologySignedWithdrawOng = 357 [(wire_out) = true]; + MessageType_OntologySignOntIdRegister = 358 [(wire_in) = true]; + MessageType_OntologySignedOntIdRegister = 359 [(wire_out) = true]; + MessageType_OntologySignOntIdAddAttributes = 360 [(wire_in) = true]; + MessageType_OntologySignedOntIdAddAttributes = 361 [(wire_out) = true]; + + // Ripple + MessageType_RippleGetAddress = 400 [(wire_in) = true]; + MessageType_RippleAddress = 401 [(wire_out) = true]; + MessageType_RippleSignTx = 402 [(wire_in) = true]; + MessageType_RippleSignedTx = 403 [(wire_in) = true]; + + // Monero + MessageType_MoneroTransactionInitRequest = 501 [(wire_out) = true]; + MessageType_MoneroTransactionInitAck = 502 [(wire_out) = true]; + MessageType_MoneroTransactionSetInputRequest = 503 [(wire_out) = true]; + MessageType_MoneroTransactionSetInputAck = 504 [(wire_out) = true]; + MessageType_MoneroTransactionInputsPermutationRequest = 505 [(wire_out) = true]; + MessageType_MoneroTransactionInputsPermutationAck = 506 [(wire_out) = true]; + MessageType_MoneroTransactionInputViniRequest = 507 [(wire_out) = true]; + MessageType_MoneroTransactionInputViniAck = 508 [(wire_out) = true]; + MessageType_MoneroTransactionAllInputsSetRequest = 509 [(wire_out) = true]; + MessageType_MoneroTransactionAllInputsSetAck = 510 [(wire_out) = true]; + MessageType_MoneroTransactionSetOutputRequest = 511 [(wire_out) = true]; + MessageType_MoneroTransactionSetOutputAck = 512 [(wire_out) = true]; + MessageType_MoneroTransactionAllOutSetRequest = 513 [(wire_out) = true]; + MessageType_MoneroTransactionAllOutSetAck = 514 [(wire_out) = true]; + MessageType_MoneroTransactionSignInputRequest = 515 [(wire_out) = true]; + MessageType_MoneroTransactionSignInputAck = 516 [(wire_out) = true]; + MessageType_MoneroTransactionFinalRequest = 517 [(wire_out) = true]; + MessageType_MoneroTransactionFinalAck = 518 [(wire_out) = true]; + MessageType_MoneroKeyImageExportInitRequest = 530 [(wire_out) = true]; + MessageType_MoneroKeyImageExportInitAck = 531 [(wire_out) = true]; + MessageType_MoneroKeyImageSyncStepRequest = 532 [(wire_out) = true]; + MessageType_MoneroKeyImageSyncStepAck = 533 [(wire_out) = true]; + MessageType_MoneroKeyImageSyncFinalRequest = 534 [(wire_out) = true]; + MessageType_MoneroKeyImageSyncFinalAck = 535 [(wire_out) = true]; + MessageType_MoneroGetAddress = 540 [(wire_in) = true]; + MessageType_MoneroAddress = 541 [(wire_out) = true]; + MessageType_MoneroGetWatchKey = 542 [(wire_in) = true]; + MessageType_MoneroWatchKey = 543 [(wire_out) = true]; + MessageType_DebugMoneroDiagRequest = 546 [(wire_in) = true]; + MessageType_DebugMoneroDiagAck = 547 [(wire_out) = true]; + MessageType_MoneroGetTxKeyRequest = 550 [(wire_in) = true]; + MessageType_MoneroGetTxKeyAck = 551 [(wire_out) = true]; + MessageType_MoneroLiveRefreshStartRequest = 552 [(wire_in) = true]; + MessageType_MoneroLiveRefreshStartAck = 553 [(wire_out) = true]; + MessageType_MoneroLiveRefreshStepRequest = 554 [(wire_in) = true]; + MessageType_MoneroLiveRefreshStepAck = 555 [(wire_out) = true]; + MessageType_MoneroLiveRefreshFinalRequest = 556 [(wire_in) = true]; + MessageType_MoneroLiveRefreshFinalAck = 557 [(wire_out) = true]; + + // EOS + MessageType_EosGetPublicKey = 600 [(wire_in) = true]; + MessageType_EosPublicKey = 601 [(wire_out) = true]; + MessageType_EosSignTx = 602 [(wire_in) = true]; + MessageType_EosTxActionRequest = 603 [(wire_out) = true]; + MessageType_EosTxActionAck = 604 [(wire_in) = true]; + MessageType_EosSignedTx = 605 [(wire_out) = true]; + + // Binance + MessageType_BinanceGetAddress = 700 [(wire_in) = true]; + MessageType_BinanceAddress = 701 [(wire_out) = true]; + MessageType_BinanceGetPublicKey = 702 [(wire_in) = true]; + MessageType_BinancePublicKey = 703 [(wire_out) = true]; + MessageType_BinanceSignTx = 704 [(wire_in) = true]; + MessageType_BinanceTxRequest = 705 [(wire_out) = true]; + MessageType_BinanceTransferMsg = 706 [(wire_in) = true]; + MessageType_BinanceOrderMsg = 707 [(wire_in) = true]; + MessageType_BinanceCancelMsg = 708 [(wire_in) = true]; + MessageType_BinanceSignedTx = 709 [(wire_out) = true]; +} diff --git a/common/protob/pb2py b/common/protob/pb2py new file mode 100755 index 000000000..4bb14f3bf --- /dev/null +++ b/common/protob/pb2py @@ -0,0 +1,367 @@ +#!/usr/bin/env python3 +# Converts Google's protobuf python definitions of TREZOR wire messages +# to plain-python objects as used in TREZOR Core and python-trezor + +import argparse +import importlib +import logging +import os +import shutil +import subprocess +import sys +import tempfile +from collections import namedtuple + +from google.protobuf import descriptor_pb2 + +ProtoField = namedtuple( + "ProtoField", "name, number, proto_type, py_type, repeated, required, orig" +) + +AUTO_HEADER = "# Automatically generated by pb2py\n" + +# fmt: off +FIELD_TYPES = { + descriptor_pb2.FieldDescriptorProto.TYPE_UINT64: ('p.UVarintType', 'int'), + descriptor_pb2.FieldDescriptorProto.TYPE_UINT32: ('p.UVarintType', 'int'), + descriptor_pb2.FieldDescriptorProto.TYPE_ENUM: ('p.UVarintType', 'int'), + descriptor_pb2.FieldDescriptorProto.TYPE_SINT32: ('p.SVarintType', 'int'), + descriptor_pb2.FieldDescriptorProto.TYPE_SINT64: ('p.SVarintType', 'int'), + descriptor_pb2.FieldDescriptorProto.TYPE_STRING: ('p.UnicodeType', 'str'), + descriptor_pb2.FieldDescriptorProto.TYPE_BOOL: ('p.BoolType', 'bool'), + descriptor_pb2.FieldDescriptorProto.TYPE_BYTES: ('p.BytesType', 'bytes'), +} +# fmt: on + +PROTOC = shutil.which("protoc") +if not PROTOC: + print("protoc command not found") + sys.exit(1) + +PROTOC_PREFIX = os.path.dirname(os.path.dirname(PROTOC)) +PROTOC_INCLUDE = os.path.join(PROTOC_PREFIX, "include") + + +def protoc(files, additional_includes=()): + """Compile code with protoc and return the data.""" + include_dirs = set() + include_dirs.add(PROTOC_INCLUDE) + include_dirs.update(additional_includes) + + for file in files: + dirname = os.path.dirname(file) or "." + include_dirs.add(dirname) + protoc_includes = ["-I" + dir for dir in include_dirs if dir] + + # Note that we could avoid creating temp files if protoc let us write to stdout + # directly. this is currently only possible on Unix, by passing /dev/stdout as + # the file name. Since there's no direct Windows equivalent, not counting + # being creative with named pipes, special-casing this is not worth the effort. + with tempfile.TemporaryDirectory() as tmpdir: + outfile = os.path.join(tmpdir, "DESCRIPTOR_SET") + subprocess.check_call( + [PROTOC, "--descriptor_set_out={}".format(outfile)] + + protoc_includes + + files + ) + with open(outfile, "rb") as f: + return f.read() + + +def strip_leader(s, prefix): + """Remove given prefix from underscored name.""" + leader = prefix + "_" + if s.startswith(leader): + return s[len(leader) :] + else: + return s + + +def import_statement_from_path(path): + # separate leading dots + dot_prefix = "" + while path.startswith("."): + dot_prefix += "." + path = path[1:] + + # split on remaining dots + split_path = path.rsplit(".", maxsplit=1) + leader, import_name = split_path[:-1], split_path[-1] + + if leader: + from_part = dot_prefix + leader + elif dot_prefix: + from_part = dot_prefix + else: + from_part = "" + + if from_part: + return "from {} import {}".format(from_part, import_name) + else: + return "import {}".format(import_name) + + +class Descriptor: + def __init__(self, data, message_type="MessageType", import_path="protobuf"): + self.descriptor = descriptor_pb2.FileDescriptorSet() + self.descriptor.ParseFromString(data) + + self.files = self.descriptor.file + + logging.debug("found {} files".format(len(self.files))) + + # find messages and enums + self.messages = [] + self.enums = [] + for file in self.files: + self.messages += file.message_type + self.enums += file.enum_type + for message in file.message_type: + self._nested_types_from_message(message) + + if not self.messages and not self.enums: + raise RuntimeError("No messages and no enums found.") + + self.message_types = self.find_message_types(message_type) + self.protobuf_import = import_statement_from_path(import_path) + + self.out_dir = None + + def _nested_types_from_message(self, message): + self.messages += message.nested_type + self.enums += message.enum_type + for nested in message.nested_type: + self._nested_types_from_message(nested) + + def find_message_types(self, message_type): + message_types = {} + try: + message_type_enum = next( + enum for enum in self.enums if enum.name == message_type + ) + for value in message_type_enum.value: + name = strip_leader(value.name, message_type) + message_types[name] = value.number + + except StopIteration: + # No message type found. Oh well. + logging.warning( + "Message IDs not found under '{}'".format(args.message_type) + ) + + return message_types + + def parse_field(self, field): + repeated = field.label == field.LABEL_REPEATED + required = field.label == field.LABEL_REQUIRED + if field.type == field.TYPE_MESSAGE: + # ignore package path + type_name = field.type_name.rsplit(".")[-1] + proto_type = py_type = type_name + else: + try: + proto_type, py_type = FIELD_TYPES[field.type] + except KeyError: + raise ValueError( + "Unknown field type {} for field {}".format(field.type, field.name) + ) from None + + if repeated: + py_type = "List[{}]".format(py_type) + + return ProtoField( + name=field.name, + number=field.number, + proto_type=proto_type, + py_type=py_type, + repeated=repeated, + required=required, + orig=field, + ) + + def create_message_import(self, name): + return "from .{0} import {0}".format(name) + + def process_message_imports(self, fields): + imports = set( + field.proto_type + for field in fields + if field.orig.type == field.orig.TYPE_MESSAGE + ) + + if len(imports) > 0: + yield "" # make isort happy + for name in sorted(imports): + yield self.create_message_import(name) + + def create_init_method(self, fields): + # please keep the yields aligned + # fmt: off + ... # https://github.com/ambv/black/issues/385 + yield " def __init__(" + yield " self," + for field in fields: + yield " {}: {} = None,".format(field.name, field.py_type) + yield " ) -> None:" + + for field in fields: + if field.repeated: + yield " self.{0} = {0} if {0} is not None else []".format(field.name) + else: + yield " self.{0} = {0}".format(field.name) + # fmt: on + + def create_fields_method(self, fields): + # fmt: off + yield " @classmethod" + yield " def get_fields(cls):" + yield " return {" + for field in fields: + comments = [] + if field.required: + comments.append("required") + if field.orig.HasField("default_value"): + comments.append("default={}".format(field.orig.default_value)) + + if comments: + comment = " # " + " ".join(comments) + else: + comment = "" + + if field.repeated: + flags = "p.FLAG_REPEATED" + else: + flags = "0" + + yield " {num}: ('{name}', {type}, {flags}),{comment}".format( + num=field.number, + name=field.name, + type=field.proto_type, + flags=flags, + comment=comment, + ) + + yield " }" + # fmt: on + + def process_message(self, message): + logging.debug("Processing message {}".format(message.name)) + msg_id = self.message_types.get(message.name) + + # "from .. import protobuf as p" + yield self.protobuf_import + " as p" + + fields = [self.parse_field(field) for field in message.field] + + yield from self.process_message_imports(fields) + + if any(field.repeated for field in fields): + yield "" + yield "if __debug__:" + yield " try:" + yield " from typing import List" + yield " except ImportError:" + yield " List = None # type: ignore" + + yield "" + yield "" + yield "class {}(p.MessageType):".format(message.name) + + if msg_id is not None: + yield " MESSAGE_WIRE_TYPE = {}".format(msg_id) + + if fields: + yield "" + yield from self.create_init_method(fields) + yield "" + yield from self.create_fields_method(fields) + + if not fields and not msg_id: + yield " pass" + + def process_enum(self, enum): + logging.debug("Processing enum {}".format(enum.name)) + + for value in enum.value: + # Remove type name from the beginning of the constant + # For example "PinMatrixRequestType_Current" -> "Current" + enum_prefix = enum.name + name = value.name + name = strip_leader(name, enum_prefix) + + # If type ends with *Type, but constant use type name without *Type, remove it too :) + # For example "ButtonRequestType & ButtonRequest_Other" => "Other" + if enum_prefix.endswith("Type"): + enum_prefix, _ = enum_prefix.rsplit("Type", 1) + name = strip_leader(name, enum_prefix) + + yield "{} = {}".format(name, value.number) + + def process_messages(self, messages): + for message in sorted(messages, key=lambda m: m.name): + self.write_to_file(message.name, self.process_message(message)) + + def process_enums(self, enums): + for enum in sorted(enums, key=lambda e: e.name): + self.write_to_file(enum.name, self.process_enum(enum)) + + def write_to_file(self, name, out): + # Write generated sourcecode to given file + logging.debug("Writing file {}.py".format(name)) + with open(os.path.join(self.out_dir, name + ".py"), "w") as f: + f.write(AUTO_HEADER) + f.write("# fmt: off\n") + for line in out: + f.write(line + "\n") + + def write_init_py(self): + filename = os.path.join(self.out_dir, "__init__.py") + with open(filename, "w") as init_py: + init_py.write(AUTO_HEADER) + init_py.write("# fmt: off\n\n") + for message in sorted(self.messages, key=lambda m: m.name): + init_py.write(self.create_message_import(message.name) + "\n") + for enum in sorted(self.enums, key=lambda m: m.name): + init_py.write("from . import {}\n".format(enum.name)) + + def write_classes(self, out_dir, init_py=True): + self.out_dir = out_dir + self.process_messages(self.messages) + self.process_enums(self.enums) + if init_py: + self.write_init_py() + + +if __name__ == "__main__": + logging.basicConfig(level=logging.DEBUG) + + parser = argparse.ArgumentParser() + # fmt: off + parser.add_argument("proto", nargs="+", help="Protobuf definition files") + parser.add_argument("-o", "--out-dir", help="Directory for generated source code") + parser.add_argument("-P", "--protobuf-module", default="protobuf", help="Name of protobuf module") + parser.add_argument("-l", "--no-init-py", action="store_true", help="Do not generate __init__.py with list of modules") + parser.add_argument("--message-type", default="MessageType", help="Name of enum with message IDs") + parser.add_argument("-I", "--protoc-include", action="append", help="protoc include path") + # fmt: on + args = parser.parse_args() + + protoc_includes = args.protoc_include or (os.environ.get("PROTOC_INCLUDE"),) + descriptor_proto = protoc(args.proto, protoc_includes) + descriptor = Descriptor(descriptor_proto, args.message_type, args.protobuf_module) + + with tempfile.TemporaryDirectory() as tmpdir: + descriptor.write_classes(tmpdir, not args.no_init_py) + + for filename in os.listdir(args.out_dir): + pathname = os.path.join(args.out_dir, filename) + try: + with open(pathname, "r") as f: + if next(f, None) == AUTO_HEADER: + os.unlink(pathname) + except Exception: + pass + + for filename in os.listdir(tmpdir): + src = os.path.join(tmpdir, filename) + shutil.copy(src, args.out_dir) diff --git a/common/protob/protocol.md b/common/protob/protocol.md new file mode 100644 index 000000000..38dc411e0 --- /dev/null +++ b/common/protob/protocol.md @@ -0,0 +1,21 @@ +# TREZOR Protocol + +## version 1 + +Messages are sent in packets of 64 bytes. + +First packet has the following structure: + +| offset | length | type | contents | +|--------|--------|-------------|---------------------------------------------------------------------------------------| +| 0 | 3 | char[3] | '?##' magic constant | +| 3 | 2 | BE uint16_t | numerical [message type](messages.proto#L14) | +| 5 | 4 | BE uint32_t | message size | +| 9 | 55 | uint8_t[55] | first 55 bytes of message encoded in Protocol Buffers (padded with zeroes if shorter) | + +Following packets has the following structure: + +| offset | length | type | contents | +|--------|--------|-------------|----------------------------------------------------------------------------------------| +| 0 | 1 | char[1] | '?' magic constant | +| 1 | 63 | uint8_t[63] | following bytes of message encoded in Protocol Buffers (padded with zeroes if shorter) | diff --git a/common/shell.nix b/common/shell.nix new file mode 100644 index 000000000..dd573f1f6 --- /dev/null +++ b/common/shell.nix @@ -0,0 +1,9 @@ +with import {}; + +let + myPython = python3.withPackages(p: [p.click p.graphviz p.trezor p.ed25519 p.pillow]) ; +in + stdenv.mkDerivation { + name = "trezor-common-dev"; + buildInputs = [ myPython python2Packages.demjson graphviz protobuf ]; + } diff --git a/common/tools/README.md b/common/tools/README.md new file mode 100644 index 000000000..ede0c7280 --- /dev/null +++ b/common/tools/README.md @@ -0,0 +1,178 @@ +# Common Tools + +This directory contains mostly tools that can manipulate definitions in [defs/](../defs). + +Tools are written with [Click](http://click.pocoo.org/6/), so you always get a help text +if you use the `--help` option. + +All tools require Python 3.6 or higher and a bunch of dependencies, listed in `requirements.txt`. +You can install them all with `pip3 install -r requirements.txt`. + +## Tools overview + +### `cointool.py` + +This is a general-purpose tool to examine coin definitions. Currently it implements +the following commands: + +* **`render`**: generate code based on a [Mako](http://docs.makotemplates.org/en/latest/index.html) + template. By default, `cointool.py render foo.bar.mako` will put its result into + file `foo.bar` in the same directory. See [usage in `trezor-core`](https://github.com/trezor/trezor-core/commit/348b99b8dc5bcfc4ab85e1e7faad3fb4ef3e8763). +* **`check`**: check validity of json definitions and associated data. Used in CI. +* **`dump`**: dump coin information, including support status, in JSON format. Various + filtering options are available, check help for details. +* **`coindefs`**: generate signed protobuf descriptions of coins. This is for future use + and could allow us to not need to store coin data in Trezor itself. + +Use `cointool.py command --help` to get more information on each command. + +### `support.py` + +Used to query and manage info in `support.json`. This mainly supports the release flow. + +The following commands are available: + +* **`check`**: check validity of json data. Used in CI. +* **`fix`**: fix expected problems: prune keys without associated coins and ensure + that ERC20 tokens are correctly entered as duplicate. +* **`show`**: keyword-search for a coin and show its support status for each device. +* **`set`**: set support data. +* **`release`**: perform the [release workflow](#release-workflow). + +Use `support.py command --help` to get more information on each command. + +### `coins_details.py` + +Generates `coins_details.json`, source file for https://trezor.io/coins. +Collects data on coins, downloads market caps and puts everything into a single file. +Caches market cap data so you don't have to download it every time. + +### `diffize_coins_details.py` + +Compares generated `coins_details.json` to the released version currently served +on https://trezor.io/coins, in a format that is nicely readable to humans and +hard(er) to mess up by diff. + +### `coin_info.py` + +In case where code generation with `cointool.py render` is impractical or not sufficient, +you can query the data directly through Python. Short usage example: + +```python +import coin_info + +defs = coin_info.coin_info() +list_of_all_coins = defs.as_list() +dict_by_coin_key = defs.as_dict() + +for token in defs.erc20: + print(token["key"], token["name"], token["shortcut"]) + +support_info = coin_info.support_info(defs.misc) +for key, support in support_info.values(): + t2_support = support["trezor2"] + coin_name = dict_by_coin_key[key] + if t2_support == "soon": + print(coin_name, "will be supported soon!") + elif t2_support: + print(coin_name, "is supported since version", t2_support) + else: + print(coin_name, "is not supported") +``` + +See docstrings for the most important functions: `coin_info()` and `support_info()`. + +The file `coindef.py` is a protobuf definition for passing coin data to Trezor +from the outside. + + +# Release Workflow + +This entails collecting information on coins whose support status is unknown, +marking coins whose support status is `soon`, and including new ERC20 tokens. + +## Maintaining Support Status + +When a new coin definition is added, its support status is _unknown_. It is excluded +from code generation by default. If you want to include a coin in a firmware build, +you need to switch it to _soon_ first. You can set multiple support statuses at the +same time: + +``` +$ ./support.py show Ontology +misc:ONT - Ontology (ONT) + * connect : NO + * trezor1 : support info missing + * trezor2 : support info missing + * webwallet : NO + +$ ./support.py set misc:ONT trezor1=no -r "not planned on T1" trezor2=soon +misc:ONT - Ontology (ONT) + * connect : NO + * trezor1 : NO (reason: not planned on T1) + * trezor2 : SOON + * webwallet : NO +``` + +Afterwards, review and commit changes to `defs/support.json`, and update the `trezor-common` +submodule in your target firmware. + +If you're adding multiple coins at once, you can use `support.py release 1 --soon` to automatically +add all currently-unknown coins to _soon_. (The `1` indicates that this is for Trezor One) + +ERC20 tokens in _unknown_ state are considered _soon_ as well, unless their symbols +are duplicates. Use `support.py fix` to synchronize duplicate status in `support.json` file. +Or mark them as unsupported explicitly. + +## Releasing a new firmware + +#### **Step 1:** update the tokens repo + +```sh +pushd defs/ethereum/tokens +git checkout master +git pull +popd +git add defs/ethereum/tokens +``` + +#### **Step 2:** run the release flow + +```sh +./tools/support.py release 2 +``` + +The number `2` indicates that you are releasing Trezor 2. The version will be +automatically determined, based on currently released firmwares. Or you can explicitly +specify the version with `-r 2.1.0`. + +All currently known unreleased ERC20 tokens are automatically set to the given version. + +All coins marked _soon_ are set to the current version. This is automatic - coins that +were marked _soon_ were used in code generation and so should be released. If you want +to avoid this, you will have to manually revert each coin to _soon_ status, either with +`support.py set`, or by manually editing `support.json`. + +Coins in state _unknown_, i.e., coins that are known in the definitions but not listed +in support files, will be also added. But you will be interactively asked to confirm +each one. Use `-y` or `--add-all` to auto-add all of them. + +Use `-n` or `--dry-run` to see changes without writing them to `support.json`. Use +`-v` or `--verbose` to also show ERC20 tokens which are processed silently by default. + +Use `-g` or `--git-tag` to automatically tag the current `HEAD` with a version, e.g., +`trezor2-2.1.0`. This might become default in the future. + +XXX this should also commit the changes though, otherwise the tag will apply to the wrong +commit. + +#### **Step 3:** review and commit your changes + +Use `git diff` to review changes made, commit and push. If you tagged the commit in the +previous step, don't forget to `git push --tags` too. + +#### **Step 4:** update submodule in your target repository + +Go to `trezor-core` or `trezor-mcu` checkout and update the submodule. Checkout the +appropriate tag if you created it. If you're in `trezor-core`, run `make templates` +to update source files. diff --git a/common/tools/coin_info.py b/common/tools/coin_info.py new file mode 100755 index 000000000..9ca8026af --- /dev/null +++ b/common/tools/coin_info.py @@ -0,0 +1,578 @@ +#!/usr/bin/env python3 +from collections import defaultdict, OrderedDict +import re +import os +import json +import glob +import logging + +try: + import requests +except ImportError: + requests = None + +log = logging.getLogger(__name__) + +DEFS_DIR = os.path.abspath( + os.environ.get("DEFS_DIR") or os.path.join(os.path.dirname(__file__), "..", "defs") +) + + +def load_json(*path): + """Convenience function to load a JSON file from DEFS_DIR.""" + if len(path) == 1 and path[0].startswith("/"): + filename = path[0] + else: + filename = os.path.join(DEFS_DIR, *path) + + with open(filename) as f: + return json.load(f, object_pairs_hook=OrderedDict) + + +# ====== CoinsInfo ====== + + +class CoinsInfo(dict): + """Collection of information about all known kinds of coins. + + It contains the following lists: + `bitcoin` for btc-like coins, + `eth` for ethereum networks, + `erc20` for ERC20 tokens, + `nem` for NEM mosaics, + `misc` for other networks. + + Accessible as a dict or by attribute: `info["misc"] == info.misc` + """ + + def as_list(self): + return sum(self.values(), []) + + def as_dict(self): + return {coin["key"]: coin for coin in self.as_list()} + + def __getattr__(self, attr): + if attr in self: + return self[attr] + else: + raise AttributeError(attr) + + +# ====== coin validation ====== + + +def check_type(val, types, nullable=False, empty=False, regex=None, choice=None): + # check nullable + if val is None: + if nullable: + return + else: + raise ValueError("Missing required value") + + # check type + if not isinstance(val, types): + raise TypeError("Wrong type (expected: {})".format(types)) + + # check empty + if isinstance(val, (list, dict)) and not empty and not val: + raise ValueError("Empty collection") + + # check regex + if regex is not None: + if types is not str: + raise TypeError("Wrong type for regex check") + if not re.search(regex, val): + raise ValueError("Value does not match regex {}".format(regex)) + + # check choice + if choice is not None and val not in choice: + choice_str = ", ".join(choice) + raise ValueError("Value not allowed, use one of: {}".format(choice_str)) + + +def check_key(key, types, optional=False, **kwargs): + def do_check(coin): + if key not in coin: + if optional: + return + else: + raise KeyError("{}: Missing key".format(key)) + try: + check_type(coin[key], types, **kwargs) + except Exception as e: + raise ValueError("{}: {}".format(key, e)) from e + + return do_check + + +BTC_CHECKS = [ + check_key("coin_name", str, regex=r"^[A-Z]"), + check_key("coin_shortcut", str, regex=r"^t?[A-Z]{3,}$"), + check_key("coin_label", str, regex=r"^[A-Z]"), + check_key("website", str, regex=r"^https://.*[^/]$"), + check_key("github", str, regex=r"^https://git(hu|la)b.com/.*[^/]$"), + check_key("maintainer", str), + check_key( + "curve_name", + str, + choice=[ + "secp256k1", + "secp256k1_decred", + "secp256k1_groestl", + "secp256k1_smart", + ], + ), + check_key("address_type", int), + check_key("address_type_p2sh", int), + check_key("maxfee_kb", int), + check_key("minfee_kb", int), + check_key("hash_genesis_block", str, regex=r"^[0-9a-f]{64}$"), + check_key("xprv_magic", int), + check_key("xpub_magic", int), + check_key("xpub_magic_segwit_p2sh", int, nullable=True), + check_key("xpub_magic_segwit_native", int, nullable=True), + check_key("slip44", int), + check_key("segwit", bool), + check_key("decred", bool), + check_key("fork_id", int, nullable=True), + check_key("force_bip143", bool), + check_key("bip115", bool), + check_key("default_fee_b", dict), + check_key("dust_limit", int), + check_key("blocktime_seconds", int), + check_key("signed_message_header", str), + check_key("uri_prefix", str, regex=r"^[a-z-\.\+]+$"), + check_key("min_address_length", int), + check_key("max_address_length", int), + check_key("bech32_prefix", str, regex=r"^[a-z-\.\+]+$", nullable=True), + check_key("cashaddr_prefix", str, regex=r"^[a-z-\.\+]+$", nullable=True), + check_key("bitcore", list, empty=True), + check_key("blockbook", list, empty=True), +] + + +def validate_btc(coin): + errors = [] + for check in BTC_CHECKS: + try: + check(coin) + except Exception as e: + errors.append(str(e)) + + magics = [ + coin[k] + for k in ( + "xprv_magic", + "xpub_magic", + "xpub_magic_segwit_p2sh", + "xpub_magic_segwit_native", + ) + if coin[k] is not None + ] + # each of those must be unique + # therefore length of list == length of set of unique values + if len(magics) != len(set(magics)): + errors.append("XPUB/XPRV magic numbers must be unique") + + if coin["address_type"] == coin["address_type_p2sh"]: + errors.append("address_type must be distinct from address_type_p2sh") + + if not coin["maxfee_kb"] >= coin["minfee_kb"]: + errors.append("max fee must not be smaller than min fee") + + if not coin["max_address_length"] >= coin["min_address_length"]: + errors.append("max address length must not be smaller than min address length") + + for bc in coin["bitcore"] + coin["blockbook"]: + if not bc.startswith("https://"): + errors.append("make sure URLs start with https://") + + if bc.endswith("/"): + errors.append("make sure URLs don't end with '/'") + + return errors + + +# ======= Coin json loaders ======= + + +def _load_btc_coins(): + """Load btc-like coins from `coins/*.json`""" + coins = [] + for filename in glob.glob(os.path.join(DEFS_DIR, "coins", "*.json")): + coin = load_json(filename) + coin.update( + name=coin["coin_label"], + shortcut=coin["coin_shortcut"], + key="bitcoin:{}".format(coin["coin_shortcut"]), + icon=filename.replace(".json", ".png"), + ) + coins.append(coin) + + return coins + + +def _load_ethereum_networks(): + """Load ethereum networks from `ethereum/networks.json`""" + networks = load_json("ethereum", "networks.json") + for network in networks: + network.update(key="eth:{}".format(network["shortcut"])) + return networks + + +def _load_erc20_tokens(): + """Load ERC20 tokens from `ethereum/tokens` submodule.""" + networks = _load_ethereum_networks() + tokens = [] + for network in networks: + chain = network["chain"] + + chain_path = os.path.join(DEFS_DIR, "ethereum", "tokens", "tokens", chain) + for filename in sorted(glob.glob(os.path.join(chain_path, "*.json"))): + token = load_json(filename) + token.update( + chain=chain, + chain_id=network["chain_id"], + address_bytes=bytes.fromhex(token["address"][2:]), + shortcut=token["symbol"], + key="erc20:{}:{}".format(chain, token["symbol"]), + ) + tokens.append(token) + + return tokens + + +def _load_nem_mosaics(): + """Loads NEM mosaics from `nem/nem_mosaics.json`""" + mosaics = load_json("nem", "nem_mosaics.json") + for mosaic in mosaics: + shortcut = mosaic["ticker"].strip() + mosaic.update(shortcut=shortcut, key="nem:{}".format(shortcut)) + return mosaics + + +def _load_misc(): + """Loads miscellaneous networks from `misc/misc.json`""" + others = load_json("misc/misc.json") + for other in others: + other.update(key="misc:{}".format(other["shortcut"])) + return others + + +# ====== support info ====== + +RELEASES_URL = "https://beta-wallet.trezor.io/data/firmware/{}/releases.json" +MISSING_SUPPORT_MEANS_NO = ("connect", "webwallet") +VERSIONED_SUPPORT_INFO = ("trezor1", "trezor2") + + +def get_support_data(): + """Get raw support data from `support.json`.""" + return load_json("support.json") + + +def latest_releases(): + """Get latest released firmware versions for Trezor 1 and 2""" + if not requests: + raise RuntimeError("requests library is required for getting release info") + + latest = {} + for v in ("1", "2"): + releases = requests.get(RELEASES_URL.format(v)).json() + latest["trezor" + v] = max(tuple(r["version"]) for r in releases) + return latest + + +def is_token(coin): + return coin["key"].startswith("erc20:") + + +def support_info_single(support_data, coin): + """Extract a support dict from `support.json` data. + + Returns a dict of support values for each "device", i.e., `support.json` + top-level key. + + The support value for each device is determined in order of priority: + * if the coin is a duplicate ERC20 token, all support values are `None` + * if the coin has an entry in `unsupported`, its support is `None` + * if the coin has an entry in `supported` its support is that entry + (usually a version string, or `True` for connect/webwallet) + * otherwise support is presumed "soon" + """ + support_info = {} + key = coin["key"] + dup = coin.get("duplicate") + for device, values in support_data.items(): + if dup and is_token(coin): + support_value = False + elif key in values["unsupported"]: + support_value = False + elif key in values["supported"]: + support_value = values["supported"][key] + elif device in MISSING_SUPPORT_MEANS_NO: + support_value = False + elif is_token(coin): + # tokens are implicitly supported in next release + support_value = "soon" + else: + support_value = None + support_info[device] = support_value + return support_info + + +def support_info(coins): + """Generate Trezor support information. + + Takes a collection of coins and generates a support-info entry for each. + The support-info is a dict with keys based on `support.json` keys. + These are usually: "trezor1", "trezor2", "connect" and "webwallet". + + The `coins` argument can be a `CoinsInfo` object, a list or a dict of + coin items. + + Support information is taken from `support.json`. + """ + if isinstance(coins, CoinsInfo): + coins = coins.as_list() + elif isinstance(coins, dict): + coins = coins.values() + + support_data = get_support_data() + support = {} + for coin in coins: + support[coin["key"]] = support_info_single(support_data, coin) + + return support + + +# ====== data cleanup functions ====== + + +def _ensure_mandatory_values(coins): + """Checks that every coin has the mandatory fields: name, shortcut, key""" + for coin in coins: + if not all(coin.get(k) for k in ("name", "shortcut", "key")): + raise ValueError(coin) + + +def symbol_from_shortcut(shortcut): + symsplit = shortcut.split(" ", maxsplit=1) + return symsplit[0], symsplit[1] if len(symsplit) > 1 else "" + + +def mark_duplicate_shortcuts(coins): + """Finds coins with identical symbols and sets their `duplicate` field. + + "Symbol" here means the first part of `shortcut` (separated by space), + so, e.g., "BTL (Battle)" and "BTL (Bitlle)" have the same symbol "BTL". + + The result of this function is a dictionary of _buckets_, each of which is + indexed by the duplicated symbol, or `_override`. The `_override` bucket will + contain all coins that are set to `true` in `duplicity_overrides.json`. + + Each coin in every bucket will have its "duplicate" property set to True, unless + it's explicitly marked as `false` in `duplicity_overrides.json`. + """ + dup_symbols = defaultdict(list) + + for coin in coins: + symbol, _ = symbol_from_shortcut(coin["shortcut"].lower()) + dup_symbols[symbol].append(coin) + + dup_symbols = {k: v for k, v in dup_symbols.items() if len(v) > 1} + + # load overrides and put them into their own bucket + overrides = load_json("duplicity_overrides.json") + override_bucket = [] + for coin in coins: + if overrides.get(coin["key"], False): + coin["duplicate"] = True + override_bucket.append(coin) + + # mark duplicate symbols + for values in dup_symbols.values(): + for coin in values: + # allow overrides to skip this; if not listed in overrides, assume True + is_dup = overrides.get(coin["key"], True) + if is_dup: + coin["duplicate"] = True + # again: still in dups, but not marked as duplicate and not deleted + + dup_symbols["_override"] = override_bucket + return dup_symbols + + +def deduplicate_erc20(buckets, networks): + """Apply further processing to ERC20 duplicate buckets. + + This function works on results of `mark_duplicate_shortcuts`. + + Buckets that contain at least one non-token are ignored - symbol collisions + with non-tokens are always fatal. + + Otherwise the following rules are applied: + + 1. If _all tokens_ in the bucket have shortcuts with distinct suffixes, e.g., + `CAT (BitClave)` and `CAT (Blockcat)`, the bucket is cleared - all are considered + non-duplicate. + + (If even one token in the bucket _does not_ have a distinct suffix, e.g., + `MIT` and `MIT (Mychatcoin)`, this rule does not apply and ALL tokens in the bucket + are still considered duplicate.) + + 2. If there is only one "main" token in the bucket, the bucket is cleared. + That means that all other tokens must either be on testnets, or they must be marked + as deprecated, with a deprecation pointing to the "main" token. + """ + + testnet_networks = {n["chain"] for n in networks if "Testnet" in n["name"]} + overrides = buckets["_override"] + + def clear_bucket(bucket): + # allow all coins, except those that are explicitly marked through overrides + for coin in bucket: + if coin not in overrides: + coin["duplicate"] = False + + for bucket in buckets.values(): + # Only check buckets that contain purely ERC20 tokens. Collision with + # a non-token is always forbidden. + if not all(is_token(c) for c in bucket): + continue + + splits = (symbol_from_shortcut(coin["shortcut"]) for coin in bucket) + suffixes = {suffix for _, suffix in splits} + # if 1. all suffixes are distinct and 2. none of them are empty + if len(suffixes) == len(bucket) and all(suffixes): + clear_bucket(bucket) + continue + + # protected categories: + testnets = [coin for coin in bucket if coin["chain"] in testnet_networks] + deprecated_by_same = [ + coin + for coin in bucket + if "deprecation" in coin + and any( + other["address"] == coin["deprecation"]["new_address"] + for other in bucket + ) + ] + remaining = [ + coin + for coin in bucket + if coin not in testnets and coin not in deprecated_by_same + ] + if len(remaining) <= 1: + for coin in deprecated_by_same: + deprecated_symbol = "[deprecated] " + coin["symbol"] + coin["shortcut"] = coin["symbol"] = deprecated_symbol + coin["key"] += ":deprecated" + clear_bucket(bucket) + + +def deduplicate_keys(all_coins): + dups = defaultdict(list) + for coin in all_coins: + dups[coin["key"]].append(coin) + + for coins in dups.values(): + if len(coins) <= 1: + continue + for i, coin in enumerate(coins): + if is_token(coin): + coin["key"] += ":" + coin["address"][2:6].lower() # first 4 hex chars + else: + coin["key"] += ":{}".format(i) + coin["dup_key_nontoken"] = True + + +def _btc_sort_key(coin): + if coin["name"] in ("Bitcoin", "Testnet"): + return "000000" + coin["name"] + else: + return coin["name"] + + +def collect_coin_info(): + """Returns all definition as dict organized by coin type. + `coins` for btc-like coins, + `eth` for ethereum networks, + `erc20` for ERC20 tokens, + `nem` for NEM mosaics, + `misc` for other networks. + + Automatically removes duplicate symbols from the result. + """ + all_coins = CoinsInfo( + bitcoin=_load_btc_coins(), + eth=_load_ethereum_networks(), + erc20=_load_erc20_tokens(), + nem=_load_nem_mosaics(), + misc=_load_misc(), + ) + + for k, coins in all_coins.items(): + _ensure_mandatory_values(coins) + + return all_coins + + +def sort_coin_infos(all_coins): + for k, coins in all_coins.items(): + if k == "bitcoin": + coins.sort(key=_btc_sort_key) + elif k == "nem": + # do not sort nem + pass + elif k == "eth": + # sort ethereum networks by chain_id + coins.sort(key=lambda c: c["chain_id"]) + else: + coins.sort(key=lambda c: c["key"].upper()) + + +def coin_info_with_duplicates(): + """Collects coin info, detects duplicates but does not remove them. + + Returns the CoinsInfo object and duplicate buckets. + """ + all_coins = collect_coin_info() + buckets = mark_duplicate_shortcuts(all_coins.as_list()) + deduplicate_erc20(buckets, all_coins.eth) + deduplicate_keys(all_coins.as_list()) + sort_coin_infos(all_coins) + + return all_coins, buckets + + +def coin_info(): + """Collects coin info, marks and prunes duplicate ERC20 symbols, fills out support + info and returns the result. + """ + all_coins, _ = coin_info_with_duplicates() + all_coins["erc20"] = [ + coin for coin in all_coins["erc20"] if not coin.get("duplicate") + ] + return all_coins + + +def search(coins, keyword): + kwl = keyword.lower() + if isinstance(coins, CoinsInfo): + coins = coins.as_list() + + for coin in coins: + key = coin["key"].lower() + name = coin["name"].lower() + shortcut = coin["shortcut"].lower() + symbol, suffix = symbol_from_shortcut(shortcut) + if ( + kwl == key + or kwl in name + or kwl == shortcut + or kwl == symbol + or kwl in suffix + ): + yield coin diff --git a/common/tools/coindef.py b/common/tools/coindef.py new file mode 100644 index 000000000..e96246054 --- /dev/null +++ b/common/tools/coindef.py @@ -0,0 +1,113 @@ +from trezorlib import protobuf as p + + +class CoinDef(p.MessageType): + FIELDS = { + 1: ('coin_name', p.UnicodeType, 0), + 2: ('coin_shortcut', p.UnicodeType, 0), + 3: ('coin_label', p.UnicodeType, 0), + 4: ('curve_name', p.UnicodeType, 0), + 5: ('address_type', p.UVarintType, 0), + 6: ('address_type_p2sh', p.UVarintType, 0), + 7: ('maxfee_kb', p.UVarintType, 0), + 8: ('minfee_kb', p.UVarintType, 0), + 9: ('signed_message_header', p.BytesType, 0), + 10: ('hash_genesis_block', p.BytesType, 0), + 11: ('xprv_magic', p.UVarintType, 0), + 12: ('xpub_magic', p.UVarintType, 0), + 13: ('xpub_magic_segwit_p2sh', p.UVarintType, 0), + 14: ('xpub_magic_segwit_native', p.UVarintType, 0), + 15: ('bech32_prefix', p.UnicodeType, 0), + 16: ('cashaddr_prefix', p.UnicodeType, 0), + 17: ('slip44', p.UVarintType, 0), + 18: ('segwit', p.BoolType, 0), + 19: ('decred', p.BoolType, 0), + 20: ('fork_id', p.UVarintType, 0), + 21: ('force_bip143', p.BoolType, 0), + 22: ('dust_limit', p.UVarintType, 0), + 23: ('uri_prefix', p.UnicodeType, 0), + 24: ('min_address_length', p.UVarintType, 0), + 25: ('max_address_length', p.UVarintType, 0), + 26: ('icon', p.BytesType, 0), + 28: ('website', p.UnicodeType, 0), + 29: ('github', p.UnicodeType, 0), + 30: ('maintainer', p.UnicodeType, 0), + 31: ('blocktime_seconds', p.UVarintType, 0), + 32: ('bip115', p.BoolType, 0), + 33: ('cooldown', p.UVarintType, 0), + } + + def __init__( + self, + coin_name: str = None, + coin_shortcut: str = None, + coin_label: str = None, + curve_name: str = None, + address_type: int = None, + address_type_p2sh: int = None, + maxfee_kb: int = None, + minfee_kb: int = None, + signed_message_header: bytes = None, + hash_genesis_block: bytes = None, + xprv_magic: int = None, + xpub_magic: int = None, + xpub_magic_segwit_p2sh: int = None, + xpub_magic_segwit_native: int = None, + bech32_prefix: str = None, + cashaddr_prefix: str = None, + slip44: int = None, + segwit: bool = None, + decred: bool = None, + fork_id: int = None, + force_bip143: bool = None, + bip115: bool = None, + dust_limit: int = None, + uri_prefix: str = None, + min_address_length: int = None, + max_address_length: int = None, + icon: bytes = None, + website: str = None, + github: str = None, + maintainer: str = None, + blocktime_seconds: int = None, + default_fee_b: dict = None, + bitcore: dict = None, + blockbook: dict = None, + cooldown: int = None + ): + self.coin_name = coin_name + self.coin_shortcut = coin_shortcut + self.coin_label = coin_label + self.curve_name = curve_name + self.address_type = address_type + self.address_type_p2sh = address_type_p2sh + self.maxfee_kb = maxfee_kb + self.minfee_kb = minfee_kb + self.signed_message_header = signed_message_header + self.hash_genesis_block = hash_genesis_block + self.xprv_magic = xprv_magic + self.xpub_magic = xpub_magic + self.xpub_magic_segwit_p2sh = xpub_magic_segwit_p2sh + self.xpub_magic_segwit_native = xpub_magic_segwit_native + self.bech32_prefix = bech32_prefix + self.cashaddr_prefix = cashaddr_prefix + self.slip44 = slip44 + self.segwit = segwit + self.decred = decred + self.fork_id = fork_id + self.force_bip143 = force_bip143 + self.bip115 = bip115 + self.dust_limit = dust_limit + self.uri_prefix = uri_prefix + self.min_address_length = min_address_length + self.max_address_length = max_address_length + self.icon = icon + self.website = website + self.github = github + self.maintainer = maintainer + self.blocktime_seconds = blocktime_seconds + self.default_fee_b = default_fee_b + self.bitcore = bitcore + self.blockbook = blockbook + self.cooldown = cooldown + p.MessageType.__init__(self) diff --git a/common/tools/coins_details.py b/common/tools/coins_details.py new file mode 100755 index 000000000..a637fc2d5 --- /dev/null +++ b/common/tools/coins_details.py @@ -0,0 +1,429 @@ +#!/usr/bin/env python3 +"""Fetch information about coins and tokens supported by Trezor and update it in coins_details.json.""" +import os +import time +import json +import logging +import requests +import sys +import coin_info + +import click + +LOG = logging.getLogger(__name__) + +OPTIONAL_KEYS = ("links", "notes", "wallet") +ALLOWED_SUPPORT_STATUS = ("yes", "no", "planned", "soon") + +WALLETS = coin_info.load_json("wallets.json") +OVERRIDES = coin_info.load_json("coins_details.override.json") +VERSIONS = coin_info.latest_releases() + +COINMAKETCAP_CACHE = os.path.join(os.path.dirname(__file__), "coinmarketcap.json") +COINMARKETCAP_API_BASE = "https://pro-api.coinmarketcap.com/v1/" + +MARKET_CAPS = {} + +# automatic wallet entries +WALLET_TREZOR = {"Trezor": "https://wallet.trezor.io"} +WALLET_TREZOR_NEXT = {"Trezor Beta": "https://beta-wallet.trezor.io/next/"} +WALLET_NEM = {"Nano Wallet": "https://nem.io/downloads/"} + +WALLETS_ETH_3RDPARTY = { + "MyEtherWallet": "https://www.myetherwallet.com", + "MyCrypto": "https://mycrypto.com", +} +WALLETS_ETH_NATIVE = WALLETS_ETH_3RDPARTY.copy() +WALLETS_ETH_NATIVE.update(WALLET_TREZOR_NEXT) + + +TREZORIO_KNOWN_URLS = ( + "https://wallet.trezor.io", + "https://beta-wallet.trezor.io/next/", + "https://trezor.io/stellar/", +) + + +def coinmarketcap_call(endpoint, api_key, params=None): + url = COINMARKETCAP_API_BASE + endpoint + r = requests.get(url, params=params, headers={"X-CMC_PRO_API_KEY": api_key}) + r.raise_for_status() + return r.json() + + +def coinmarketcap_init(api_key, refresh=None): + global MARKET_CAPS + + force_refresh = refresh is True + disable_refresh = refresh is False + try: + try: + mtime = os.path.getmtime(COINMAKETCAP_CACHE) + except FileNotFoundError: + mtime = 0 + cache_is_fresh = mtime > time.time() - 3600 + if disable_refresh or (cache_is_fresh and not force_refresh): + print("Using cached market cap data") + with open(COINMAKETCAP_CACHE) as f: + coinmarketcap_data = json.load(f) + else: + print("Fetching market cap data") + coinmarketcap_data = coinmarketcap_call( + "cryptocurrency/listings/latest", + api_key, + params={"limit": 5000, "convert": "USD"}, + ) + by_id = {str(coin["id"]): coin for coin in coinmarketcap_data["data"]} + all_ids = list(by_id.keys()) + while all_ids: + first_100 = all_ids[:100] + all_ids = all_ids[100:] + time.sleep(1) + print("Fetching metadata, {} coins remaining...".format(len(all_ids))) + metadata = coinmarketcap_call( + "cryptocurrency/info", api_key, params={"id": ",".join(first_100)} + ) + for coin_id, meta in metadata["data"].items(): + by_id[coin_id]["meta"] = meta + + with open(COINMAKETCAP_CACHE, "w") as f: + json.dump(coinmarketcap_data, f) + except Exception as e: + raise RuntimeError("market cap data unavailable") from e + + coin_data = {} + for coin in coinmarketcap_data["data"]: + slug = coin["slug"] + platform = coin["meta"]["platform"] + market_cap = coin["quote"]["USD"]["market_cap"] + if market_cap is not None: + coin_data[slug] = int(market_cap) + if platform is not None and platform["name"] == "Ethereum": + address = platform["token_address"].lower() + coin_data[address] = int(market_cap) + + MARKET_CAPS = coin_data + + return coin_data + + +def marketcap(coin): + cap = None + if coin["type"] == "erc20": + address = coin["address"].lower() + return MARKET_CAPS.get(address) + + if "coinmarketcap_alias" in coin: + cap = MARKET_CAPS.get(coin["coinmarketcap_alias"]) + if cap is None: + slug = coin["name"].replace(" ", "-").lower() + cap = MARKET_CAPS.get(slug) + if cap is None: + cap = MARKET_CAPS.get(coin["shortcut"].lower()) + return cap + + +def update_marketcaps(coins): + for coin in coins.values(): + coin["marketcap_usd"] = marketcap(coin) or 0 + + +def summary(coins, api_key): + t1_coins = 0 + t2_coins = 0 + supported_marketcap = 0 + for coin in coins.values(): + if coin.get("hidden"): + continue + + t1_enabled = coin["t1_enabled"] == "yes" + t2_enabled = coin["t2_enabled"] == "yes" + if t1_enabled: + t1_coins += 1 + if t2_enabled: + t2_coins += 1 + if t1_enabled or t2_enabled: + supported_marketcap += coin.get("marketcap_usd", 0) + + total_marketcap = None + try: + ret = coinmarketcap_call("global-metrics/quotes/latest", api_key) + total_marketcap = int(ret["data"]["quote"]["USD"]["total_market_cap"]) + except: + pass + + return dict( + updated_at=int(time.time()), + updated_at_readable=time.asctime(), + t1_coins=t1_coins, + t2_coins=t2_coins, + marketcap_usd=supported_marketcap, + total_marketcap_usd=total_marketcap, + marketcap_supported="{:.02f} %".format( + 100 * supported_marketcap / total_marketcap + ), + ) + + +def _is_supported(support, trezor_version): + version = VERSIONS[trezor_version] + nominal = support.get(trezor_version) + if nominal is None: + return "no" + elif isinstance(nominal, bool): + return "yes" if nominal else "no" + + try: + nominal_version = tuple(map(int, nominal.split("."))) + return "yes" if nominal_version <= version else "soon" + except ValueError: + return nominal + + +def _webwallet_support(coin, support): + """Check the "webwallet" support property. + If set, check that at least one of the backends run on trezor.io. + If yes, assume we support the coin in our wallet. + Otherwise it's probably working with a custom backend, which means don't + link to our wallet. + """ + if not support.get("webwallet"): + return False + return any(".trezor.io" in url for url in coin["blockbook"] + coin["bitcore"]) + + +def dict_merge(orig, new): + if isinstance(new, dict) and isinstance(orig, dict): + for k, v in new.items(): + orig[k] = dict_merge(orig.get(k), v) + return orig + else: + return new + + +def update_simple(coins, support_info, type): + res = {} + for coin in coins: + key = coin["key"] + support = support_info[key] + + details = dict( + name=coin["name"], + shortcut=coin["shortcut"], + type=type, + t1_enabled=_is_supported(support, "trezor1"), + t2_enabled=_is_supported(support, "trezor2"), + wallet={}, + ) + for k in OPTIONAL_KEYS: + if k in coin: + details[k] = coin[k] + + details["wallet"].update(WALLETS.get(key, {})) + + res[key] = details + + return res + + +def update_bitcoin(coins, support_info): + res = update_simple(coins, support_info, "coin") + for coin in coins: + key = coin["key"] + support = support_info[key] + details = dict( + name=coin["coin_label"], + links=dict(Homepage=coin["website"], Github=coin["github"]), + wallet=WALLET_TREZOR if _webwallet_support(coin, support) else {}, + ) + dict_merge(res[key], details) + + return res + + +def update_erc20(coins, networks, support_info): + # TODO skip disabled networks? + network_support = {n["chain"]: support_info.get(n["key"]) for n in networks} + network_testnets = {n["chain"] for n in networks if "Testnet" in n["name"]} + res = update_simple(coins, support_info, "erc20") + for coin in coins: + key = coin["key"] + chain = coin["chain"] + + hidden = False + if chain in network_testnets: + hidden = True + if "deprecation" in coin: + hidden = True + + if network_support.get(chain, {}).get("webwallet"): + wallets = WALLETS_ETH_NATIVE + else: + wallets = WALLETS_ETH_3RDPARTY + + details = dict( + network=chain, + address=coin["address"], + shortcut=coin["shortcut"], + links={}, + wallet=wallets, + ) + if hidden: + details["hidden"] = True + if coin.get("website"): + details["links"]["Homepage"] = coin["website"] + if coin.get("social", {}).get("github"): + details["links"]["Github"] = coin["social"]["github"] + + dict_merge(res[key], details) + + return res + + +def update_ethereum_networks(coins, support_info): + res = update_simple(coins, support_info, "coin") + for coin in coins: + key = coin["key"] + if support_info[key].get("webwallet"): + wallets = WALLETS_ETH_NATIVE + else: + wallets = WALLETS_ETH_3RDPARTY + details = dict(links=dict(Homepage=coin.get("url")), wallet=wallets) + dict_merge(res[key], details) + + return res + + +def update_nem_mosaics(coins, support_info): + res = update_simple(coins, support_info, "mosaic") + for coin in coins: + key = coin["key"] + details = dict(wallet=WALLET_NEM) + dict_merge(res[key], details) + + return res + + +def check_missing_data(coins): + for k, coin in coins.items(): + hide = False + + if "Homepage" not in coin.get("links", {}): + level = logging.WARNING + if k.startswith("erc20:"): + level = logging.INFO + LOG.log(level, f"{k}: Missing homepage") + hide = True + if coin["t1_enabled"] not in ALLOWED_SUPPORT_STATUS: + LOG.warning(f"{k}: Unknown t1_enabled") + hide = True + if coin["t2_enabled"] not in ALLOWED_SUPPORT_STATUS: + LOG.warning(f"{k}: Unknown t2_enabled") + hide = True + + # check wallets + for wallet in coin["wallet"]: + name = wallet.get("name") + url = wallet.get("url") + if not name or not url: + LOG.warning(f"{k}: Bad wallet entry") + hide = True + continue + if "trezor" in name.lower() and url not in TREZORIO_KNOWN_URLS: + LOG.warning(f"{k}: Strange URL for Trezor Wallet") + hide = True + if "trezor.io" in url.lower() and url not in TREZORIO_KNOWN_URLS: + LOG.warning(f"{k}: Unexpected trezor.io URL: {url}") + + if coin["t1_enabled"] == "no" and coin["t2_enabled"] == "no": + LOG.info(f"{k}: Coin not enabled on either device") + hide = True + + if len(coin.get("wallet", [])) == 0: + LOG.debug(f"{k}: Missing wallet") + + if "Testnet" in coin["name"]: + LOG.debug(f"{k}: Hiding testnet") + hide = True + + if not hide and coin.get("hidden"): + LOG.info(f"{k}: Details are OK, but coin is still hidden") + + if hide: + coin["hidden"] = 1 + + # summary of hidden coins + hidden_coins = [k for k, coin in coins.items() if coin.get("hidden")] + for key in hidden_coins: + del coins[key] + LOG.debug(f"{key}: Coin is hidden") + + +def apply_overrides(coins): + for key, override in OVERRIDES.items(): + if key not in coins: + LOG.warning(f"override without coin: {key}") + continue + + dict_merge(coins[key], override) + + +def finalize_wallets(coins): + def sort_key(w): + if "trezor.io" in w["url"]: + return 0, w["name"] + else: + return 1, w["name"] + + for coin in coins.values(): + wallets_list = [ + dict(name=name, url=url) for name, url in coin["wallet"].items() + ] + wallets_list.sort(key=sort_key) + coin["wallet"] = wallets_list + + +@click.command() +# fmt: off +@click.option("-r", "--refresh", "refresh", flag_value=True, default=None, help="Force refresh market cap info") +@click.option("-R", "--no-refresh", "refresh", flag_value=False, default=None, help="Force use cached market cap info") +@click.option("-A", "--api-key", required=True, envvar="COINMARKETCAP_API_KEY", help="Coinmarketcap API key") +@click.option("-v", "--verbose", is_flag=True, help="Display more info") +# fmt: on +def main(refresh, api_key, verbose): + # setup logging + log_level = logging.DEBUG if verbose else logging.WARNING + root = logging.getLogger() + root.setLevel(log_level) + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(log_level) + root.addHandler(handler) + + coinmarketcap_init(api_key, refresh=refresh) + + defs = coin_info.coin_info() + support_info = coin_info.support_info(defs) + + coins = {} + coins.update(update_bitcoin(defs.bitcoin, support_info)) + coins.update(update_erc20(defs.erc20, defs.eth, support_info)) + coins.update(update_ethereum_networks(defs.eth, support_info)) + coins.update(update_nem_mosaics(defs.nem, support_info)) + coins.update(update_simple(defs.misc, support_info, "coin")) + + apply_overrides(coins) + finalize_wallets(coins) + update_marketcaps(coins) + + check_missing_data(coins) + + info = summary(coins, api_key) + details = dict(coins=coins, info=info) + + print(json.dumps(info, sort_keys=True, indent=4)) + with open(os.path.join(coin_info.DEFS_DIR, "coins_details.json"), "w") as f: + json.dump(details, f, sort_keys=True, indent=4) + + +if __name__ == "__main__": + main() diff --git a/common/tools/cointool.py b/common/tools/cointool.py new file mode 100755 index 000000000..d9ad5526f --- /dev/null +++ b/common/tools/cointool.py @@ -0,0 +1,844 @@ +#!/usr/bin/env python3 +import fnmatch +import io +import json +import logging +import re +import sys +import os +import glob +import struct +import zlib +from collections import defaultdict +from hashlib import sha256 + +import click + +import coin_info +from coindef import CoinDef + +try: + import termcolor +except ImportError: + termcolor = None + +try: + import mako + import mako.template + from munch import Munch + + CAN_RENDER = True +except ImportError: + CAN_RENDER = False + +try: + import requests +except ImportError: + requests = None + +try: + import ed25519 + from PIL import Image + from trezorlib import protobuf + + CAN_BUILD_DEFS = True +except ImportError: + CAN_BUILD_DEFS = False + + +# ======= Crayon colors ====== +USE_COLORS = False + + +def crayon(color, string, bold=False, dim=False): + if not termcolor or not USE_COLORS: + return string + else: + if bold: + attrs = ["bold"] + elif dim: + attrs = ["dark"] + else: + attrs = [] + return termcolor.colored(string, color, attrs=attrs) + + +def print_log(level, *args, **kwargs): + prefix = logging.getLevelName(level) + if level == logging.DEBUG: + prefix = crayon("blue", prefix, bold=False) + elif level == logging.INFO: + prefix = crayon("blue", prefix, bold=True) + elif level == logging.WARNING: + prefix = crayon("red", prefix, bold=False) + elif level == logging.ERROR: + prefix = crayon("red", prefix, bold=True) + print(prefix, *args, **kwargs) + + +# ======= Mako management ====== + + +def c_str_filter(b): + if b is None: + return "NULL" + + def hexescape(c): + return r"\x{:02x}".format(c) + + if isinstance(b, bytes): + return '"' + "".join(map(hexescape, b)) + '"' + else: + return json.dumps(b) + + +def black_repr_filter(val): + if isinstance(val, str): + if '"' in val: + return repr(val) + else: + return c_str_filter(val) + elif isinstance(val, bytes): + return "b" + c_str_filter(val) + else: + return repr(val) + + +def ascii_filter(s): + return re.sub("[^ -\x7e]", "_", s) + + +def make_support_filter(support_info): + def supported_on(device, coins): + for coin in coins: + supp = support_info[coin.key].get(device) + if not supp: + continue + if coin_info.is_token(coin) or supp != "soon": + yield coin + + return supported_on + + +MAKO_FILTERS = { + "c_str": c_str_filter, + "ascii": ascii_filter, + "black_repr": black_repr_filter, +} + + +def render_file(src, dst, coins, support_info): + """Renders `src` template into `dst`. + + `src` is a filename, `dst` is an open file object. + """ + template = mako.template.Template(filename=src) + result = template.render( + support_info=support_info, + supported_on=make_support_filter(support_info), + **coins, + **MAKO_FILTERS, + ) + dst.write(result) + + +# ====== validation functions ====== + + +def highlight_key(coin, color): + """Return a colorful string where the SYMBOL part is bold.""" + keylist = coin["key"].split(":") + if keylist[-1].isdigit(): + keylist[-2] = crayon(color, keylist[-2], bold=True) + else: + keylist[-1] = crayon(color, keylist[-1], bold=True) + key = crayon(color, ":".join(keylist)) + name = crayon(None, "({})".format(coin["name"]), dim=True) + return "{} {}".format(key, name) + + +def find_collisions(coins, field): + """Detects collisions in a given field. Returns buckets of colliding coins.""" + collisions = defaultdict(list) + for coin in coins: + value = coin[field] + collisions[value].append(coin) + return {k: v for k, v in collisions.items() if len(v) > 1} + + +def check_eth(coins): + check_passed = True + chains = find_collisions(coins, "chain") + for key, bucket in chains.items(): + bucket_str = ", ".join( + "{} ({})".format(coin["key"], coin["name"]) for coin in bucket + ) + chain_name_str = "colliding chain name " + crayon(None, key, bold=True) + ":" + print_log(logging.ERROR, chain_name_str, bucket_str) + check_passed = False + for coin in coins: + icon_file = "defs/ethereum/%s.png" % coin["shortcut"].lower() + try: + icon = Image.open(icon_file) + except Exception: + print(coin["key"], ": failed to open icon file", icon_file) + check_passed = False + continue + + if icon.size != (128, 128) or icon.mode != "RGBA": + print(coin["key"], ": bad icon format (must be RGBA 128x128)") + check_passed = False + return check_passed + + +def check_btc(coins): + check_passed = True + support_infos = coin_info.support_info(coins) + + # validate individual coin data + for coin in coins: + errors = coin_info.validate_btc(coin) + if errors: + check_passed = False + print_log(logging.ERROR, "invalid definition for", coin["name"]) + print("\n".join(errors)) + + def collision_str(bucket): + """Generate a colorful string out of a bucket of colliding coins.""" + coin_strings = [] + for coin in bucket: + name = coin["name"] + prefix = "" + if name.endswith("Testnet"): + color = "green" + elif name == "Bitcoin": + color = "red" + elif coin.get("unsupported"): + color = "grey" + prefix = crayon("blue", "(X)", bold=True) + else: + color = "blue" + hl = highlight_key(coin, color) + coin_strings.append(prefix + hl) + return ", ".join(coin_strings) + + def print_collision_buckets(buckets, prefix, maxlevel=logging.ERROR, strict=False): + """Intelligently print collision buckets. + + For each bucket, if there are any collision with a mainnet, print it. + If the collision is with unsupported networks or testnets, it's just INFO. + If the collision is with supported mainnets, it's WARNING. + If the collision with any supported network includes Bitcoin, it's an ERROR. + """ + failed = False + for key, bucket in buckets.items(): + mainnets = [c for c in bucket if not c["name"].endswith("Testnet")] + + have_bitcoin = False + for coin in mainnets: + if coin["name"] == "Bitcoin": + have_bitcoin = True + if all(v is False for k, v in support_infos[coin["key"]].items()): + coin["unsupported"] = True + + supported_mainnets = [c for c in mainnets if not c.get("unsupported")] + supported_networks = [c for c in bucket if not c.get("unsupported")] + + if len(mainnets) > 1: + if (have_bitcoin or strict) and len(supported_networks) > 1: + # ANY collision with Bitcoin is bad + level = maxlevel + failed = True + elif len(supported_mainnets) > 1: + # collision between supported networks is still pretty bad + level = logging.WARNING + else: + # collision between some unsupported networks is OK + level = logging.INFO + print_log(level, "{} {}:".format(prefix, key), collision_str(bucket)) + + return failed + + # slip44 collisions + print("Checking SLIP44 values collisions...") + slip44 = find_collisions(coins, "slip44") + if print_collision_buckets(slip44, "value", strict=True): + check_passed = False + + # only check address_type on coins that don't use cashaddr + nocashaddr = [coin for coin in coins if not coin.get("cashaddr_prefix")] + + print("Checking address_type collisions...") + address_type = find_collisions(nocashaddr, "address_type") + if print_collision_buckets(address_type, "address type"): + check_passed = False + + print("Checking address_type_p2sh collisions...") + address_type_p2sh = find_collisions(nocashaddr, "address_type_p2sh") + # we ignore failed checks on P2SH, because reasons + print_collision_buckets(address_type_p2sh, "address type", logging.WARNING) + + print("Checking genesis block collisions...") + genesis = find_collisions(coins, "hash_genesis_block") + print_collision_buckets(genesis, "genesis block", logging.WARNING) + + return check_passed + + +def check_dups(buckets, print_at_level=logging.ERROR): + """Analyze and pretty-print results of `coin_info.mark_duplicate_shortcuts`. + + `print_at_level` can be one of logging levels. + + The results are buckets of colliding symbols. + If the collision is only between ERC20 tokens, it's DEBUG. + If the collision includes one non-token, it's INFO. + If the collision includes more than one non-token, it's ERROR and printed always. + """ + + def coin_str(coin): + """Colorize coins. Tokens are cyan, nontokens are red. Coins that are NOT + marked duplicate get a green asterisk. + """ + if coin_info.is_token(coin): + color = "cyan" + else: + color = "red" + highlighted = highlight_key(coin, color) + if not coin.get("duplicate"): + prefix = crayon("green", "*", bold=True) + else: + prefix = "" + return "{}{}".format(prefix, highlighted) + + check_passed = True + + for symbol in sorted(buckets.keys()): + bucket = buckets[symbol] + if not bucket: + continue + + nontokens = [coin for coin in bucket if not coin_info.is_token(coin)] + + # string generation + dup_str = ", ".join(coin_str(coin) for coin in bucket) + if not nontokens: + level = logging.DEBUG + elif len(nontokens) == 1: + level = logging.INFO + else: + level = logging.ERROR + check_passed = False + + # deciding whether to print + if level < print_at_level: + continue + + if symbol == "_override": + print_log(level, "force-set duplicates:", dup_str) + else: + print_log(level, "duplicate symbol {}:".format(symbol), dup_str) + + return check_passed + + +def check_backends(coins): + check_passed = True + for coin in coins: + genesis_block = coin.get("hash_genesis_block") + if not genesis_block: + continue + backends = coin.get("blockbook", []) + coin.get("bitcore", []) + for backend in backends: + print("checking", backend, "... ", end="", flush=True) + try: + j = requests.get(backend + "/api/block-index/0").json() + if j["blockHash"] != genesis_block: + raise RuntimeError("genesis block mismatch") + except Exception as e: + print(e) + check_passed = False + else: + print("OK") + return check_passed + + +def check_icons(coins): + check_passed = True + for coin in coins: + key = coin["key"] + icon_file = coin.get("icon") + if not icon_file: + print(key, ": missing icon") + check_passed = False + continue + + try: + icon = Image.open(icon_file) + except Exception: + print(key, ": failed to open icon file", icon_file) + check_passed = False + continue + + if icon.size != (96, 96) or icon.mode != "RGBA": + print(key, ": bad icon format (must be RGBA 96x96)") + check_passed = False + return check_passed + + +IGNORE_NONUNIFORM_KEYS = frozenset(("unsupported", "duplicate")) + + +def check_key_uniformity(coins): + keysets = defaultdict(list) + for coin in coins: + keyset = frozenset(coin.keys()) | IGNORE_NONUNIFORM_KEYS + keysets[keyset].append(coin) + + if len(keysets) <= 1: + return True + + buckets = list(keysets.values()) + buckets.sort(key=lambda x: len(x)) + majority = buckets[-1] + rest = sum(buckets[:-1], []) + reference_keyset = set(majority[0].keys()) | IGNORE_NONUNIFORM_KEYS + print(reference_keyset) + + for coin in rest: + key = coin["key"] + keyset = set(coin.keys()) | IGNORE_NONUNIFORM_KEYS + missing = ", ".join(reference_keyset - keyset) + if missing: + print_log( + logging.ERROR, "coin {} has missing keys: {}".format(key, missing) + ) + additional = ", ".join(keyset - reference_keyset) + if additional: + print_log( + logging.ERROR, + "coin {} has superfluous keys: {}".format(key, additional), + ) + + return False + + +def check_segwit(coins): + for coin in coins: + segwit = coin["segwit"] + segwit_fields = [ + "bech32_prefix", + "xpub_magic_segwit_native", + "xpub_magic_segwit_p2sh", + ] + if segwit: + for field in segwit_fields: + if coin[field] is None: + print_log( + logging.ERROR, + coin["name"], + "segwit is True => %s should be set" % field, + ) + return False + else: + for field in segwit_fields: + if coin[field] is not None: + print_log( + logging.ERROR, + coin["name"], + "segwit is True => %s should NOT be set" % field, + ) + return False + return True + + +# ====== coindefs generators ====== + + +def convert_icon(icon): + """Convert PIL icon to TOIF format""" + # TODO: move this to python-trezor at some point + DIM = 32 + icon = icon.resize((DIM, DIM), Image.LANCZOS) + # remove alpha channel, replace with black + bg = Image.new("RGBA", icon.size, (0, 0, 0, 255)) + icon = Image.alpha_composite(bg, icon) + # process pixels + pix = icon.load() + data = bytes() + for y in range(DIM): + for x in range(DIM): + r, g, b, _ = pix[x, y] + c = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3) + data += struct.pack(">H", c) + z = zlib.compressobj(level=9, wbits=10) + zdata = z.compress(data) + z.flush() + zdata = zdata[2:-4] # strip header and checksum + return zdata + + +def coindef_from_dict(coin): + proto = CoinDef() + for fname, _, fflags in CoinDef.FIELDS.values(): + val = coin.get(fname) + if val is None and fflags & protobuf.FLAG_REPEATED: + val = [] + elif fname == "signed_message_header": + val = val.encode() + elif fname == "hash_genesis_block": + val = bytes.fromhex(val) + setattr(proto, fname, val) + + return proto + + +def serialize_coindef(proto, icon): + proto.icon = icon + buf = io.BytesIO() + protobuf.dump_message(buf, proto) + return buf.getvalue() + + +def sign(data): + h = sha256(data).digest() + sign_key = ed25519.SigningKey(b"A" * 32) + return sign_key.sign(h) + + +# ====== click command handlers ====== + + +@click.group() +@click.option( + "--colors/--no-colors", + "-c/-C", + default=sys.stdout.isatty(), + help="Force colored output on/off", +) +def cli(colors): + global USE_COLORS + USE_COLORS = colors + + +@cli.command() +# fmt: off +@click.option("--backend/--no-backend", "-b", default=False, help="Check blockbook/bitcore responses") +@click.option("--icons/--no-icons", default=True, help="Check icon files") +@click.option("-d", "--show-duplicates", type=click.Choice(("all", "nontoken", "errors")), + default="errors", help="How much information about duplicate shortcuts should be shown.") +# fmt: on +def check(backend, icons, show_duplicates): + """Validate coin definitions. + + Checks that every btc-like coin is properly filled out, reports duplicate symbols, + missing or invalid icons, backend responses, and uniform key information -- + i.e., that all coins of the same type have the same fields in their JSON data. + + Uniformity check ignores NEM mosaics and ERC20 tokens, where non-uniformity is + expected. + + The `--show-duplicates` option can be set to: + + - all: all shortcut collisions are shown, including colliding ERC20 tokens + + - nontoken: only collisions that affect non-ERC20 coins are shown + + - errors: only collisions between non-ERC20 tokens are shown. This is the default, + as a collision between two or more non-ERC20 tokens is an error. + + In the output, duplicate ERC tokens will be shown in cyan; duplicate non-tokens + in red. An asterisk (*) next to symbol name means that even though it was detected + as duplicate, it is still included in results. + + The collision detection checks that SLIP44 numbers don't collide between different + mainnets (testnet collisions are allowed), that `address_prefix` doesn't collide + with Bitcoin (other collisions are reported as warnings). `address_prefix_p2sh` + is also checked but we have a bunch of collisions there and can't do much + about them, so it's not an error. + + In the collision checks, Bitcoin is shown in red, other mainnets in blue, + testnets in green and unsupported networks in gray, marked with `(X)` for + non-colored output. + """ + if backend and requests is None: + raise click.ClickException("You must install requests for backend check") + + if icons and not CAN_BUILD_DEFS: + raise click.ClickException("Missing requirements for icon check") + + defs, buckets = coin_info.coin_info_with_duplicates() + all_checks_passed = True + + print("Checking BTC-like coins...") + if not check_btc(defs.bitcoin): + all_checks_passed = False + + print("Checking Ethereum networks...") + if not check_eth(defs.eth): + all_checks_passed = False + + if show_duplicates == "all": + dup_level = logging.DEBUG + elif show_duplicates == "nontoken": + dup_level = logging.INFO + else: + dup_level = logging.ERROR + print("Checking unexpected duplicates...") + if not check_dups(buckets, dup_level): + all_checks_passed = False + + nontoken_dups = [coin for coin in defs.as_list() if "dup_key_nontoken" in coin] + if nontoken_dups: + nontoken_dup_str = ", ".join( + highlight_key(coin, "red") for coin in nontoken_dups + ) + print_log(logging.ERROR, "Non-token duplicate keys: " + nontoken_dup_str) + all_checks_passed = False + + if icons: + print("Checking icon files...") + if not check_icons(defs.bitcoin): + all_checks_passed = False + + if backend: + print("Checking backend responses...") + if not check_backends(defs.bitcoin): + all_checks_passed = False + + print("Checking segwit fields...") + if not check_segwit(defs.bitcoin): + all_checks_passed = False + + print("Checking key uniformity...") + for cointype, coinlist in defs.items(): + if cointype in ("erc20", "nem"): + continue + if not check_key_uniformity(coinlist): + all_checks_passed = False + + if not all_checks_passed: + print("Some checks failed.") + sys.exit(1) + else: + print("Everything is OK.") + + +@cli.command() +# fmt: off +@click.option("-o", "--outfile", type=click.File(mode="w"), default="-") +@click.option("-s/-S", "--support/--no-support", default=True, help="Include support data for each coin") +@click.option("-p", "--pretty", is_flag=True, help="Generate nicely formatted JSON") +@click.option("-l", "--list", "flat_list", is_flag=True, help="Output a flat list of coins") +@click.option("-i", "--include", metavar="FIELD", multiple=True, help="Include only these fields") +@click.option("-e", "--exclude", metavar="FIELD", multiple=True, help="Exclude these fields") +@click.option("-I", "--include-type", metavar="TYPE", multiple=True, help="Include only these categories") +@click.option("-E", "--exclude-type", metavar="TYPE", multiple=True, help="Exclude these categories") +@click.option("-f", "--filter", metavar="FIELD=FILTER", multiple=True, help="Include only coins that match a filter") +@click.option("-F", "--filter-exclude", metavar="FIELD=FILTER", multiple=True, help="Exclude coins that match a filter") +@click.option("-t", "--exclude-tokens", is_flag=True, help="Exclude ERC20 tokens. Equivalent to '-E erc20'") +@click.option("-d", "--device", metavar="NAME", help="Only include coins supported on a given device") +# fmt: on +def dump( + outfile, + support, + pretty, + flat_list, + include, + exclude, + include_type, + exclude_type, + filter, + filter_exclude, + exclude_tokens, + device, +): + """Dump coin data in JSON format + + This file is structured the same as the internal data. That is, top-level object + is a dict with keys: 'bitcoin', 'eth', 'erc20', 'nem' and 'misc'. Value for each + key is a list of dicts, each describing a known coin. + + If '--list' is specified, the top-level object is instead a flat list of coins. + + \b + Fields are category-specific, except for four common ones: + - 'name' - human-readable name + - 'shortcut' - currency symbol + - 'key' - unique identifier, e.g., 'bitcoin:BTC' + - 'support' - a dict with entries per known device + + To control the size and properties of the resulting file, you can specify whether + or not you want pretty-printing and whether or not to include support data with + each coin. + + You can specify which categories and which fields will be included or excluded. + You cannot specify both include and exclude at the same time. Include is "stronger" + than exclude, in that _only_ the specified fields are included. + + You can also specify filters, in the form '-f field=value' (or '-F' for inverse + filter). Filter values are case-insensitive and support shell-style wildcards, + so '-f name=bit*' finds all coins whose names start with "bit" or "Bit". + """ + if exclude_tokens: + exclude_type = ("erc20",) + + if include and exclude: + raise click.ClickException( + "You cannot specify --include and --exclude at the same time." + ) + if include_type and exclude_type: + raise click.ClickException( + "You cannot specify --include-type and --exclude-type at the same time." + ) + + coins = coin_info.coin_info() + support_info = coin_info.support_info(coins.as_list()) + + if support: + for category in coins.values(): + for coin in category: + coin["support"] = support_info[coin["key"]] + + # filter types + if include_type: + coins_dict = {k: v for k, v in coins.items() if k in include_type} + else: + coins_dict = {k: v for k, v in coins.items() if k not in exclude_type} + + # filter individual coins + include_filters = [f.split("=", maxsplit=1) for f in filter] + exclude_filters = [f.split("=", maxsplit=1) for f in filter_exclude] + + # always exclude 'address_bytes', not encodable in JSON + exclude += ("address_bytes",) + + def should_include_coin(coin): + for field, filter in include_filters: + filter = filter.lower() + if field not in coin: + return False + if not fnmatch.fnmatch(str(coin[field]).lower(), filter): + return False + for field, filter in exclude_filters: + filter = filter.lower() + if field not in coin: + continue + if fnmatch.fnmatch(str(coin[field]).lower(), filter): + return False + if device: + is_supported = support_info[coin["key"]].get(device, None) + if not is_supported: + return False + return True + + def modify_coin(coin): + if include: + return {k: v for k, v in coin.items() if k in include} + else: + return {k: v for k, v in coin.items() if k not in exclude} + + for key, coinlist in coins_dict.items(): + coins_dict[key] = [modify_coin(c) for c in coinlist if should_include_coin(c)] + + if flat_list: + output = sum(coins_dict.values(), []) + else: + output = coins_dict + + with outfile: + indent = 4 if pretty else None + json.dump(output, outfile, indent=indent, sort_keys=True) + outfile.write("\n") + + +@cli.command() +@click.option("-o", "--outfile", type=click.File(mode="w"), default="./coindefs.json") +def coindefs(outfile): + """Generate signed coin definitions for python-trezor and others + + This is currently unused but should enable us to add new coins without having to + update firmware. + """ + coins = coin_info.coin_info().bitcoin + coindefs = {} + for coin in coins: + key = coin["key"] + icon = Image.open(coin["icon"]) + ser = serialize_coindef(coindef_from_dict(coin), convert_icon(icon)) + sig = sign(ser) + definition = (sig + ser).hex() + coindefs[key] = definition + + with outfile: + json.dump(coindefs, outfile, indent=4, sort_keys=True) + outfile.write("\n") + + +@cli.command() +# fmt: off +@click.argument("paths", metavar="[path]...", nargs=-1) +@click.option("-o", "--outfile", type=click.File("w"), help="Alternate output file") +@click.option("-v", "--verbose", is_flag=True, help="Print rendered file names") +# fmt: on +def render(paths, outfile, verbose): + """Generate source code from Mako templates. + + For every "foo.bar.mako" filename passed, runs the template and + saves the result as "foo.bar". For every directory name passed, + processes all ".mako" files found in that directory. + + If `-o` is specified, renders a single file into the specified outfile. + + If no arguments are given, processes the current directory. + """ + if not CAN_RENDER: + raise click.ClickException("Please install 'mako' and 'munch'") + + if outfile and (len(paths) != 1 or not os.path.isfile(paths[0])): + raise click.ClickException("Option -o can only be used with single input file") + + # prepare defs + defs = coin_info.coin_info() + support_info = coin_info.support_info(defs) + + # munch dicts - make them attribute-accessible + for key, value in defs.items(): + defs[key] = [Munch(coin) for coin in value] + for key, value in support_info.items(): + support_info[key] = Munch(value) + + def do_render(src, dst): + if verbose: + click.echo("Rendering {} => {}".format(src, dst)) + render_file(src, dst, defs, support_info) + + # single in-out case + if outfile: + do_render(paths[0], outfile) + return + + # find files in directories + if not paths: + paths = ["."] + + files = [] + for path in paths: + if not os.path.exists(path): + click.echo("Path {} does not exist".format(path)) + elif os.path.isdir(path): + files += glob.glob(os.path.join(path, "*.mako")) + else: + files.append(path) + + # render each file + for file in files: + if not file.endswith(".mako"): + click.echo("File {} does not end with .mako".format(file)) + else: + target = file[: -len(".mako")] + with open(target, "w") as dst: + do_render(file, dst) + + +if __name__ == "__main__": + cli() diff --git a/common/tools/diffize_coins_details.py b/common/tools/diffize_coins_details.py new file mode 100755 index 000000000..1e1a69796 --- /dev/null +++ b/common/tools/diffize_coins_details.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +import click +import json +import os +import requests +import tempfile +import subprocess +import sys + + +LIVE_URL = "https://trezor.io/static/json/coins_details.json" +COINS_DETAILS = os.path.join( + os.path.dirname(__file__), "..", "defs", "coins_details.json" +) + + +def diffize_file(coins_details, tmp): + coins_list = list(coins_details["coins"].values()) + for coin in coins_list: + coin.pop("marketcap_usd", None) + links = coin.get("links", {}) + wallets = coin.get("wallet", {}) + for link in links: + links[link] = links[link].rstrip("/") + for wallet in wallets: + wallet["url"] = wallet["url"].rstrip("/") + + if not coin.get("wallet"): + coin.pop("wallet", None) + + coins_list.sort(key=lambda c: c["name"]) + + for coin in coins_list: + name = coin["name"] + for key in coin: + print(name, "\t", key, ":", coin[key], file=tmp) + tmp.flush() + + +@click.command() +def cli(): + """Compare data from trezor.io/coins with current coins_details.json + + Shows a nicely formatted diff between the live version and the trezor-common + version. Useful for catching auto-generation problems, etc. + """ + live_json = requests.get(LIVE_URL).json() + with open(COINS_DETAILS) as f: + coins_details = json.load(f) + + Tmp = tempfile.NamedTemporaryFile + with Tmp("w") as tmpA, Tmp("w") as tmpB: + diffize_file(live_json, tmpA) + diffize_file(coins_details, tmpB) + subprocess.call(["diff", "-u", "--color=auto", tmpA.name, tmpB.name]) + + +if __name__ == "__main__": + cli() diff --git a/common/tools/requirements.txt b/common/tools/requirements.txt new file mode 100644 index 000000000..59cab2694 --- /dev/null +++ b/common/tools/requirements.txt @@ -0,0 +1,16 @@ +click>=6 + +# for `coin_gen coindefs` and checking icons: +ed25519>=1.4 +Pillow>=5.2.0 +trezor>=0.10 + +# for checking backends, generating coins_details.json +requests>=2.19 + +# for rendering templates: +Mako>=1.0.7 +munch>=2.3.2 + +# for pretty colors in checks +termcolor >= 0.1.2 diff --git a/common/tools/support.py b/common/tools/support.py new file mode 100755 index 000000000..593387eb5 --- /dev/null +++ b/common/tools/support.py @@ -0,0 +1,516 @@ +#!/usr/bin/env python3 +import re +import os +import subprocess +import sys +import click +import coin_info +import json + +SUPPORT_INFO = coin_info.get_support_data() + +VERSION_RE = re.compile(r"\d+.\d+.\d+") + +ERC20_DUPLICATE_KEY = "(AUTO) duplicate key" + + +def write_support_info(): + with open(os.path.join(coin_info.DEFS_DIR, "support.json"), "w") as f: + json.dump(SUPPORT_INFO, f, indent=2, sort_keys=True) + f.write("\n") + + +def support_dicts(device): + return SUPPORT_INFO[device]["supported"], SUPPORT_INFO[device]["unsupported"] + + +def all_support_dicts(): + for device in SUPPORT_INFO: + yield (device, *support_dicts(device)) + + +def clear_support(device, key): + supported, unsupported = support_dicts(device) + supported.pop(key, None) + unsupported.pop(key, None) + + +def set_supported(device, key, value): + clear_support(device, key) + supported, _ = support_dicts(device) + supported[key] = value + + +def set_unsupported(device, key, value): + clear_support(device, key) + _, unsupported = support_dicts(device) + unsupported[key] = value + + +def print_support(coin): + def support_value(where, key, missing_means_no=False): + if "supported" in where and key in where["supported"]: + val = where["supported"][key] + if val is True: + return "YES" + elif val == "soon": + return "SOON" + elif VERSION_RE.match(val): + return f"YES since {val}" + else: + return f"BAD VALUE {val}" + elif "unsupported" in where and key in where["unsupported"]: + val = where["unsupported"][key] + return f"NO (reason: {val})" + elif missing_means_no: + return "NO" + else: + return "support info missing" + + key, name, shortcut = coin["key"], coin["name"], coin["shortcut"] + print(f"{key} - {name} ({shortcut})") + if coin.get("duplicate"): + if coin_info.is_token(coin): + print(" * DUPLICATE SYMBOL (no support)") + return + else: + print(" * DUPLICATE SYMBOL") + for dev, where in SUPPORT_INFO.items(): + missing_means_no = dev in coin_info.MISSING_SUPPORT_MEANS_NO + print(" *", dev, ":", support_value(where, key, missing_means_no)) + + +# ====== validation functions ====== # + + +def check_support_values(): + def _check_value_version_soon(val): + if not isinstance(value, str): + raise ValueError(f"non-str value: {value}") + + is_version = VERSION_RE.match(value) + is_soon = value == "soon" + if not (is_version or is_soon): + raise ValueError(f"expected version or 'soon', found '{value}'") + + errors = [] + for device, values in SUPPORT_INFO.items(): + supported = values.get("supported") + if not isinstance(supported, dict): + errors.append(f"Missing 'supported' dict for {device}") + else: + for key, value in supported.items(): + try: + if device in coin_info.VERSIONED_SUPPORT_INFO: + _check_value_version_soon(value) + else: + if value is not True: + raise ValueError(f"only allowed is True, but found {value}") + except Exception as e: + errors.append(f"{device}.supported.{key}: {e}") + + unsupported = values.get("unsupported") + if not isinstance(unsupported, dict): + errors.append(f"Missing 'supported' dict for {device}") + else: + for key, value in unsupported.items(): + if not isinstance(value, str) or not value: + errors.append(f"{device}.unsupported.{key}: missing reason") + + return errors + + +def find_unsupported_coins(coins_dict): + result = {} + for device in coin_info.VERSIONED_SUPPORT_INFO: + supported, unsupported = support_dicts(device) + support_set = set(supported.keys()) + support_set.update(unsupported.keys()) + + result[device] = [] + for key, coin in coins_dict.items(): + if coin.get("duplicate") and coin_info.is_token(coin): + continue + if key not in support_set: + result[device].append(coin) + + return result + + +def find_orphaned_support_keys(coins_dict): + orphans = set() + for _, supported, unsupported in all_support_dicts(): + orphans.update(key for key in supported if key not in coins_dict) + orphans.update(key for key in unsupported if key not in coins_dict) + + return orphans + + +def find_supported_duplicate_tokens(coins_dict): + result = [] + for _, supported, _ in all_support_dicts(): + for key in supported: + if not key.startswith("erc20:"): + continue + if coins_dict.get(key, {}).get("duplicate"): + result.append(key) + return result + + +def process_erc20(coins_dict): + """Make sure that: + * orphaned ERC20 support info is cleared out + * duplicate ERC20 tokens are not listed as supported + * non-duplicate ERC20 tokens are cleared out from the unsupported list + """ + erc20_dict = { + key: coin.get("duplicate", False) + for key, coin in coins_dict.items() + if coin_info.is_token(coin) + } + for device, supported, unsupported in all_support_dicts(): + nondups = set() + dups = set(key for key, value in erc20_dict.items() if value) + for key in supported: + if key not in erc20_dict: + continue + if not erc20_dict[key]: + dups.discard(key) + + for key in unsupported: + if key not in erc20_dict: + continue + # ignore dups that are unsupported now + dups.discard(key) + + if not erc20_dict[key] and unsupported[key] == ERC20_DUPLICATE_KEY: + # remove duplicate status + nondups.add(key) + + for key in dups: + if device in coin_info.MISSING_SUPPORT_MEANS_NO: + clear_support(device, key) + else: + print(f"ERC20 on {device}: adding duplicate {key}") + set_unsupported(device, key, ERC20_DUPLICATE_KEY) + + for key in nondups: + print(f"ERC20 on {device}: clearing non-duplicate {key}") + clear_support(device, key) + + +@click.group() +def cli(): + pass + + +@cli.command() +@click.option("-n", "--dry-run", is_flag=True, help="Do not write changes") +def fix(dry_run): + """Fix expected problems. + + Prunes orphaned keys and ensures that ERC20 duplicate info matches support info. + """ + all_coins, _ = coin_info.coin_info_with_duplicates() + coins_dict = all_coins.as_dict() + + orphaned = find_orphaned_support_keys(coins_dict) + for orphan in orphaned: + print(f"pruning orphan {orphan}") + for device in SUPPORT_INFO: + clear_support(device, orphan) + + process_erc20(coins_dict) + if not dry_run: + write_support_info() + + +@cli.command() +# fmt: off +@click.option("-T", "--check-tokens", is_flag=True, help="Also check unsupported ERC20 tokens, ignored by default") +@click.option("-m", "--ignore-missing", is_flag=True, help="Do not fail on missing supportinfo") +# fmt: on +def check(check_tokens, ignore_missing): + """Check validity of support information. + + Ensures that `support.json` data is well formed, there are no keys without + corresponding coins, and there are no coins without corresponding keys. + + If `--check-tokens` is specified, the check will also take into account ERC20 tokens + without support info. This is disabled by default, because support info for ERC20 + tokens is not strictly required. + + If `--ignore-missing` is specified, the check will display coins with missing + support info, but will not fail when missing coins are found. This is + useful in Travis. + """ + all_coins, _ = coin_info.coin_info_with_duplicates() + coins_dict = all_coins.as_dict() + checks_ok = True + + errors = check_support_values() + if errors: + for error in errors: + print(error) + checks_ok = False + + orphaned = find_orphaned_support_keys(coins_dict) + for orphan in orphaned: + print(f"orphaned key {orphan}") + checks_ok = False + + missing = find_unsupported_coins(coins_dict) + for device, values in missing.items(): + if not check_tokens: + values = [coin for coin in values if not coin_info.is_token(coin)] + if values: + if not ignore_missing: + checks_ok = False + print(f"Device {device} has missing support infos:") + for coin in values: + print(f"{coin['key']} - {coin['name']}") + + supported_dups = find_supported_duplicate_tokens(coins_dict) + for key in supported_dups: + coin = coins_dict[key] + checks_ok = False + print(f"Token {coin['key']} ({coin['name']}) is duplicate but supported") + + if not checks_ok: + print("Some checks have failed") + sys.exit(1) + + +@cli.command() +# fmt: off +@click.argument("device") +@click.option("-r", "--version", help="Set explicit version string (default: guess from latest release)") +@click.option("--git-tag/--no-git-tag", "-g", default=False, help="Create a corresponding Git tag") +@click.option("--release-missing/--no-release-missing", default=True, help="Release coins with missing support info") +@click.option("-n", "--dry-run", is_flag=True, help="Do not write changes") +@click.option("-s", "--soon", is_flag=True, help="Only set missing support-infos to be released 'soon'") +@click.option("-f", "--force", is_flag=True, help="Proceed even with bad version/device info") +@click.option("-y", "--add-all", is_flag=True, help="Do not ask for confirmation, add all selected coins") +@click.option("-v", "--verbose", is_flag=True, help="Be more verbose") +# fmt: on +@click.pass_context +def release( + ctx, + device: str, + version, + git_tag, + release_missing, + dry_run, + soon, + force, + add_all, + verbose, +): + """Release a new Trezor firmware. + + Update support infos so that all coins have a clear support status. + By default, marks duplicate tokens as unsupported, and all coins that either + don't have support info, or they are supported "soon", are set to the + released firmware version. + + Optionally tags the repository with the given version. + + `device` can be "1", "2", or a string matching `support.json` key. Version + is autodetected by downloading a list of latest releases and incrementing + micro version by one, or you can specify `--version` explicitly. + + Unless `--add-all` is specified, the tool will ask you to confirm each added + coin. ERC20 tokens are added automatically. Use `--verbose` to see them. + """ + # check condition(s) + if soon and git_tag: + raise click.ClickException("Cannot git-tag a 'soon' revision") + + # process `device` + if device.isnumeric(): + device = f"trezor{device}" + + if not force and device not in coin_info.VERSIONED_SUPPORT_INFO: + raise click.ClickException( + f"Non-releasable device {device} (support info is not versioned). " + "Use --force to proceed anyway." + ) + + if not soon: + # guess `version` if not given + if not version: + versions = coin_info.latest_releases() + latest_version = versions.get(device) + if latest_version is None: + raise click.ClickException( + "Failed to guess version. " + "Please use --version to specify it explicitly." + ) + else: + latest_version = list(latest_version) + latest_version[-1] += 1 + version = ".".join(str(n) for n in latest_version) + + # process `version` + try: + version_numbers = list(map(int, version.split("."))) + expected_device = f"trezor{version_numbers[0]}" + if not force and device != expected_device: + raise click.ClickException( + f"Device {device} should not be version {version}. " + "Use --force to proceed anyway." + ) + except ValueError as e: + if not force: + raise click.ClickException( + f"Failed to parse '{version}' as a version. " + "Use --force to proceed anyway." + ) from e + + if soon: + version = "soon" + print(f"Moving {device} missing infos to 'soon'") + else: + print(f"Releasing {device} firmware version {version}") + + defs, _ = coin_info.coin_info_with_duplicates() + coins_dict = defs.as_dict() + + # Invoke data fixup as dry-run. That will modify data internally but won't write + # changes. We will write changes at the end based on our own `dry_run` value. + print("Fixing up data...") + ctx.invoke(fix, dry_run=True) + + def maybe_add(coin, label): + add = False + if add_all: + add = True + else: + text = f"Add {label} coin {coin['key']} ({coin['name']})?" + add = click.confirm(text, default=True) + if add: + set_supported(device, coin["key"], version) + + # if we're releasing, process coins marked "soon" + if not soon: + supported, _ = support_dicts(device) + soon_list = [ + coins_dict[key] + for key, val in supported.items() + if val == "soon" and key in coins_dict + ] + for coin in soon_list: + key = coin["key"] + maybe_add(coin, "soon") + + # process missing (not listed) supportinfos + if release_missing: + missing_list = find_unsupported_coins(coins_dict)[device] + tokens = [coin for coin in missing_list if coin_info.is_token(coin)] + nontokens = [coin for coin in missing_list if not coin_info.is_token(coin)] + for coin in tokens: + key = coin["key"] + assert not coin.get("duplicate") + if verbose: + print(f"Adding missing {key} ({coin['name']})") + set_supported(device, key, version) + + for coin in nontokens: + maybe_add(coin, "missing") + + tagname = f"{device}-{version}" + if git_tag: + if dry_run: + print(f"Would tag current commit with {tagname}") + else: + print(f"Tagging current commit with {tagname}") + subprocess.check_call(["git", "tag", tagname]) + + if not dry_run: + write_support_info() + else: + print("No changes written") + + +@cli.command() +@click.argument("keyword", nargs=-1, required=True) +def show(keyword): + """Show support status of specified coins. + + Keywords match against key, name or shortcut (ticker symbol) of coin. + """ + defs, _ = coin_info.coin_info_with_duplicates() + + for kw in keyword: + for coin in coin_info.search(defs, kw): + print_support(coin) + + +@cli.command(name="set") +# fmt: off +@click.argument("key", required=True) +@click.argument("entries", nargs=-1, required=True, metavar="entry=value [entry=value]...") +@click.option("-r", "--reason", help="Reason for not supporting") +# fmt: on +def set_support_value(key, entries, reason): + """Set a support info variable. + + Examples: + support.py set coin:BTC trezor1=soon trezor2=2.0.7 webwallet=yes connect=no + support.py set coin:LTC trezor1=yes connect= + + Setting a variable to "yes", "true" or "1" sets support to true. + Setting a variable to "no", "false" or "0" sets support to false. + (or null, in case of trezor1/2) + Setting variable to empty ("trezor1=") will set to null, or clear the entry. + Setting to "soon", "planned", "2.1.1" etc. will set the literal string. + + Entries that are always present: + trezor1 trezor2 webwallet connect + + Entries with other names will be inserted into "others". This is a good place + to store links to 3rd party software, such as Electrum forks or claim tools. + """ + defs, _ = coin_info.coin_info_with_duplicates() + coins = defs.as_dict() + if key not in coins: + click.echo(f"Failed to find key {key}") + click.echo("Use 'support.py show' to search for the right one.") + sys.exit(1) + + if coins[key].get("duplicate") and coin_info.is_token(coins[key]): + shortcut = coins[key]["shortcut"] + click.echo(f"Note: shortcut {shortcut} is a duplicate.") + click.echo(f"Coin will NOT be listed regardless of support.json status.") + + for entry in entries: + try: + device, value = entry.split("=", maxsplit=1) + except ValueError: + click.echo(f"Invalid entry: {entry}") + sys.exit(2) + + if device not in SUPPORT_INFO: + raise click.ClickException(f"unknown device: {device}") + + if value in ("yes", "true", "1"): + set_supported(device, key, True) + elif value in ("no", "false", "0"): + if device in coin_info.MISSING_SUPPORT_MEANS_NO: + click.echo("Setting explicitly unsupported for {device}.") + click.echo("Perhaps you meant removing support, i.e., '{device}=' ?") + if not reason: + reason = click.prompt(f"Enter reason for not supporting on {device}:") + set_unsupported(device, key, reason) + elif value == "": + clear_support(device, key) + else: + # arbitrary string + set_supported(device, key, value) + + print_support(coins[key]) + write_support_info() + + +if __name__ == "__main__": + cli() diff --git a/common/udev/51-trezor.rules b/common/udev/51-trezor.rules new file mode 100644 index 000000000..50472b952 --- /dev/null +++ b/common/udev/51-trezor.rules @@ -0,0 +1,17 @@ +# TREZOR: The Original Hardware Wallet +# https://trezor.io/ +# +# Put this file into /etc/udev/rules.d +# +# If you are creating a distribution package, +# put this into /usr/lib/udev/rules.d or /lib/udev/rules.d +# depending on your distribution + +# TREZOR +SUBSYSTEM=="usb", ATTR{idVendor}=="534c", ATTR{idProduct}=="0001", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n" +KERNEL=="hidraw*", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl" + +# TREZOR v2 +SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c0", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n" +SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="trezor%n" +KERNEL=="hidraw*", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl" diff --git a/common/udev/dist/.gitignore b/common/udev/dist/.gitignore new file mode 100644 index 000000000..f7dec42e8 --- /dev/null +++ b/common/udev/dist/.gitignore @@ -0,0 +1,3 @@ +trezor.rules +*.rpm +*.deb diff --git a/common/udev/dist/Dockerfile b/common/udev/dist/Dockerfile new file mode 100644 index 000000000..8fec8e06e --- /dev/null +++ b/common/udev/dist/Dockerfile @@ -0,0 +1,17 @@ +# initialize from the image + +FROM fedora:25 + +# update package repositories + +RUN dnf update -y + +# install tools + +RUN dnf install -y cmake make wget +RUN dnf install -y gcc gcc-c++ git make patchutils pkgconfig wget + +# install dependencies for Linux packaging + +RUN dnf install -y ruby-devel rubygems rpm-build +RUN gem install fpm --no-document diff --git a/common/udev/dist/Makefile b/common/udev/dist/Makefile new file mode 100644 index 000000000..dff2eb293 --- /dev/null +++ b/common/udev/dist/Makefile @@ -0,0 +1,18 @@ +VOL_MOUNT = -v $(shell pwd):/release +IMAGETAG = trezor-udev-build-env + +all: .package + +.package: .docker-image trezor.rules + $(info Packaging ...) + docker run -t $(VOL_MOUNT) $(IMAGETAG) /release/release.sh + +trezor.rules: + cp ../51-trezor.rules trezor.rules + +.docker-image: + $(info Preparing docker image ...) + docker build -t $(IMAGETAG) . + +shell: .docker-image + docker run -i -t $(VOL_MOUNT) $(IMAGETAG) /bin/bash diff --git a/common/udev/dist/release.sh b/common/udev/dist/release.sh new file mode 100755 index 000000000..617ab7b5d --- /dev/null +++ b/common/udev/dist/release.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +VERSION="2" + +install -D -m 0644 ./trezor.rules ./lib/udev/rules.d/52-trezor-extension.rules + +NAME=trezor-udev + +tar cfj $NAME-$VERSION.tar.bz2 ./lib + +for TYPE in "deb" "rpm"; do + fpm \ + -s tar \ + -t $TYPE \ + -a all \ + -n $NAME \ + -v $VERSION \ + --license "LGPL-3.0" \ + --vendor "SatoshiLabs" \ + --description "Udev rules for TREZOR" \ + --maintainer "SatoshiLabs " \ + --url "https://trezor.io/" \ + --category "Productivity/Security" \ + $NAME-$VERSION.tar.bz2 +done + +rm $NAME-$VERSION.tar.bz2 +rm -rf ./lib