Compare commits

...
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
98fc320a86 Version Packages (#614)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-22 21:48:03 -08:00
Joaquim VergesandGitHub 5712650074 [SDK] Handle custom currencies for any chain (#616) 2023-02-23 05:33:00 +00:00
Jonas DanielsandGitHub 1b0bc87efb [sdk] add code cov (#615) 2023-02-23 01:26:53 +00:00
Jonas DanielsandGitHub a3472a1331 [chains] - DX improvements & chain updates (#613) 2023-02-23 00:01:59 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7c3f050883 Version Packages (#609)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-22 13:59:28 -08:00
8b68f20678 refactor: Release to Publish (#567)
Co-authored-by: Jonas Daniels <[email protected]>
2023-02-22 21:36:03 +00:00
Jonas DanielsandGitHub 3d644fb8cb [react] - add mediarenderer prop (#608) 2023-02-21 10:30:21 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
690ff925c3 Version Packages (#603)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-20 20:13:14 -08:00
Jonas DanielsandGitHub 4fe6797427 clean up remaining workflows (#605) 2023-02-19 02:12:39 +00:00
Jonas DanielsandGitHub f3408d05d8 [sdk] - fix possible crash in StaticJsonRpcBatchProvider (#604) 2023-02-19 01:47:29 +00:00
Jonas Daniels 845e818c66 CI all in one? 2023-02-18 14:55:51 -08:00
Jonas Daniels 5178256e84 try out new ci action 2023-02-18 14:40:23 -08:00
Jonas DanielsandGitHub 66cf1fb5c2 [various] - upgrade dependencies (#601) 2023-02-18 22:10:45 +00:00
Jonas Daniels df792f0b81 make merge queue work 2023-02-18 14:10:16 -08:00
Jonas Daniels ae0f967356 make platform own everything by default 2023-02-18 13:55:33 -08:00
Jonas Daniels 076718112f devrel should not own changeset markdown files 2023-02-18 13:54:00 -08:00
Jonas Daniels 7c9f86cc44 improve codeowners 2023-02-18 13:51:56 -08:00
Jonas DanielsandGitHub 9c90371426 Jd/add codeowners (#602) 2023-02-18 13:49:09 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4516487a9a Version Packages (#600)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-17 17:38:12 -08:00
Adam MajmudarandGitHub 300fe4a933 [Storage] Pass through pinata metadata (#597) 2023-02-18 01:32:09 +00:00
Joaquim VergesandGitHub f580b8ac06 [React] fix react provider readonly chain mismatch (#599) 2023-02-18 01:24:16 +00:00
Adam MajmudarandGitHub f0de81d4b1 [Auth] Expose verifyLogin function (#588) 2023-02-17 17:15:08 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
f3a863a3b1 Bump undici from 5.14.0 to 5.19.1 (#594)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 18:11:22 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
128bca9e07 Version Packages (#595)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-16 17:37:38 -08:00
iketwGitHubiketwciaranightingaleJonas Danielsgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>github-actions[bot] <github-actions[bot]@users.noreply.github.com>Nacho Iacovino
18ba6b381e [React Native SDK] init package (#522)
Co-authored-by: iketw <[email protected]>
Co-authored-by: ciaranightingale <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nacho Iacovino <[email protected]>
2023-02-16 20:04:07 -05:00
Jonas Daniels 18c16101dd release-pr may use cache 2023-02-16 08:49:50 -08:00
Jonas DanielsandGitHub b6b94ca348 smaller workers (#593) 2023-02-16 08:45:38 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
81d2d2185d Version Packages (#560)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-15 21:45:09 -08:00
Joaquim VergesandGitHub 37f58b4e68 [React] fix alignment on web3button (#592) 2023-02-15 21:41:02 -08:00
61d41db769 [React] Fix passing activeChainId prop down (#591)
Co-authored-by: Jonas Daniels <[email protected]>
2023-02-15 21:26:49 -08:00
Jonas DanielsandGitHub 44cce2f2b1 [SDK] - allow passing Chain object to initialize SDK (#590) 2023-02-16 05:16:14 +00:00
Jonas DanielsandGitHub 017b0d56b6 [chains] - update chains & add utils (#589) 2023-02-16 01:06:34 +00:00
Adam MajmudarandGitHub 4d77c185d9 [SDK] Update tiered drop with total price (#585) 2023-02-15 17:26:00 +00:00
44d56e4a91 [SDK] Check how many NFTs a specific wallet has claimed (#577)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-02-15 01:41:25 +00:00
Nacho IacovinoandGitHub 03e755f1df [React] Don't have min-width requirement for html types (#583) 2023-02-15 01:10:52 +00:00
Adam MajmudarandGitHub 8694d5a3a1 Add changeset for react (#582) 2023-02-14 20:06:02 +00:00
Adam MajmudarandGitHub 4d9e5c6193 Update next-auth wallet config (#581) 2023-02-14 19:39:46 +00:00
Jonas DanielsandGitHub 27d8db200e [SDK] - mark fromPrivateKey as public (#579) 2023-02-14 08:11:52 +00:00
Adam MajmudarandGitHub 813c4a4a09 [Unity Bridge] Add support for Auth to unity-js-bridge (#575) 2023-02-14 07:16:10 +00:00
Adam MajmudarandGitHub f6ea971854 [Auth] Add support for next-auth (#576) 2023-02-14 01:04:08 -05:00
Jonas DanielsandGitHub f3b96e7120 [react, react-core] - allow number and string types for activeChain prop (#578) 2023-02-14 03:09:32 +00:00
iketwandGitHub cfd2a7c9ec [ReactSDK] remove duplicate and set Dapp url as mandatory (#571) 2023-02-13 21:50:34 +00:00
FirekeeperandGitHub 9670c7aee5 Firekeeper/unity js listeners dyncall (#573) 2023-02-13 13:38:20 -08:00
Joaquim VergesandGitHub 94b120ffd1 [Wallets] Device Wallet (#548) 2023-02-12 21:32:14 -08:00
Jonas DanielsandGitHub d0bcd2c587 [chains] - fix localhost (#570) 2023-02-12 05:04:47 +00:00
Jonas DanielsandGitHub 818048d52f [react, react-core] chain integration (#569) 2023-02-11 16:48:44 -08:00
Jonas DanielsandGitHub 500a0e671b [chains, react] - upgraded rpcs, etc (#568) 2023-02-11 15:05:12 -08:00
Jonas DanielsandGitHub 6a50719486 [chains] - add getChainRPCs (#565) 2023-02-10 05:48:14 +00:00
Joaquim VergesandGitHub 1f89410867 Update README.md 2023-02-09 21:36:42 -08:00
Joaquim VergesandGitHub 363c6799a6 Update README.md 2023-02-09 21:35:50 -08:00
Joaquim VergesandGitHub bddabe0b42 [Wallet] Email wallet integration (#559) 2023-02-09 21:35:07 -08:00
Joaquim VergesandGitHub 2b3e94f90a [React] Fix creating SDKs with signer only (#564) 2023-02-09 17:08:25 -08:00
5d25ee1ab7 [SDK] fix getMultiChainContractList (#562)
Co-authored-by: Joaquim Verges <[email protected]>
2023-02-09 23:20:23 +00:00
Joaquim VergesandGitHub d6abe00c4e Fix marketplace v3 tests (#563) 2023-02-09 13:58:10 -08:00
af8cf40e4e [SDK, react-core, react] Support any EVM chain (#486)
Co-authored-by: Jonas Daniels <[email protected]>
Co-authored-by: iketw <[email protected]>
Co-authored-by: Jarrod Watts <[email protected]>
2023-02-09 01:08:20 +00:00
iketwandGitHub e85ec3e8f0 [ReactSDK] fix comment (#558) 2023-02-08 23:31:48 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
9919026f38 Version Packages (#554)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-08 13:04:43 -08:00
YashandGitHub c349f44d58 [SDK] Fix tests marketplace-v3 (#557) 2023-02-08 11:21:56 -08:00
Joaquim VergesandGitHub fc7c6b6211 [SDK] Extract util test functions (#556) 2023-02-08 10:13:10 -08:00
Joaquim VergesandGitHub 55b00eff26 [SDK] Add gas estimators to marketplace plugins (#555) 2023-02-07 16:22:55 -08:00
Jonas DanielsandGitHub 76d219e6be [contracts-js, storage] - force release (#553) 2023-02-07 20:00:00 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f13408a33d Version Packages (#552)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-07 11:30:03 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
74b19012c2 Version Packages (#543)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-06 21:02:00 -08:00
Joaquim VergesandGitHub 8f85868324 Fix contracts-js turbo caching issue (#551) 2023-02-07 01:14:11 +00:00
Adam MajmudarandGitHub 448b357ed4 [SDK] Add solidity stack traces to error messages (#550) 2023-02-06 19:21:17 -05:00
YashandGitHub 912738bd0a [CLI] Add staking bases (#549) 2023-02-06 12:01:22 -08:00
f1aecc3049 [SDK] Contracts version update - Marketplace V3 (#544)
Co-authored-by: Joaquim Verges <[email protected]>
2023-02-06 05:40:23 +00:00
Adam MajmudarandGitHub 0b38dac852 [SDK] Add proper error catching for when user has no funds (#547) 2023-02-05 21:28:44 -08:00
Nacho IacovinoandGitHub 440a4ade95 [React] Add more marketplace v3 hooks (#546) 2023-02-04 04:01:35 +00:00
Adam MajmudarandGitHub 29d0c62610 [SDK] Add error info fields to TransactionError (#545) 2023-02-04 03:09:34 +00:00
Adam MajmudarandGitHub f295ec67b4 [SDK] Upgraded error messages on failed transactions (#539) 2023-02-04 00:35:10 +00:00
1686fb4b2c [SDK] marketplace v3 integration (#474)
Co-authored-by: Joaquim Verges <[email protected]>
Co-authored-by: Nacho Iacovino <[email protected]>
Co-authored-by: Nacho Iacovino <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-02-03 13:19:09 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
85dd18e8f0 Version Packages (#541)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-03 10:53:16 -08:00
Joaquim VergesandGitHub ec1f2324c7 [SDK] Solana - Expose getTransaction pagination options + transactions for given wallet (#542) 2023-02-03 10:39:40 -08:00
b59a31c365 Add support for rendering 3D NFTs (#470)
Co-authored-by: Jonas Daniels <[email protected]>
Co-authored-by: Jarrod Watts <[email protected]>
Co-authored-by: Nacho Iacovino <[email protected]>
Co-authored-by: Nacho Iacovino <[email protected]>
2023-02-03 16:38:59 +01:00
Joaquim VergesandGitHub d29f7e78f0 [SDK] expose getMintTransaction() for fine grain control on mint calls (#540) 2023-02-02 19:32:29 -08:00
github-actions[bot]andGitHub 3e2b392b6b Version Packages (#538) 2023-02-02 09:21:36 -08:00
Adam MajmudarandGitHub cf96333fa2 Fix cache error on mkdir (#537) 2023-02-02 17:12:57 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4213cfee77 Bump http-cache-semantics from 4.1.0 to 4.1.1 (#536)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-02 00:26:26 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
25ef4be50f Version Packages (#534)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-01 16:16:07 -08:00
ab1f8bb6f6 [CLI] Modify auto-update process with flag and caching (#528)
Co-authored-by: Jonas Daniels <[email protected]>
2023-02-02 00:04:50 +00:00
Jonas DanielsandGitHub 5f8ec45af7 [SDK] - add burnBatch and getTransactions in solana (#535) 2023-02-01 15:35:22 -08:00
Adam MajmudarandGitHub b45d761f8f [SDK] add creator and royalty settings update for drop (#410) 2023-02-01 15:47:49 -05:00
Adam MajmudarandGitHub 04de5b2783 [SDK] expose getSnapshotEntryForAddress (#471) 2023-02-01 17:34:20 +00:00
Adam MajmudarandGitHub dee4596549 [Auth] Update peerDependencies (#533) 2023-02-01 12:21:16 -05:00
Nacho IacovinoandGitHub 3547901ddd Add all available hooks to React readme (#530) 2023-02-01 02:21:47 +00:00
1056 changed files with 44712 additions and 5398 deletions
+29
View File
@@ -0,0 +1,29 @@
# Order is important; the last matching pattern takes the most precedence.
# Platform team owns everything by default
* @thirdweb-dev/platform
# Devrel owns all markdown files (README etc.)
*.md @thirdweb-dev/devrel
.changeset/
# Shared ownership of the react and react-core packages
packages/react/ @thirdweb-dev/product @thirdweb-dev/platform
packages/react-core/ @thirdweb-dev/product @thirdweb-dev/platform
# Shared ownership of the CLI
packages/cli/ @thirdweb-dev/product @thirdweb-dev/platform
# Chains is owned specifically by jonas for now
packages/chains/ @jnsdls
# .github folder + .changeset + turbo config is owned by joaquim and jonas for now
.github/ @jnsdls @joaquim-verges
.changeset/config.json @jnsdls @joaquim-verges
turbo.json @joaquim-verges @jnsdls
+1 -1
View File
@@ -13,6 +13,6 @@ runs:
- name: Install dependencies
shell: bash
run: yarn install --frozen-lockfile
run: yarn
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
-34
View File
@@ -1,34 +0,0 @@
name: CI
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build and Test
timeout-minutes: 30
runs-on: ubuntu-latest-32
# To use Remote Caching, uncomment the next lines and follow the steps below.
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
uses: ./.github/composite-actions/install
# this already builds anything that changed...
- name: Build & Test
run: yarn test
+117
View File
@@ -0,0 +1,117 @@
name: Build, Lint & Test
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
# trigger on merge group as well (merge queue)
merge_group:
types: [checks_requested]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# To use Remote Caching, uncomment the next lines and follow the steps below.
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
jobs:
build:
name: Build
runs-on: ubuntu-latest-16
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 25
- name: Install
uses: ./.github/composite-actions/install
- run: yarn build
# We use week in the turbo cache key to keep the cache from infinitely growing
- id: get-week
run: echo "WEEK=$(date +%U)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
timeout-minutes: 5
id: cache-build
with:
path: ./*
key: ${{ github.sha }}-${{ github.run_number }}
lint:
name: Lint Packages
runs-on: ubuntu-latest
needs: build
steps:
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16
check-latest: true
- uses: actions/cache@v3
timeout-minutes: 5
id: restore-build
with:
path: ./*
key: ${{ github.sha }}-${{ github.run_number }}
- run: yarn lint
test:
name: Unit Tests
runs-on: ubuntu-latest-16
needs: build
steps:
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16
check-latest: true
- uses: actions/cache@v3
timeout-minutes: 5
id: restore-build
with:
path: ./*
key: ${{ github.sha }}-${{ github.run_number }}
- run: yarn test
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
files: ./packages/sdk/coverage/evm/lcov.info,./packages/sdk/coverage/solana/lcov.info,
e2e:
name: E2E Tests
runs-on: ubuntu-latest-16
needs: build
steps:
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16
check-latest: true
- uses: actions/cache@v3
timeout-minutes: 5
id: restore-build
with:
path: ./*
key: ${{ github.sha }}-${{ github.run_number }}
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run e2e tests
run: yarn e2e
env:
NODE_OPTIONS: "--max_old_space_size=4096"
-29
View File
@@ -1,29 +0,0 @@
name: Integration tests
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
integration-tests:
timeout-minutes: 30
runs-on: ubuntu-latest-32
steps:
- uses: actions/checkout@v3
- name: Install
uses: ./.github/composite-actions/install
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run e2e tests
run: yarn e2e
env:
NODE_OPTIONS: "--max_old_space_size=4096"
-33
View File
@@ -1,33 +0,0 @@
name: Lint
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
timeout-minutes: 15
runs-on: ubuntu-latest
# To use Remote Caching, uncomment the next lines and follow the steps below.
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install
uses: ./.github/composite-actions/install
- name: Lint
run: yarn lint
+2 -2
View File
@@ -40,7 +40,7 @@ jobs:
comment_body: ${{ github.event.comment.body }}
deploy:
runs-on: ubuntu-latest-32
runs-on: ubuntu-latest-16
timeout-minutes: 30
needs: deploy-check
if: needs.deploy-check.outputs.triggered == 'true'
@@ -67,7 +67,7 @@ jobs:
uses: ./.github/composite-actions/install
- name: Build
run: yarn build:release
run: yarn build
- name: Configure npm
run: |
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
release:
name: Release
timeout-minutes: 30
runs-on: ubuntu-latest-32
runs-on: ubuntu-latest-16
steps:
- name: Checkout branch
uses: actions/checkout@v3
-20
View File
@@ -1,20 +0,0 @@
name: Compressed Size
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest-32
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: preactjs/compressed-size-action@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
strip-hash: "\\-(\\w{8})(?:\\.esm|\\.cjs)"
minimum-change-threshold: 100
# exclude source maps, node modules and any test related files
exclude: "{**/*.map,**/node_modules/**,**/test/**}"
+2 -2
View File
@@ -8,8 +8,8 @@
<h1 align="center"><a href='http://thirdweb.com/'>thirdweb</a> JavaScript/TypeScript monorepo</h1>
<p align="center">
<a href="https://github.com/thirdweb-dev/js/actions/workflows/CI.yml">
<img alt="Build Status" src="https://github.com/thirdweb-dev/js/actions/workflows/CI.yml/badge.svg"/>
<a href="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml">
<img alt="Build Status" src="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg"/>
</a>
<a href="https://discord.gg/thirdweb">
<img alt="Join our Discord!" src="https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat"/>
+3 -2
View File
@@ -13,7 +13,7 @@
]
},
"scripts": {
"test": "turbo run test test:evm test:solana",
"test": "turbo run test test:evm test:solana --filter=./packages/*",
"e2e": "turbo run e2e",
"build": "turbo run build --filter=./packages/*",
"build:release": "turbo run build --force --filter=./packages/*",
@@ -38,9 +38,10 @@
"@manypkg/get-packages": "^1.1.3",
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
"eslint": "^8.21.0",
"mocha": "^10.2.0",
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.7.1",
"turbo": "^1.4.6",
"turbo": "^1.8.2",
"yalc": "^1.0.0-pre.53"
},
"manypkg": {
+26
View File
@@ -1,5 +1,31 @@
# @thirdweb-dev/auth
## 3.0.6
### Patch Changes
- [#601](https://github.com/thirdweb-dev/js/pull/601) [`66cf1fb`](https://github.com/thirdweb-dev/js/commit/66cf1fb5c2e8deb486543ee028d786bb8eef6c19) Thanks [@jnsdls](https://github.com/jnsdls)! - upgrade dependencies
## 3.0.5
### Patch Changes
- [#588](https://github.com/thirdweb-dev/js/pull/588) [`f0de81d`](https://github.com/thirdweb-dev/js/commit/f0de81d4b1ba33b2ac73ed16cfdea8fd4eb5da9e) Thanks [@adam-maj](https://github.com/adam-maj)! - Add verify login to auth
## 3.0.4
### Patch Changes
- [#581](https://github.com/thirdweb-dev/js/pull/581) [`4d9e5c6`](https://github.com/thirdweb-dev/js/commit/4d9e5c6193b839fc7f67e7e73e0589dc8c4db90d) Thanks [@adam-maj](https://github.com/adam-maj)! - Remove wallet from next-auth config
- [#576](https://github.com/thirdweb-dev/js/pull/576) [`f6ea971`](https://github.com/thirdweb-dev/js/commit/f6ea97185470f91fc73a117827df51cf8e1c99d1) Thanks [@adam-maj](https://github.com/adam-maj)! - Add support for next-auth to auth and react
## 3.0.3
### Patch Changes
- [#533](https://github.com/thirdweb-dev/js/pull/533) [`dee4596`](https://github.com/thirdweb-dev/js/commit/dee45965496d5d0298944031dd13a4345f9e1683) Thanks [@adam-maj](https://github.com/adam-maj)! - Remove next major version pin on auth
## 3.0.2
## 3.0.1
+8 -2
View File
@@ -5,6 +5,8 @@
</p>
<h1 align="center">thirdweb Auth</h1>
<p align="center">
<a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a>
<a href="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml"><img alt="Build Status" src="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg"/></a>
<a href="https://discord.gg/thirdweb"><img alt="Join our Discord!" src="https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat"/></a>
</p>
@@ -16,9 +18,13 @@
Install the latest version of the SDK with either `npm` or `yarn`:
```shell
npm install @thirdweb-dev/auth @thirdweb-dev/sdk ethers
npm install @thirdweb-dev/auth
```
```shell
yarn add @thirdweb-dev/auth @thirdweb-dev/sdk ethers
yarn add @thirdweb-dev/auth
```
## Documentation
- [Auth Docs](https://portal.thirdweb.com/auth)
+5 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "3.0.2",
"version": "3.0.6",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"exports": {
@@ -50,9 +50,6 @@
"evm/index.ts",
"solana/index.ts"
],
"___experimentalFlags_WILL_CHANGE_IN_PATCH": {
"exports": true
},
"exports": true
},
"devDependencies": {
@@ -66,7 +63,6 @@
"@solana/web3.js": "^1.73.0",
"@swc-node/register": "^1.5.4",
"@swc/core": "^1.3.23",
"@thirdweb-dev/sdk": "*",
"@thirdweb-dev/wallets": "*",
"@types/bs58": "^4.0.1",
"@types/chai": "^4.3.4",
@@ -97,13 +93,12 @@
"peerDependencies": {
"@noble/ed25519": "^1.7.1",
"@solana/web3.js": "^1.73.0",
"@thirdweb-dev/sdk": "*",
"bs58": "^5.0.0",
"cookie-parser": "^1.4.6",
"ethers": ">=5.5.1",
"express": "^4.18.1",
"next": "^12.2.0",
"next-auth": "^4.10.3",
"ethers": "^5",
"express": "^4",
"next": "^12 || ^13",
"next-auth": "^4",
"tweetnacl": "^1.0.3"
},
"peerDependenciesMeta": {
+2 -2
View File
@@ -50,7 +50,8 @@ export class ThirdwebAuth {
statement: parsedOptions?.statement,
version: parsedOptions?.version,
uri:
parsedOptions?.uri || (isBrowser() ? window.location.href : undefined),
parsedOptions?.uri ||
(isBrowser() ? window.location.origin : undefined),
chain_id: chainId,
nonce: parsedOptions?.nonce,
expiration_time:
@@ -129,7 +130,6 @@ export class ThirdwebAuth {
try {
await parsedOptions.validateNonce(payload.payload.nonce);
} catch (err) {
console.log(err);
throw new Error(`Login request nonce is invalid`);
}
}
+28
View File
@@ -0,0 +1,28 @@
import { ThirdwebAuth } from "../core";
import { LoginPayload, VerifyOptions } from "../core/schema";
import { SignerWallet } from "./signer";
import { ethers } from "ethers";
const wallet = new SignerWallet(ethers.Wallet.createRandom());
const authMap = new Map<string, ThirdwebAuth>();
export async function verifyLogin(
domain: string,
payload: LoginPayload,
options?: Omit<VerifyOptions, "domain">,
) {
let auth: ThirdwebAuth;
if (!authMap.has(domain)) {
auth = new ThirdwebAuth(wallet, domain);
authMap.set(domain, auth);
} else {
auth = authMap.get(domain) as ThirdwebAuth;
}
try {
const address = await auth.verify(payload, options);
return { address, error: undefined };
} catch (err: any) {
return { address: undefined, error: err.message };
}
}
+2 -93
View File
@@ -1,93 +1,2 @@
import { SUPPORTED_CHAIN_ID, supportedChains } from "./evm";
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
import { ethers } from "ethers";
const EIP1271_ABI = [
"function isValidSignature(bytes32 _message, bytes _signature) public view returns (bytes4)",
];
const EIP1271_MAGICVALUE = "0x1626ba7e";
export const checkContractWalletSignature = async (
message: string,
signature: string,
address: string,
chainId: number,
): Promise<boolean> => {
const rpcUrl =
supportedChains[chainId as SUPPORTED_CHAIN_ID]?.rpcUrls.default.http[0];
if (!rpcUrl) {
return false;
}
const provider = new ethers.providers.JsonRpcProvider(rpcUrl);
const walletContract = new ethers.Contract(address, EIP1271_ABI, provider);
const hashMessage = ethers.utils.hashMessage(message);
try {
const res = await walletContract.isValidSignature(hashMessage, signature);
return res === EIP1271_MAGICVALUE;
} catch {
return false;
}
};
export class SignerWallet implements GenericAuthWallet {
type: Ecosystem = "evm";
#signer: ethers.Signer;
constructor(signer: ethers.Signer) {
this.#signer = signer;
}
public async getAddress(): Promise<string> {
return this.#signer.getAddress();
}
public async getChainId(): Promise<number> {
return this.#signer.getChainId();
}
public async signMessage(message: string): Promise<string> {
return await this.#signer.signMessage(message);
}
public async verifySignature(
message: string,
signature: string,
address: string,
chainId?: number,
): Promise<boolean> {
const messageHash = ethers.utils.hashMessage(message);
const messageHashBytes = ethers.utils.arrayify(messageHash);
const recoveredAddress = ethers.utils.recoverAddress(
messageHashBytes,
signature,
);
if (recoveredAddress === address) {
return true;
}
// Check if the address is a smart contract wallet
if (chainId !== undefined) {
try {
const isValid = await checkContractWalletSignature(
message,
signature,
address,
chainId || 1,
);
return isValid;
} catch {
// no-op
}
}
return false;
}
}
export class PrivateKeyWallet extends SignerWallet {
constructor(privateKey: string) {
super(new ethers.Wallet(privateKey));
}
}
export * from "./signer";
export * from "./auth";
+93
View File
@@ -0,0 +1,93 @@
import { SUPPORTED_CHAIN_ID, supportedChains } from "./evm";
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
import { ethers } from "ethers";
const EIP1271_ABI = [
"function isValidSignature(bytes32 _message, bytes _signature) public view returns (bytes4)",
];
const EIP1271_MAGICVALUE = "0x1626ba7e";
export const checkContractWalletSignature = async (
message: string,
signature: string,
address: string,
chainId: number,
): Promise<boolean> => {
const rpcUrl =
supportedChains[chainId as SUPPORTED_CHAIN_ID]?.rpcUrls.default.http[0];
if (!rpcUrl) {
return false;
}
const provider = new ethers.providers.JsonRpcProvider(rpcUrl);
const walletContract = new ethers.Contract(address, EIP1271_ABI, provider);
const hashMessage = ethers.utils.hashMessage(message);
try {
const res = await walletContract.isValidSignature(hashMessage, signature);
return res === EIP1271_MAGICVALUE;
} catch {
return false;
}
};
export class SignerWallet implements GenericAuthWallet {
type: Ecosystem = "evm";
#signer: ethers.Signer;
constructor(signer: ethers.Signer) {
this.#signer = signer;
}
public async getAddress(): Promise<string> {
return this.#signer.getAddress();
}
public async getChainId(): Promise<number> {
return this.#signer.getChainId();
}
public async signMessage(message: string): Promise<string> {
return await this.#signer.signMessage(message);
}
public async verifySignature(
message: string,
signature: string,
address: string,
chainId?: number,
): Promise<boolean> {
const messageHash = ethers.utils.hashMessage(message);
const messageHashBytes = ethers.utils.arrayify(messageHash);
const recoveredAddress = ethers.utils.recoverAddress(
messageHashBytes,
signature,
);
if (recoveredAddress === address) {
return true;
}
// Check if the address is a smart contract wallet
if (chainId !== undefined) {
try {
const isValid = await checkContractWalletSignature(
message,
signature,
address,
chainId || 1,
);
return isValid;
} catch {
// no-op
}
}
return false;
}
}
export class PrivateKeyWallet extends SignerWallet {
constructor(privateKey: string) {
super(new ethers.Wallet(privateKey));
}
}
+53 -138
View File
@@ -1,145 +1,60 @@
import { ThirdwebAuth } from "../core";
import { ThirdwebNextAuthConfig } from "./types";
import { serialize } from "cookie";
import {
GetServerSidePropsContext,
NextApiRequest,
NextApiResponse,
} from "next";
import NextAuth, {
NextAuthOptions,
Session,
unstable_getServerSession,
} from "next-auth";
import { LoginPayload, ThirdwebAuth, VerifyOptions } from "../core";
import { SignerWallet } from "../evm";
import { ThirdwebProviderConfig } from "./types";
import { ethers } from "ethers";
import { Awaitable, Session } from "next-auth/core/types";
import { JWT } from "next-auth/jwt/types";
import CredentialsProvider from "next-auth/providers/credentials";
export function ThirdwebNextAuth(cfg: ThirdwebNextAuthConfig) {
const auth = new ThirdwebAuth(cfg.wallet, cfg.domain);
export function ThirdwebAuthProvider(cfg: ThirdwebProviderConfig) {
const wallet = new SignerWallet(ethers.Wallet.createRandom());
const auth = new ThirdwebAuth(wallet, cfg.domain);
function ThirdwebProvider(res: GetServerSidePropsContext["res"]) {
return CredentialsProvider({
name: "ThirdwebAuth",
credentials: {
payload: {
label: "Payload",
type: "text",
placeholder: "",
},
return CredentialsProvider({
name: "Credentials",
credentials: {
payload: {
label: "Payload",
type: "text",
placeholder: "",
},
async authorize({ payload }: any) {
try {
const parsed = JSON.parse(payload);
const token = await auth.generate(parsed);
const user = await auth.authenticate(token);
// Securely set httpOnly cookie on request to prevent XSS on frontend
// And set path to / to enable thirdweb_auth_token usage on all endpoints
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", token, {
path: "/",
httpOnly: true,
secure: true,
sameSite: "none",
}),
);
return { id: user.address, address: user.address };
} catch (err) {
return null;
}
},
});
}
function nextOptions(
req: GetServerSidePropsContext["req"],
res: GetServerSidePropsContext["res"],
): NextAuthOptions {
async function session({
session: _session,
}: {
session: Session;
}): Promise<Session> {
const token = req.cookies.thirdweb_auth_token || "";
},
async authorize({ payload }: any) {
try {
const address = await auth.authenticate(token);
_session.user = { ..._session.user, address } as Session["user"];
return _session;
} catch {
return _session;
const parsedPayload: LoginPayload = JSON.parse(payload);
const verifyOptions: VerifyOptions = {
statement: cfg.authOptions?.statement,
uri: cfg.authOptions?.uri,
version: cfg.authOptions?.version,
chainId: cfg.authOptions?.chainId,
resources: cfg.authOptions?.resources,
validateNonce: async (nonce: string) => {
if (cfg.authOptions?.validateNonce) {
await cfg.authOptions?.validateNonce(nonce);
}
},
};
const address = await auth.verify(parsedPayload, verifyOptions);
return { id: address };
} catch (err) {
return null;
}
}
function signOut() {
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", "", {
path: "/",
expires: new Date(Date.now() + 5 * 1000),
}),
);
}
const providers: NextAuthOptions["providers"] = [
...cfg.nextOptions.providers,
ThirdwebProvider(res),
];
const configSession = cfg.nextOptions.callbacks?.session;
const callbacks: NextAuthOptions["callbacks"] = {
...cfg.nextOptions.callbacks,
session: configSession
? async (params) => {
params.session = await session(params);
return configSession(params);
}
: session,
};
const configSignOut = cfg.nextOptions.events?.signOut;
const events: NextAuthOptions["events"] = {
...cfg.nextOptions.events,
signOut: configSignOut
? async (params) => {
signOut();
return configSignOut(params);
}
: signOut,
};
return {
...cfg.nextOptions,
providers,
callbacks,
events,
};
}
async function getUser(
...args:
| [NextApiRequest, NextApiResponse]
| [GetServerSidePropsContext["req"], GetServerSidePropsContext["res"]]
) {
return unstable_getServerSession(
args[0],
args[1],
nextOptions(args[0], args[1]),
);
}
function NextAuthHandler(...args: [] | [NextApiRequest, NextApiResponse]) {
if (args.length === 0) {
return (req: NextApiRequest, res: NextApiResponse) => {
return NextAuth(req, res, nextOptions(req, res));
};
}
return NextAuth(args[0], args[1], nextOptions(args[0], args[1]));
}
return {
NextAuthHandler,
getUser,
};
},
});
}
export function authSession(params: {
session: Session;
token: JWT;
}): Awaitable<Session> {
if (params.token.sub && ethers.utils.isAddress(params.token.sub)) {
params.session.user = {
...params.session.user,
address: params.token.sub,
};
}
return params.session;
}
+14
View File
@@ -0,0 +1,14 @@
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import NextAuth from "next-auth";
declare module "next-auth" {
interface Session {
user: {
id: string;
username: string;
email: string;
address?: string;
[key: string]: string;
};
}
}
+13
View File
@@ -0,0 +1,13 @@
export type ThirdwebProviderConfig = {
domain: string;
authOptions?: {
statement?: string;
uri?: string;
version?: string;
chainId?: string;
resources?: string[];
validateNonce?:
| ((nonce: string) => void)
| ((nonce: string) => Promise<void>);
};
};
@@ -1,8 +0,0 @@
import { GenericAuthWallet } from "@thirdweb-dev/wallets";
import { NextAuthOptions } from "next-auth";
export type ThirdwebNextAuthConfig = {
domain: string;
wallet: GenericAuthWallet;
nextOptions: NextAuthOptions;
};
+28
View File
@@ -0,0 +1,28 @@
import { ThirdwebAuth } from "../core";
import { LoginPayload, VerifyOptions } from "../core/schema";
import { KeypairWallet } from "./signer";
import { Keypair } from "@solana/web3.js";
const wallet = new KeypairWallet(Keypair.generate());
const authMap = new Map<string, ThirdwebAuth>();
export async function verifyLogin(
domain: string,
payload: LoginPayload,
options?: Omit<VerifyOptions, "domain">,
) {
let auth: ThirdwebAuth;
if (!authMap.has(domain)) {
auth = new ThirdwebAuth(wallet, domain);
authMap.set(domain, auth);
} else {
auth = authMap.get(domain) as ThirdwebAuth;
}
try {
const address = await auth.verify(payload, options);
return { address, error: undefined };
} catch (err: any) {
return { address: undefined, error: err.message };
}
}
+2 -69
View File
@@ -1,69 +1,2 @@
import * as ed25519 from "@noble/ed25519";
import { Signer, Keypair, PublicKey } from "@solana/web3.js";
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
import bs58 from "bs58";
import nacl from "tweetnacl";
export interface SolanaSigner {
publicKey: PublicKey;
signMessage(message: Uint8Array): Promise<Uint8Array>;
}
export class SignerWallet implements GenericAuthWallet {
type: Ecosystem = "solana";
private signer: SolanaSigner;
constructor(signer: SolanaSigner) {
this.signer = signer;
}
public async getAddress(): Promise<string> {
return this.signer.publicKey.toBase58();
}
public async signMessage(message: string): Promise<string> {
const encodedMessage = new TextEncoder().encode(message);
const signedMessage = await this.signer.signMessage(encodedMessage);
const signature = bs58.encode(signedMessage);
return signature;
}
public async verifySignature(
message: string,
signature: string,
address: string,
): Promise<boolean> {
return nacl.sign.detached.verify(
new TextEncoder().encode(message),
bs58.decode(signature),
bs58.decode(address),
);
}
}
class KeypairSigner implements SolanaSigner {
private keypair: Signer;
public publicKey: PublicKey;
constructor(keypair: Signer) {
this.keypair = keypair;
this.publicKey = keypair.publicKey;
}
public async signMessage(message: Uint8Array): Promise<Uint8Array> {
return ed25519.sync.sign(message, this.keypair.secretKey.slice(0, 32));
}
}
export class KeypairWallet extends SignerWallet {
constructor(keypair: Keypair) {
super(new KeypairSigner(keypair));
}
}
export class PrivateKeyWallet extends KeypairWallet {
constructor(privateKey: string) {
super(Keypair.fromSecretKey(bs58.decode(privateKey)));
}
}
export * from "./signer";
export * from "./auth";
+69
View File
@@ -0,0 +1,69 @@
import * as ed25519 from "@noble/ed25519";
import { Signer, Keypair, PublicKey } from "@solana/web3.js";
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
import bs58 from "bs58";
import nacl from "tweetnacl";
export interface SolanaSigner {
publicKey: PublicKey;
signMessage(message: Uint8Array): Promise<Uint8Array>;
}
export class SignerWallet implements GenericAuthWallet {
type: Ecosystem = "solana";
private signer: SolanaSigner;
constructor(signer: SolanaSigner) {
this.signer = signer;
}
public async getAddress(): Promise<string> {
return this.signer.publicKey.toBase58();
}
public async signMessage(message: string): Promise<string> {
const encodedMessage = new TextEncoder().encode(message);
const signedMessage = await this.signer.signMessage(encodedMessage);
const signature = bs58.encode(signedMessage);
return signature;
}
public async verifySignature(
message: string,
signature: string,
address: string,
): Promise<boolean> {
return nacl.sign.detached.verify(
new TextEncoder().encode(message),
bs58.decode(signature),
bs58.decode(address),
);
}
}
class KeypairSigner implements SolanaSigner {
private keypair: Signer;
public publicKey: PublicKey;
constructor(keypair: Signer) {
this.keypair = keypair;
this.publicKey = keypair.publicKey;
}
public async signMessage(message: Uint8Array): Promise<Uint8Array> {
return ed25519.sync.sign(message, this.keypair.secretKey.slice(0, 32));
}
}
export class KeypairWallet extends SignerWallet {
constructor(keypair: Keypair) {
super(new KeypairSigner(keypair));
}
}
export class PrivateKeyWallet extends KeypairWallet {
constructor(privateKey: string) {
super(Keypair.fromSecretKey(bs58.decode(privateKey)));
}
}
+6
View File
@@ -0,0 +1,6 @@
{
"presets": [
"@babel/preset-typescript",
["@babel/preset-env", { "targets": "defaults, not ie 11" }]
]
}
+47
View File
@@ -0,0 +1,47 @@
# @thirdweb-dev/chains
## 0.1.4
### Patch Changes
- [#613](https://github.com/thirdweb-dev/js/pull/613) [`a3472a1`](https://github.com/thirdweb-dev/js/commit/a3472a133175826d052ee986907de014e3cf3ad9) Thanks [@jnsdls](https://github.com/jnsdls)! - Update Chains
- [#616](https://github.com/thirdweb-dev/js/pull/616) [`5712650`](https://github.com/thirdweb-dev/js/commit/5712650074e2415bbea4173a0bb68d727ff2db90) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - new chains
## 0.1.3
### Patch Changes
- [#608](https://github.com/thirdweb-dev/js/pull/608) [`3d644fb`](https://github.com/thirdweb-dev/js/commit/3d644fb8cbae8bc3ee624505831b9f5c6996898a) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
## 0.1.2
### Patch Changes
- [#601](https://github.com/thirdweb-dev/js/pull/601) [`66cf1fb`](https://github.com/thirdweb-dev/js/commit/66cf1fb5c2e8deb486543ee028d786bb8eef6c19) Thanks [@jnsdls](https://github.com/jnsdls)! - upgrade dependencies
## 0.1.1
### Patch Changes
- [#599](https://github.com/thirdweb-dev/js/pull/599) [`f580b8a`](https://github.com/thirdweb-dev/js/commit/f580b8ac06534df24b0194cbc632b4a8fd447611) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - New chains added
## 0.1.0
### Minor Changes
- [`af8cf40`](https://github.com/thirdweb-dev/js/commit/af8cf40e4e1dab6afcc7622f7f9bbcfc6e8534d8) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Initial release for `@thirdweb-dev/chains`.
Use this package to easily configure chains with `@thirdweb-dev/sdk` and `@thirdweb-dev/react`.
### Patch Changes
- [`6a50719`](https://github.com/thirdweb-dev/js/commit/6a507194861b0712fd753c49ac63a8af68eb21d5) Thanks [@jnsdls](https://github.com/jnsdls)! - add `getChainRPCs` export to get a list of RPCs instead of a single RPC via `getChainRPC`
- [`5d25ee1`](https://github.com/thirdweb-dev/js/commit/5d25ee1ab7abb4bfbded283a18f2d7740bb6995d) Thanks [@jnsdls](https://github.com/jnsdls)! - fix `getChainRPC()` utility function logic
- [`d0bcd2c`](https://github.com/thirdweb-dev/js/commit/d0bcd2c5871ca9480efc8d97e27e337eb9bbf830) Thanks [@jnsdls](https://github.com/jnsdls)! - add new chains + localhost special case
- [#589](https://github.com/thirdweb-dev/js/pull/589) [`017b0d5`](https://github.com/thirdweb-dev/js/commit/017b0d56b64651b290440b60789e058afba9f9a5) Thanks [@jnsdls](https://github.com/jnsdls)! - add `minimizeChain` and `configureChain` util functions
- [`500a0e6`](https://github.com/thirdweb-dev/js/commit/500a0e671b3feb01aedd2c34443b682d0934f389) Thanks [@jnsdls](https://github.com/jnsdls)! - add thirdweb rpc to all available chains
+36
View File
@@ -0,0 +1,36 @@
<p align="center">
<br />
<a href="https://thirdweb.com"><img src="https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true" width="200" alt=""/></a>
<br />
</p>
<h1 align="center">thirdweb chains</h1>
<p align="center">
<a href="https://www.npmjs.com/package/@thirdweb-dev/chains"><img src="https://img.shields.io/npm/v/@thirdweb-dev/chains?color=red&label=npm&logo=npm" alt="npm version"/></a>
<a href="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml"><img alt="Build Status" src="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg"/></a>
<a href="https://discord.gg/thirdweb"><img alt="Join our Discord!" src="https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat"/></a>
</p>
<!-- <p align="center"><strong>Best in class Web3 SDK for Browser, Node and Mobile apps</strong></p> -->
<br />
## Installation
```bash
yarn add @thirdweb-dev/chains
```
## Contributing
### Adding / Overriding Chain Data
Chain data is automatically pulled in from [ethereum-lists/chains](https://github.com/ethereum-lists/chains) on every build.
#### Overriding Chain Data
Chain data can be overridden by running `yarn override-chain` and following the prompts.
#### Adding A New Chain
In cases where a chain is not listed in the [ethereum-lists/chains](https://github.com/ethereum-lists/chains) repo, you can add it manually by running `yarn add-chain` and following the prompts.
> Prefer adding chains to the ethereum-lists/chains repo instead of manually adding them here.
+57
View File
@@ -0,0 +1,57 @@
export default {
"name": "Ethereum Mainnet",
"chain": "ETH",
"icon": {
"url": "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png",
"height": 512,
"width": 512,
"format": "png",
"sizes": [
512,
256,
128,
64,
32,
16
]
},
"rpc": [
"https://ethereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
"wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}",
"https://api.mycryptoapi.com/eth",
"https://cloudflare-eth.com"
],
"features": [
{
"name": "EIP1559"
},
{
"name": "EIP155"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://ethereum.org",
"shortName": "eth",
"chainId": 1,
"networkId": 1,
"slip44": 60,
"ens": {
"registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
},
"explorers": [
{
"name": "etherscan",
"url": "https://etherscan.io",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "ethereum"
} as const;
+43
View File
@@ -0,0 +1,43 @@
export default {
"name": "Optimism",
"chain": "ETH",
"rpc": [
"https://optimism.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}",
"https://mainnet.optimism.io/"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://optimism.io",
"shortName": "oeth",
"chainId": 10,
"networkId": 10,
"explorers": [
{
"name": "etherscan",
"url": "https://optimistic.etherscan.io",
"standard": "EIP3091"
}
],
"icon": {
"url": "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/optimism/512.png",
"height": 512,
"width": 512,
"format": "png",
"sizes": [
512,
256,
128,
64,
32,
16
]
},
"testnet": false,
"slug": "optimism"
} as const;
+50
View File
@@ -0,0 +1,50 @@
export default {
"name": "Gnosis",
"chain": "GNO",
"icon": {
"url": "ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm",
"width": 1800,
"height": 1800,
"format": "png"
},
"rpc": [
"https://gnosis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gnosischain.com",
"https://rpc.ankr.com/gnosis",
"https://gnosischain-rpc.gateway.pokt.network",
"https://gnosis-mainnet.public.blastapi.io",
"wss://rpc.gnosischain.com/wss"
],
"faucets": [
"https://gnosisfaucet.com",
"https://faucet.gimlu.com/gnosis",
"https://stakely.io/faucet/gnosis-chain-xdai",
"https://faucet.prussia.dev/xdai"
],
"nativeCurrency": {
"name": "xDAI",
"symbol": "xDAI",
"decimals": 18
},
"infoURL": "https://docs.gnosischain.com",
"shortName": "gno",
"chainId": 100,
"networkId": 100,
"slip44": 700,
"explorers": [
{
"name": "gnosisscan",
"url": "https://gnosisscan.io",
"icon": "gnosisscan",
"standard": "EIP3091"
},
{
"name": "blockscout",
"url": "https://blockscout.com/xdai/mainnet",
"icon": "blockscout",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "gnosis"
} as const;
+31
View File
@@ -0,0 +1,31 @@
export default {
"name": "GTON Mainnet",
"chain": "GTON",
"rpc": [
"https://gton.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gton.network/"
],
"faucets": [],
"nativeCurrency": {
"name": "GCD",
"symbol": "GCD",
"decimals": 18
},
"infoURL": "https://gton.capital",
"shortName": "gton",
"chainId": 1000,
"networkId": 1000,
"explorers": [
{
"name": "GTON Network Explorer",
"url": "https://explorer.gton.network",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-1"
},
"testnet": false,
"slug": "gton"
} as const;
+23
View File
@@ -0,0 +1,23 @@
export default {
"name": "Smart Bitcoin Cash",
"chain": "smartBCH",
"rpc": [
"https://smart-bitcoin-cash.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://smartbch.greyh.at",
"https://rpc-mainnet.smartbch.org",
"https://smartbch.fountainhead.cash/mainnet",
"https://smartbch.devops.cash/mainnet"
],
"faucets": [],
"nativeCurrency": {
"name": "Bitcoin Cash",
"symbol": "BCH",
"decimals": 18
},
"infoURL": "https://smartbch.org/",
"shortName": "smartbch",
"chainId": 10000,
"networkId": 10000,
"testnet": false,
"slug": "smart-bitcoin-cash"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "QuarkChain Mainnet Root",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-root.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://jrpc.mainnet.quarkchain.io:38391"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-r",
"chainId": 100000,
"networkId": 100000,
"testnet": false,
"slug": "quarkchain-root"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 0",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s0-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39000"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s0",
"chainId": 100001,
"networkId": 100001,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/0",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-0"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 1",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s1-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39001"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s1",
"chainId": 100002,
"networkId": 100002,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/1",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-1"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 2",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s2-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39002"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s2",
"chainId": 100003,
"networkId": 100003,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/2",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-2"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 3",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s3-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39003"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s3",
"chainId": 100004,
"networkId": 100004,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/3",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-3"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 4",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-4.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s4-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39004"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s4",
"chainId": 100005,
"networkId": 100005,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/4",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-4"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 5",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-5.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s5-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39005"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s5",
"chainId": 100006,
"networkId": 100006,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/5",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-5"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 6",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-6.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s6-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39006"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s6",
"chainId": 100007,
"networkId": 100007,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/6",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-6"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Mainnet Shard 7",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-shard-7.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s7-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39007"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-s7",
"chainId": 100008,
"networkId": 100008,
"parent": {
"chain": "eip155-100000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-mainnet",
"url": "https://mainnet.quarkchain.io/7",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-shard-7"
} as const;
+29
View File
@@ -0,0 +1,29 @@
export default {
"name": "VeChain",
"chain": "VeChain",
"rpc": [],
"faucets": [],
"nativeCurrency": {
"name": "VeChain",
"symbol": "VET",
"decimals": 18
},
"infoURL": "https://vechain.org",
"shortName": "vechain",
"chainId": 100009,
"networkId": 100009,
"explorers": [
{
"name": "VeChain Stats",
"url": "https://vechainstats.com",
"standard": "none"
},
{
"name": "VeChain Explorer",
"url": "https://explore.vechain.org",
"standard": "none"
}
],
"testnet": false,
"slug": "vechain"
} as const;
+21
View File
@@ -0,0 +1,21 @@
export default {
"name": "Smart Bitcoin Cash Testnet",
"chain": "smartBCHTest",
"rpc": [
"https://smart-bitcoin-cash-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-testnet.smartbch.org",
"https://smartbch.devops.cash/testnet"
],
"faucets": [],
"nativeCurrency": {
"name": "Bitcoin Cash Test Token",
"symbol": "BCHT",
"decimals": 18
},
"infoURL": "http://smartbch.org/",
"shortName": "smartbchtest",
"chainId": 10001,
"networkId": 10001,
"testnet": true,
"slug": "smart-bitcoin-cash-testnet"
} as const;
+26
View File
@@ -0,0 +1,26 @@
export default {
"name": "VeChain Testnet",
"chain": "VeChain",
"rpc": [],
"faucets": [
"https://faucet.vecha.in"
],
"nativeCurrency": {
"name": "VeChain",
"symbol": "VET",
"decimals": 18
},
"infoURL": "https://vechain.org",
"shortName": "vechain-testnet",
"chainId": 100010,
"networkId": 100010,
"explorers": [
{
"name": "VeChain Explorer",
"url": "https://explore-testnet.vechain.org",
"standard": "none"
}
],
"testnet": true,
"slug": "vechain-testnet"
} as const;
+22
View File
@@ -0,0 +1,22 @@
export default {
"name": "Klaytn Testnet Baobab",
"chain": "KLAY",
"rpc": [
"https://klaytn-testnet-baobab.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.baobab.klaytn.net:8651"
],
"faucets": [
"https://baobab.wallet.klaytn.com/access?next=faucet"
],
"nativeCurrency": {
"name": "KLAY",
"symbol": "KLAY",
"decimals": 18
},
"infoURL": "https://www.klaytn.com/",
"shortName": "Baobab",
"chainId": 1001,
"networkId": 1001,
"testnet": true,
"slug": "klaytn-testnet-baobab"
} as const;
+34
View File
@@ -0,0 +1,34 @@
export default {
"name": "Gon Chain",
"chain": "GonChain",
"icon": {
"url": "ipfs://QmPtiJGaApbW3ATZhPW3pKJpw3iGVrRGsZLWhrDKF9ZK18",
"width": 1024,
"height": 1024,
"format": "png"
},
"rpc": [
"https://gon-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node1.testnet.gaiaopen.network",
"http://database1.gaiaopen.network"
],
"faucets": [],
"nativeCurrency": {
"name": "Gon Token",
"symbol": "GT",
"decimals": 18
},
"infoURL": "",
"shortName": "gon",
"chainId": 10024,
"networkId": 10024,
"explorers": [
{
"name": "Gon Explorer",
"url": "https://gonscan.com",
"standard": "none"
}
],
"testnet": true,
"slug": "gon-chain"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "T-EKTA",
"title": "EKTA Testnet T-EKTA",
"chain": "T-EKTA",
"rpc": [
"https://t-ekta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://test.ekta.io:8545"
],
"faucets": [],
"nativeCurrency": {
"name": "T-EKTA",
"symbol": "T-EKTA",
"decimals": 18
},
"infoURL": "https://www.ekta.io",
"shortName": "t-ekta",
"chainId": 1004,
"networkId": 1004,
"icon": {
"url": "ipfs://QmfMd564KUPK8eKZDwGCT71ZC2jMnUZqP6LCtLpup3rHH1",
"width": 2100,
"height": 2100,
"format": "png"
},
"explorers": [
{
"name": "test-ektascan",
"url": "https://test.ektascan.io",
"icon": "ekta",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "t-ekta"
} as const;
+31
View File
@@ -0,0 +1,31 @@
export default {
"name": "Plian Testnet Subchain 1",
"chain": "Plian",
"rpc": [
"https://plian-testnet-subchain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.plian.io/child_test"
],
"faucets": [],
"nativeCurrency": {
"name": "Plian Token",
"symbol": "TPI",
"decimals": 18
},
"infoURL": "https://plian.org/",
"shortName": "plian-testnet-l2",
"chainId": 10067275,
"networkId": 10067275,
"explorers": [
{
"name": "piscan",
"url": "https://testnet.plian.org/child_test",
"standard": "EIP3091"
}
],
"parent": {
"chain": "eip155-16658437",
"type": "L2"
},
"testnet": true,
"slug": "plian-testnet-subchain-1"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "Newton Testnet",
"chain": "NEW",
"rpc": [
"https://newton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc1.newchain.newtonproject.org"
],
"faucets": [],
"nativeCurrency": {
"name": "Newton",
"symbol": "NEW",
"decimals": 18
},
"infoURL": "https://www.newtonproject.org/",
"shortName": "tnew",
"chainId": 1007,
"networkId": 1007,
"testnet": true,
"slug": "newton-testnet"
} as const;
+34
View File
@@ -0,0 +1,34 @@
export default {
"name": "Eurus Mainnet",
"chain": "EUN",
"rpc": [
"https://eurus.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.eurus.network/"
],
"faucets": [],
"nativeCurrency": {
"name": "Eurus",
"symbol": "EUN",
"decimals": 18
},
"infoURL": "https://eurus.network",
"shortName": "eun",
"chainId": 1008,
"networkId": 1008,
"icon": {
"url": "ipfs://QmaGd5L9jGPbfyGXBFhu9gjinWJ66YtNrXq8x6Q98Eep9e",
"width": 471,
"height": 471,
"format": "svg"
},
"explorers": [
{
"name": "eurusexplorer",
"url": "https://explorer.eurus.network",
"icon": "eurus",
"standard": "none"
}
],
"testnet": false,
"slug": "eurus"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "SJATSH",
"chain": "ETH",
"rpc": [
"https://sjatsh.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://geth.free.idcfengye.com"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://sjis.me",
"shortName": "SJ",
"chainId": 10086,
"networkId": 10086,
"testnet": false,
"slug": "sjatsh"
} as const;
+21
View File
@@ -0,0 +1,21 @@
export default {
"name": "EtherInc",
"chain": "ETI",
"rpc": [
"https://etherinc.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.einc.io/jsonrpc/mainnet"
],
"faucets": [],
"nativeCurrency": {
"name": "EtherInc Ether",
"symbol": "ETI",
"decimals": 18
},
"infoURL": "https://einc.io",
"shortName": "eti",
"chainId": 101,
"networkId": 1,
"slip44": 464,
"testnet": false,
"slug": "etherinc"
} as const;
+21
View File
@@ -0,0 +1,21 @@
export default {
"name": "Evrice Network",
"chain": "EVC",
"rpc": [
"https://evrice-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://meta.evrice.com"
],
"faucets": [],
"nativeCurrency": {
"name": "Evrice",
"symbol": "EVC",
"decimals": 18
},
"infoURL": "https://evrice.com",
"shortName": "EVC",
"chainId": 1010,
"networkId": 1010,
"slip44": 1020,
"testnet": false,
"slug": "evrice-network"
} as const;
+22
View File
@@ -0,0 +1,22 @@
export default {
"name": "Blockchain Genesis Mainnet",
"chain": "GEN",
"rpc": [
"https://blockchain-genesis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://eu.mainnet.xixoio.com",
"https://us.mainnet.xixoio.com",
"https://asia.mainnet.xixoio.com"
],
"faucets": [],
"nativeCurrency": {
"name": "GEN",
"symbol": "GEN",
"decimals": 18
},
"infoURL": "https://www.xixoio.com/",
"shortName": "GEN",
"chainId": 10101,
"networkId": 10101,
"testnet": false,
"slug": "blockchain-genesis"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "Soverun Testnet",
"chain": "SVRN",
"icon": {
"url": "ipfs://QmTYazUzgY9Nn2mCjWwFUSLy3dG6i2PvALpwCNQvx1zXyi",
"width": 1154,
"height": 1154,
"format": "png"
},
"rpc": [
"https://soverun-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.soverun.com"
],
"faucets": [
"https://faucet.soverun.com"
],
"nativeCurrency": {
"name": "Soverun",
"symbol": "SVRN",
"decimals": 18
},
"infoURL": "https://soverun.com",
"shortName": "SVRNt",
"chainId": 101010,
"networkId": 101010,
"explorers": [
{
"name": "Soverun",
"url": "https://testnet.soverun.com",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "soverun-testnet"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "Soverun Mainnet",
"chain": "SVRN",
"icon": {
"url": "ipfs://QmTYazUzgY9Nn2mCjWwFUSLy3dG6i2PvALpwCNQvx1zXyi",
"width": 1154,
"height": 1154,
"format": "png"
},
"rpc": [
"https://soverun.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.soverun.com"
],
"faucets": [
"https://faucet.soverun.com"
],
"nativeCurrency": {
"name": "Soverun",
"symbol": "SVRN",
"decimals": 18
},
"infoURL": "https://soverun.com",
"shortName": "SVRNm",
"chainId": 10101010,
"networkId": 10101010,
"explorers": [
{
"name": "Soverun",
"url": "https://explorer.soverun.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "soverun"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "Newton",
"chain": "NEW",
"rpc": [
"https://newton.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://global.rpc.mainnet.newtonproject.org"
],
"faucets": [],
"nativeCurrency": {
"name": "Newton",
"symbol": "NEW",
"decimals": 18
},
"infoURL": "https://www.newtonproject.org/",
"shortName": "new",
"chainId": 1012,
"networkId": 1012,
"testnet": false,
"slug": "newton"
} as const;
+28
View File
@@ -0,0 +1,28 @@
export default {
"name": "Web3Games Testnet",
"chain": "Web3Games",
"icon": {
"url": "ipfs://QmUc57w3UTHiWapNW9oQb1dP57ymtdemTTbpvGkjVHBRCo",
"width": 192,
"height": 192,
"format": "png"
},
"rpc": [
"https://web3games-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc-0.web3games.org/evm",
"https://testnet-rpc-1.web3games.org/evm",
"https://testnet-rpc-2.web3games.org/evm"
],
"faucets": [],
"nativeCurrency": {
"name": "Web3Games",
"symbol": "W3G",
"decimals": 18
},
"infoURL": "https://web3games.org/",
"shortName": "tw3g",
"chainId": 102,
"networkId": 102,
"testnet": true,
"slug": "web3games-testnet"
} as const;
+37
View File
@@ -0,0 +1,37 @@
export default {
"name": "Chiado Testnet",
"chain": "CHI",
"icon": {
"url": "ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm",
"width": 1800,
"height": 1800,
"format": "png"
},
"rpc": [
"https://chiado-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.chiadochain.net",
"https://rpc.eu-central-2.gateway.fm/v3/gnosis/archival/chiado"
],
"faucets": [
"https://gnosisfaucet.com"
],
"nativeCurrency": {
"name": "Chiado xDAI",
"symbol": "xDAI",
"decimals": 18
},
"infoURL": "https://docs.gnosischain.com",
"shortName": "chi",
"chainId": 10200,
"networkId": 10200,
"explorers": [
{
"name": "blockscout",
"url": "https://blockscout.chiadochain.net",
"icon": "blockscout",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "chiado-testnet"
} as const;
+17
View File
@@ -0,0 +1,17 @@
export default {
"name": "Sakura",
"chain": "Sakura",
"rpc": [],
"faucets": [],
"nativeCurrency": {
"name": "Sakura",
"symbol": "SKU",
"decimals": 18
},
"infoURL": "https://clover.finance/sakura",
"shortName": "sku",
"chainId": 1022,
"networkId": 1022,
"testnet": false,
"slug": "sakura"
} as const;
+17
View File
@@ -0,0 +1,17 @@
export default {
"name": "Clover Testnet",
"chain": "Clover",
"rpc": [],
"faucets": [],
"nativeCurrency": {
"name": "Clover",
"symbol": "CLV",
"decimals": 18
},
"infoURL": "https://clover.finance",
"shortName": "tclv",
"chainId": 1023,
"networkId": 1023,
"testnet": true,
"slug": "clover-testnet"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "CLV Parachain",
"chain": "CLV",
"rpc": [
"https://clv-parachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api-para.clover.finance"
],
"faucets": [],
"nativeCurrency": {
"name": "CLV",
"symbol": "CLV",
"decimals": 18
},
"infoURL": "https://clv.org",
"shortName": "clv",
"chainId": 1024,
"networkId": 1024,
"testnet": false,
"slug": "clv-parachain"
} as const;
+27
View File
@@ -0,0 +1,27 @@
export default {
"name": "0XTade",
"chain": "0XTade Chain",
"rpc": [
"https://0xtade.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node.0xtchain.com"
],
"faucets": [],
"nativeCurrency": {
"name": "0XT",
"symbol": "0XT",
"decimals": 18
},
"infoURL": "https://www.0xtrade.finance/",
"shortName": "0xt",
"chainId": 10248,
"networkId": 10248,
"explorers": [
{
"name": "0xtrade Scan",
"url": "https://www.0xtscan.com",
"standard": "none"
}
],
"testnet": false,
"slug": "0xtade"
} as const;
+27
View File
@@ -0,0 +1,27 @@
export default {
"name": "BitTorrent Chain Testnet",
"chain": "BTTC",
"rpc": [
"https://bittorrent-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testrpc.bittorrentchain.io/"
],
"faucets": [],
"nativeCurrency": {
"name": "BitTorrent",
"symbol": "BTT",
"decimals": 18
},
"infoURL": "https://bittorrentchain.io/",
"shortName": "tbtt",
"chainId": 1028,
"networkId": 1028,
"explorers": [
{
"name": "testbttcscan",
"url": "https://testscan.bittorrentchain.io",
"standard": "none"
}
],
"testnet": true,
"slug": "bittorrent-chain-testnet"
} as const;
+33
View File
@@ -0,0 +1,33 @@
export default {
"name": "Conflux eSpace",
"chain": "Conflux",
"rpc": [
"https://conflux-espace.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.confluxrpc.com"
],
"faucets": [],
"nativeCurrency": {
"name": "CFX",
"symbol": "CFX",
"decimals": 18
},
"infoURL": "https://confluxnetwork.org",
"shortName": "cfx",
"chainId": 1030,
"networkId": 1030,
"icon": {
"url": "ipfs://bafkreifj7n24u2dslfijfihwqvpdeigt5aj3k3sxv6s35lv75sxsfr3ojy",
"width": 460,
"height": 576,
"format": "png"
},
"explorers": [
{
"name": "Conflux Scan",
"url": "https://evm.confluxscan.net",
"standard": "none"
}
],
"testnet": false,
"slug": "conflux-espace"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "Crystaleum",
"chain": "crystal",
"rpc": [
"https://crystaleum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.cryptocurrencydevs.org",
"https://rpc.crystaleum.org"
],
"faucets": [],
"nativeCurrency": {
"name": "CRFI",
"symbol": "◈",
"decimals": 18
},
"infoURL": "https://crystaleum.org",
"shortName": "CRFI",
"chainId": 103090,
"networkId": 1,
"icon": {
"url": "ipfs://Qmbry1Uc6HnXmqFNXW5dFJ7To8EezCCjNr4TqqvAyzXS4h",
"width": 150,
"height": 150,
"format": "png"
},
"explorers": [
{
"name": "blockscout",
"url": "https://scan.crystaleum.org",
"icon": "crystal",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "crystaleum"
} as const;
+27
View File
@@ -0,0 +1,27 @@
export default {
"name": "Proxy Network Testnet",
"chain": "Proxy Network",
"rpc": [
"https://proxy-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://128.199.94.183:8041"
],
"faucets": [],
"nativeCurrency": {
"name": "PRX",
"symbol": "PRX",
"decimals": 18
},
"infoURL": "https://theproxy.network",
"shortName": "prx",
"chainId": 1031,
"networkId": 1031,
"explorers": [
{
"name": "proxy network testnet",
"url": "http://testnet-explorer.theproxy.network",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "proxy-network-testnet"
} as const;
+36
View File
@@ -0,0 +1,36 @@
export default {
"name": "Bronos Testnet",
"chain": "Bronos",
"rpc": [
"https://bronos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm-testnet.bronos.org"
],
"faucets": [
"https://faucet.bronos.org"
],
"nativeCurrency": {
"name": "tBRO",
"symbol": "tBRO",
"decimals": 18
},
"infoURL": "https://bronos.org",
"shortName": "bronos-testnet",
"chainId": 1038,
"networkId": 1038,
"icon": {
"url": "ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga",
"width": 500,
"height": 500,
"format": "png"
},
"explorers": [
{
"name": "Bronos Testnet Explorer",
"url": "https://tbroscan.bronos.org",
"standard": "none",
"icon": "bronos"
}
],
"testnet": true,
"slug": "bronos-testnet"
} as const;
+31
View File
@@ -0,0 +1,31 @@
export default {
"name": "Bronos Mainnet",
"chain": "Bronos",
"rpc": [],
"faucets": [],
"nativeCurrency": {
"name": "BRO",
"symbol": "BRO",
"decimals": 18
},
"infoURL": "https://bronos.org",
"shortName": "bronos-mainnet",
"chainId": 1039,
"networkId": 1039,
"icon": {
"url": "ipfs://bafybeifkgtmhnq4sxu6jn22i7ass7aih6ubodr77k6ygtu4tjbvpmkw2ga",
"width": 500,
"height": 500,
"format": "png"
},
"explorers": [
{
"name": "Bronos Explorer",
"url": "https://broscan.bronos.org",
"standard": "none",
"icon": "bronos"
}
],
"testnet": false,
"slug": "bronos"
} as const;
+34
View File
@@ -0,0 +1,34 @@
export default {
"name": "Kaiba Lightning Chain Testnet",
"chain": "tKLC",
"rpc": [
"https://kaiba-lightning-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://klc.live/"
],
"faucets": [],
"nativeCurrency": {
"name": "Kaiba Testnet Token",
"symbol": "tKAIBA",
"decimals": 18
},
"infoURL": "https://kaibadefi.com",
"shortName": "tklc",
"chainId": 104,
"networkId": 104,
"icon": {
"url": "ipfs://bafybeihbsw3ky7yf6llpww6fabo4dicotcgwjpefscoxrppstjx25dvtea",
"width": 932,
"height": 932,
"format": "png"
},
"explorers": [
{
"name": "kaibascan",
"url": "https://kaibascan.io",
"icon": "kaibascan",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "kaiba-lightning-chain-testnet"
} as const;
+33
View File
@@ -0,0 +1,33 @@
export default {
"name": "Web3Games Devnet",
"chain": "Web3Games",
"icon": {
"url": "ipfs://QmUc57w3UTHiWapNW9oQb1dP57ymtdemTTbpvGkjVHBRCo",
"width": 192,
"height": 192,
"format": "png"
},
"rpc": [
"https://web3games-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet.web3games.org/evm"
],
"faucets": [],
"nativeCurrency": {
"name": "Web3Games",
"symbol": "W3G",
"decimals": 18
},
"infoURL": "https://web3games.org/",
"shortName": "dw3g",
"chainId": 105,
"networkId": 105,
"explorers": [
{
"name": "Web3Games Explorer",
"url": "https://explorer-devnet.web3games.org",
"standard": "none"
}
],
"testnet": false,
"slug": "web3games-devnet"
} as const;
+33
View File
@@ -0,0 +1,33 @@
export default {
"name": "Numbers Mainnet",
"chain": "NUM",
"icon": {
"url": "ipfs://bafkreie3ba6ofosjqqiya6empkyw6u5xdrtcfzi2evvyt4u6utzeiezyhi",
"width": 1500,
"height": 1500,
"format": "png"
},
"rpc": [
"https://numbers.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnetrpc.num.network"
],
"faucets": [],
"nativeCurrency": {
"name": "NUM Token",
"symbol": "NUM",
"decimals": 18
},
"infoURL": "https://numbersprotocol.io",
"shortName": "Jade",
"chainId": 10507,
"networkId": 10507,
"explorers": [
{
"name": "ethernal",
"url": "https://mainnet.num.network",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "numbers"
} as const;
+36
View File
@@ -0,0 +1,36 @@
export default {
"name": "Numbers Testnet",
"chain": "NUM",
"icon": {
"url": "ipfs://bafkreie3ba6ofosjqqiya6empkyw6u5xdrtcfzi2evvyt4u6utzeiezyhi",
"width": 1500,
"height": 1500,
"format": "png"
},
"rpc": [
"https://numbers-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnetrpc.num.network"
],
"faucets": [
"https://faucet.avax.network/?subnet=num",
"https://faucet.num.network"
],
"nativeCurrency": {
"name": "NUM Token",
"symbol": "NUM",
"decimals": 18
},
"infoURL": "https://numbersprotocol.io",
"shortName": "Snow",
"chainId": 10508,
"networkId": 10508,
"explorers": [
{
"name": "ethernal",
"url": "https://testnet.num.network",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "numbers-testnet"
} as const;
+34
View File
@@ -0,0 +1,34 @@
export default {
"name": "Velas EVM Mainnet",
"chain": "Velas",
"icon": {
"url": "ipfs://QmNXiCXJxEeBd7ZYGYjPSMTSdbDd2nfodLC677gUfk9ku5",
"width": 924,
"height": 800,
"format": "png"
},
"rpc": [
"https://velas-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evmexplorer.velas.com/rpc",
"https://explorer.velas.com/rpc"
],
"faucets": [],
"nativeCurrency": {
"name": "Velas",
"symbol": "VLX",
"decimals": 18
},
"infoURL": "https://velas.com",
"shortName": "vlx",
"chainId": 106,
"networkId": 106,
"explorers": [
{
"name": "Velas Explorer",
"url": "https://evmexplorer.velas.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "velas-evm"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "Nebula Testnet",
"chain": "NTN",
"icon": {
"url": "ipfs://QmeFaJtQqTKKuXQR7ysS53bLFPasFBcZw445cvYJ2HGeTo",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://nebula-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.rpc.novanetwork.io:9070"
],
"faucets": [
"https://faucet.novanetwork.io"
],
"nativeCurrency": {
"name": "Nebula X",
"symbol": "NBX",
"decimals": 18
},
"infoURL": "https://novanetwork.io",
"shortName": "ntn",
"chainId": 107,
"networkId": 107,
"explorers": [
{
"name": "nebulatestnet",
"url": "https://explorer.novanetwork.io",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "nebula-testnet"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "ThunderCore Mainnet",
"chain": "TT",
"rpc": [
"https://thundercore.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.thundercore.com",
"https://mainnet-rpc.thundertoken.net",
"https://mainnet-rpc.thundercore.io"
],
"faucets": [
"https://faucet.thundercore.com"
],
"nativeCurrency": {
"name": "ThunderCore Token",
"symbol": "TT",
"decimals": 18
},
"infoURL": "https://thundercore.com",
"shortName": "TT",
"chainId": 108,
"networkId": 108,
"slip44": 1001,
"explorers": [
{
"name": "thundercore-viewblock",
"url": "https://viewblock.io/thundercore",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "thundercore"
} as const;
+34
View File
@@ -0,0 +1,34 @@
export default {
"name": "CryptoCoinPay",
"chain": "CCP",
"rpc": [
"https://cryptocoinpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://node106.cryptocoinpay.info:8545",
"ws://node106.cryptocoinpay.info:8546"
],
"faucets": [],
"icon": {
"url": "ipfs://QmPw1ixYYeXvTiRWoCt2jWe4YMd3B5o7TzL18SBEHXvhXX",
"width": 200,
"height": 200,
"format": "png"
},
"nativeCurrency": {
"name": "CryptoCoinPay",
"symbol": "CCP",
"decimals": 18
},
"infoURL": "https://www.cryptocoinpay.co",
"shortName": "CCP",
"chainId": 10823,
"networkId": 10823,
"explorers": [
{
"name": "CCP Explorer",
"url": "https://cryptocoinpay.info",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "cryptocoinpay"
} as const;
+36
View File
@@ -0,0 +1,36 @@
export default {
"name": "Metis Andromeda Mainnet",
"chain": "ETH",
"rpc": [
"https://metis-andromeda.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://andromeda.metis.io/?owner=1088"
],
"faucets": [],
"nativeCurrency": {
"name": "Metis",
"symbol": "METIS",
"decimals": 18
},
"infoURL": "https://www.metis.io",
"shortName": "metis-andromeda",
"chainId": 1088,
"networkId": 1088,
"explorers": [
{
"name": "blockscout",
"url": "https://andromeda-explorer.metis.io",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-1",
"bridges": [
{
"url": "https://bridge.metis.io"
}
]
},
"testnet": false,
"slug": "metis-andromeda"
} as const;
+30
View File
@@ -0,0 +1,30 @@
export default {
"name": "BROChain Mainnet",
"chain": "BRO",
"rpc": [
"https://brochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.brochain.org",
"http://rpc.brochain.org",
"https://rpc.brochain.org/mainnet",
"http://rpc.brochain.org/mainnet"
],
"faucets": [],
"nativeCurrency": {
"name": "Brother",
"symbol": "BRO",
"decimals": 18
},
"infoURL": "https://brochain.org",
"shortName": "bro",
"chainId": 108801,
"networkId": 108801,
"explorers": [
{
"name": "BROChain Explorer",
"url": "https://explorer.brochain.org",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "brochain"
} as const;
+36
View File
@@ -0,0 +1,36 @@
export default {
"name": "Quadrans Blockchain",
"chain": "QDC",
"icon": {
"url": "ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck",
"width": 1024,
"height": 1024,
"format": "png"
},
"rpc": [
"https://quadrans-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.quadrans.io",
"https://rpcna.quadrans.io",
"https://rpceu.quadrans.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Quadrans Coin",
"symbol": "QDC",
"decimals": 18
},
"infoURL": "https://quadrans.io",
"shortName": "quadrans",
"chainId": 10946,
"networkId": 10946,
"explorers": [
{
"name": "explorer",
"url": "https://explorer.quadrans.io",
"icon": "quadrans",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quadrans-blockchain"
} as const;
+37
View File
@@ -0,0 +1,37 @@
export default {
"name": "Quadrans Blockchain Testnet",
"chain": "tQDC",
"icon": {
"url": "ipfs://QmZFiYHnE4TrezPz8wSap9nMxG6m98w4fv7ataj2TfLNck",
"width": 1024,
"height": 1024,
"format": "png"
},
"rpc": [
"https://quadrans-blockchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpctest.quadrans.io",
"https://rpctest2.quadrans.io"
],
"faucets": [
"https://faucetpage.quadrans.io"
],
"nativeCurrency": {
"name": "Quadrans Testnet Coin",
"symbol": "tQDC",
"decimals": 18
},
"infoURL": "https://quadrans.io",
"shortName": "quadranstestnet",
"chainId": 10947,
"networkId": 10947,
"explorers": [
{
"name": "explorer",
"url": "https://explorer.testnet.quadrans.io",
"icon": "quadrans",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "quadrans-blockchain-testnet"
} as const;
+25
View File
@@ -0,0 +1,25 @@
export default {
"name": "MOAC mainnet",
"chain": "MOAC",
"rpc": [],
"faucets": [],
"nativeCurrency": {
"name": "MOAC",
"symbol": "mc",
"decimals": 18
},
"infoURL": "https://moac.io",
"shortName": "moac",
"chainId": 1099,
"networkId": 1099,
"slip44": 314,
"explorers": [
{
"name": "moac explorer",
"url": "https://explorer.moac.io",
"standard": "none"
}
],
"testnet": false,
"slug": "moac"
} as const;
+21
View File
@@ -0,0 +1,21 @@
export default {
"name": "Metadium Mainnet",
"chain": "META",
"rpc": [
"https://metadium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.metadium.com/prod"
],
"faucets": [],
"nativeCurrency": {
"name": "Metadium Mainnet Ether",
"symbol": "META",
"decimals": 18
},
"infoURL": "https://metadium.com",
"shortName": "meta",
"chainId": 11,
"networkId": 11,
"slip44": 916,
"testnet": false,
"slug": "metadium"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "Proton Testnet",
"chain": "XPR",
"rpc": [
"https://proton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://protontestnet.greymass.com/"
],
"faucets": [],
"nativeCurrency": {
"name": "Proton",
"symbol": "XPR",
"decimals": 4
},
"infoURL": "https://protonchain.com",
"shortName": "xpr",
"chainId": 110,
"networkId": 110,
"testnet": true,
"slug": "proton-testnet"
} as const;
+20
View File
@@ -0,0 +1,20 @@
export default {
"name": "QuarkChain Devnet Root",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-root.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://jrpc.devnet.quarkchain.io:38391"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-r",
"chainId": 110000,
"networkId": 110000,
"testnet": false,
"slug": "quarkchain-devnet-root"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 0",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s0-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39900"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s0",
"chainId": 110001,
"networkId": 110001,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/0",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-0"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 1",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s1-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39901"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s1",
"chainId": 110002,
"networkId": 110002,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/1",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-1"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 2",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s2-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39902"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s2",
"chainId": 110003,
"networkId": 110003,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/2",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-2"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 3",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s3-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39903"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s3",
"chainId": 110004,
"networkId": 110004,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/3",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-3"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 4",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-4.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s4-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39904"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s4",
"chainId": 110005,
"networkId": 110005,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/4",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-4"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 5",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-5.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s5-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39905"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s5",
"chainId": 110006,
"networkId": 110006,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/5",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-5"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 6",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-6.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s6-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39906"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s6",
"chainId": 110007,
"networkId": 110007,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/6",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-6"
} as const;
+32
View File
@@ -0,0 +1,32 @@
export default {
"name": "QuarkChain Devnet Shard 7",
"chain": "QuarkChain",
"rpc": [
"https://quarkchain-devnet-shard-7.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet-s7-ethapi.quarkchain.io",
"http://eth-jrpc.devnet.quarkchain.io:39907"
],
"faucets": [],
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"infoURL": "https://www.quarkchain.io",
"shortName": "qkc-d-s7",
"chainId": 110008,
"networkId": 110008,
"parent": {
"chain": "eip155-110000",
"type": "shard"
},
"explorers": [
{
"name": "quarkchain-devnet",
"url": "https://devnet.quarkchain.io/7",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "quarkchain-devnet-shard-7"
} as const;
+28
View File
@@ -0,0 +1,28 @@
export default {
"name": "EtherLite Chain",
"chain": "ETL",
"rpc": [
"https://etherlite-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.etherlite.org"
],
"faucets": [
"https://etherlite.org/faucets"
],
"nativeCurrency": {
"name": "EtherLite",
"symbol": "ETL",
"decimals": 18
},
"infoURL": "https://etherlite.org",
"shortName": "ETL",
"chainId": 111,
"networkId": 111,
"icon": {
"url": "ipfs://QmbNAai1KnBnw4SPQKgrf6vBddifPCQTg2PePry1bmmZYy",
"width": 88,
"height": 88,
"format": "png"
},
"testnet": false,
"slug": "etherlite-chain"
} as const;
+28
View File
@@ -0,0 +1,28 @@
export default {
"name": "WEMIX3.0 Mainnet",
"chain": "WEMIX",
"rpc": [
"https://wemix3-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.wemix.com",
"wss://ws.wemix.com"
],
"faucets": [],
"nativeCurrency": {
"name": "WEMIX",
"symbol": "WEMIX",
"decimals": 18
},
"infoURL": "https://wemix.com",
"shortName": "wemix",
"chainId": 1111,
"networkId": 1111,
"explorers": [
{
"name": "WEMIX Block Explorer",
"url": "https://explorer.wemix.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "wemix3-0"
} as const;
+41
View File
@@ -0,0 +1,41 @@
export default {
"name": "Astra",
"chain": "Astra",
"rpc": [
"https://astra.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.astranaut.io",
"https://rpc1.astranaut.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Astra",
"symbol": "ASA",
"decimals": 18
},
"infoURL": "https://astranaut.io",
"shortName": "astra",
"chainId": 11110,
"networkId": 11110,
"icon": {
"url": "ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf",
"width": 104,
"height": 80,
"format": "png"
},
"explorers": [
{
"name": "Astra EVM Explorer (Blockscout)",
"url": "https://explorer.astranaut.io",
"standard": "none",
"icon": "astra"
},
{
"name": "Astra PingPub Explorer",
"url": "https://ping.astranaut.io/astra",
"standard": "none",
"icon": "astra"
}
],
"testnet": false,
"slug": "astra"
} as const;
+35
View File
@@ -0,0 +1,35 @@
export default {
"name": "WAGMI",
"chain": "WAGMI",
"icon": {
"url": "ipfs://QmNoyUXxnak8B3xgFxErkVfyVEPJUMHBzq7qJcYzkUrPR4",
"width": 1920,
"height": 1920,
"format": "png"
},
"rpc": [
"https://wagmi.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc"
],
"faucets": [
"https://faucet.avax.network/?subnet=wagmi"
],
"nativeCurrency": {
"name": "WAGMI",
"symbol": "WGM",
"decimals": 18
},
"infoURL": "https://subnets-test.avax.network/wagmi/details",
"shortName": "WAGMI",
"chainId": 11111,
"networkId": 11111,
"explorers": [
{
"name": "Avalanche Subnet Explorer",
"url": "https://subnets-test.avax.network/wagmi",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "wagmi"
} as const;
+42
View File
@@ -0,0 +1,42 @@
export default {
"name": "Astra Testnet",
"chain": "Astra",
"rpc": [
"https://astra-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.astranaut.dev"
],
"faucets": [
"https://faucet.astranaut.dev"
],
"nativeCurrency": {
"name": "test-Astra",
"symbol": "tASA",
"decimals": 18
},
"infoURL": "https://astranaut.io",
"shortName": "astra-testnet",
"chainId": 11115,
"networkId": 11115,
"icon": {
"url": "ipfs://QmaBtaukPNNUNjdJSUAwuFFQMLbZX1Pc3fvXKTKQcds7Kf",
"width": 104,
"height": 80,
"format": "png"
},
"explorers": [
{
"name": "Astra EVM Explorer",
"url": "https://explorer.astranaut.dev",
"standard": "EIP3091",
"icon": "astra"
},
{
"name": "Astra PingPub Explorer",
"url": "https://ping.astranaut.dev/astra",
"standard": "none",
"icon": "astra"
}
],
"testnet": true,
"slug": "astra-testnet"
} as const;
+30
View File
@@ -0,0 +1,30 @@
export default {
"name": "WEMIX3.0 Testnet",
"chain": "TWEMIX",
"rpc": [
"https://wemix3-0-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.test.wemix.com",
"wss://ws.test.wemix.com"
],
"faucets": [
"https://wallet.test.wemix.com/faucet"
],
"nativeCurrency": {
"name": "TestnetWEMIX",
"symbol": "tWEMIX",
"decimals": 18
},
"infoURL": "https://wemix.com",
"shortName": "twemix",
"chainId": 1112,
"networkId": 1112,
"explorers": [
{
"name": "WEMIX Testnet Microscope",
"url": "https://microscope.test.wemix.com",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "wemix3-0-testnet"
} as const;

Some files were not shown because too many files have changed in this diff Show More