diff --git a/README.md b/README.md
index ad7daab..28ddb3a 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,14 @@
### 2. How to Get The Token's Resource Link
The token URL will be created with the rule **https://resources.acala.network/{TYPE}/{NAME}.png**
- eg.
- token dot: https://resources.acala.network/tokens/DOT.png
- polkadot network: https://resources.acala.network/networks/polkadot.png
+
+ - token dot: https://resources.acala.network/tokens/DOT.png
+ - polkadot network: https://resources.acala.network/networks/polkadot.png
### 3. Preview All Token and Network
- visit [acala-resource](https://resources.acala.network) page to preview all token and network icons.
+ visit [token-resource](https://resources.acala.network) page to preview all token and network icons.
+
+### 4. Get JSON Results from the API for all Tokens and Networks
+
+ - tokens: https://resources.acala.network/api/tokens
+ - networks: https://resources.acala.network/api/networks
\ No newline at end of file
diff --git a/package.json b/package.json
index 3767e96..d182f3b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "tokens-resource",
- "version": "0.1.0",
+ "version": "1.1.3",
"private": true,
"scripts": {
"dev": "next dev",
diff --git a/pages/api/networks.js b/pages/api/networks.js
new file mode 100644
index 0000000..5d30098
--- /dev/null
+++ b/pages/api/networks.js
@@ -0,0 +1,12 @@
+import networkList from "../../resources/networks.json";
+const PUBLIC_HOST = 'https://token-resources-chi.vercel.app';
+
+Object.entries(networkList).forEach(([key, value]) => {
+ value.icon = PUBLIC_HOST + value.icon
+})
+
+const networks = JSON.stringify(networkList)
+
+export default function handler(req, res) {
+ res.status(200).json(networks)
+}
\ No newline at end of file
diff --git a/pages/api/tokens.js b/pages/api/tokens.js
new file mode 100644
index 0000000..8bb8afe
--- /dev/null
+++ b/pages/api/tokens.js
@@ -0,0 +1,12 @@
+import tokenList from "../../resources/tokens.json";
+const PUBLIC_HOST = 'https://token-resources-chi.vercel.app';
+
+Object.entries(tokenList).forEach(([key, value]) => {
+ value.icon = PUBLIC_HOST + value.icon
+})
+
+const tokens = JSON.stringify(tokenList)
+
+export default function handler(req, res) {
+ res.status(200).json(tokens)
+}
\ No newline at end of file
diff --git a/pages/index.js b/pages/index.js
index 42f2d0a..ccbbe67 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -14,7 +14,7 @@ export default function Home() {
return (
-
Acala Resources
+ Polkadot Ecosystem Token Resources
diff --git a/resources/networks.json b/resources/networks.json
index e56b29e..578f740 100644
--- a/resources/networks.json
+++ b/resources/networks.json
@@ -1,11 +1,23 @@
{
"acala": {
"icon": "/networks/acala.png",
- "name": "acala"
+ "name": "acala",
+ "relayChain": "polkadot",
+ "parachainId": 2000,
+ "endpoint": "wss://acala-rpc.dwellir.com",
+ "subscan": "https://acala.subscan.io",
+ "isEVMChain": true,
+ "isAstarNativeToken": true
},
"astar": {
"icon": "/networks/astar.png",
- "name": "astar"
+ "name": "astar",
+ "relayChain": "polkadot",
+ "parachainId": 2006,
+ "endpoint": "wss://astar-rpc.dwellir.com",
+ "subscan": "https://astar.subscan.io",
+ "isEVMChain": true,
+ "isAstarNativeToken": false
},
"basilisk": {
"icon": "/networks/basilisk.png",
@@ -49,7 +61,12 @@
},
"interlay": {
"icon": "/networks/interlay.png",
- "name": "interlay"
+ "name": "interlay",
+ "relayChain": "polkadot",
+ "parachainId": 2032,
+ "endpoint": "wss://api.interlay.io/parachain",
+ "subscan": "https://interlay.subscan.io",
+ "isAstarNativeToken": false
},
"kabocha": {
"icon": "/networks/kabocha.png",
@@ -57,19 +74,40 @@
},
"karura": {
"icon": "/networks/karura.png",
- "name": "karura"
+ "name": "karura",
+ "relayChain": "kusama",
+ "parachainId": 2000,
+ "endpoint": "wss://karura-rpc.dwellir.com",
+ "subscan": "https://karura.subscan.io",
+ "isEVMChain": true,
+ "isAstarNativeToken": true
},
"khala": {
"icon": "/networks/khala.png",
- "name": "khala"
+ "name": "khala",
+ "relayChain": "kusama",
+ "parachainId": 2004,
+ "endpoint": "wss://khala-rpc.dwellir.com",
+ "subscan": "https://khala.subscan.io",
+ "isAstarNativeToken": true
},
"kintsugi": {
"icon": "/networks/kintsugi.png",
- "name": "kintsugi"
+ "name": "kintsugi",
+ "relayChain": "kusama",
+ "parachainId": 2092,
+ "endpoint": "wss://kintsugi-rpc.dwellir.com",
+ "subscan": "https://kintsugi.subscan.io",
+ "isAstarNativeToken": false
},
"kusama": {
"icon": "/networks/kusama.png",
- "name": "kusama"
+ "name": "kusama",
+ "relayChain": "kusama",
+ "parachainId": 0,
+ "endpoint": "wss://kusama-rpc.polkadot.io",
+ "subscan": "https://kusama.subscan.io",
+ "isAstarNativeToken": false
},
"kylin": {
"icon": "/networks/kylin.png",
@@ -93,7 +131,12 @@
},
"phala": {
"icon": "/networks/phala.png",
- "name": "phala"
+ "name": "phala",
+ "relayChain": "polkadot",
+ "parachainId": 2035,
+ "endpoint": "wss://api.phala.network/ws",
+ "subscan": "https://phala.subscan.io",
+ "isAstarNativeToken": true
},
"pichiu": {
"icon": "/networks/pichiu.png",
@@ -105,7 +148,12 @@
},
"polkadot": {
"icon": "/networks/polkadot.png",
- "name": "polkadot"
+ "name": "polkadot",
+ "relayChain": "polkadot",
+ "parachainId": 0,
+ "endpoint": "wss://polkadot.api.onfinality.io/public-ws",
+ "subscan": "https://polkadot.subscan.io",
+ "isAstarNativeToken": false
},
"rococo": {
"icon": "/networks/rococo.png",
@@ -113,12 +161,33 @@
},
"shiden": {
"icon": "/networks/shiden.png",
- "name": "shiden"
+ "name": "shiden",
+ "relayChain": "kusama",
+ "parachainId": 2007,
+ "endpoint": "wss://shiden-rpc.dwellir.com",
+ "subscan": "https://shiden.subscan.io",
+ "isEVMChain": true,
+ "isWASMChain": true,
+ "isAstarNativeToken": false
},
"statemine": {
"icon": "/networks/statemine.png",
- "name": "statemine"
- },
+ "name": "statemine",
+ "relayChain": "kusama",
+ "parachainId": 1000,
+ "endpoint": "wss://statemine-rpc.polkadot.io",
+ "subscan": "https://statemine.subscan.io",
+ "isAstarNativeToken": false
+ },
+ "statemint": {
+ "icon": "/networks/statemine.png",
+ "name": "statemint",
+ "relayChain": "polkadot",
+ "parachainId": 1000,
+ "endpoint": "wss://statemint-rpc.dwellir.com",
+ "subscan": "https://statemint.subscan.io",
+ "isAstarNativeToken": false
+},
"turing": {
"icon": "/networks/turing.png",
"name": "turing"
@@ -137,7 +206,13 @@
},
"moonriver": {
"icon": "/networks/moonriver.png",
- "name": "moonriver"
+ "name": "moonriver",
+ "relayChain": "kusama",
+ "parachainId": 2023,
+ "endpoint": "wss://wss.api.moonriver.moonbeam.network",
+ "subscan": "https://moonriver.subscan.io",
+ "isEVMChain": true,
+ "isAstarNativeToken": true
},
"kico": {
"icon": "/networks/kico.png",
@@ -145,7 +220,12 @@
},
"crust shadow": {
"icon": "/networks/crust shadow.png",
- "name": "crust shadow"
+ "name": "crust shadow",
+ "relayChain": "kusama",
+ "parachainId": 2012,
+ "endpoint": "wss://rpc2-shadow.crust.network",
+ "subscan": "https://crust.subscan.io",
+ "isAstarNativeToken": true
},
"altair": {
"icon": "/networks/altair.png",
@@ -153,7 +233,13 @@
},
"moonbeam": {
"icon": "/networks/moonbeam.png",
- "name": "moonbeam"
+ "name": "moonbeam",
+ "relayChain": "polkadot",
+ "parachainId": 2004,
+ "endpoint": "wss://wss.api.moonbeam.network",
+ "subscan": "https://moonbeam.subscan.io",
+ "isEVMChain": true,
+ "isAstarNativeToken": true
},
"integritee": {
"icon": "/networks/integritee.png",
diff --git a/resources/tokens.json b/resources/tokens.json
index 05c58d7..f8820b0 100644
--- a/resources/tokens.json
+++ b/resources/tokens.json
@@ -1,7 +1,15 @@
{
"ACA": {
"icon": "/tokens/ACA.png",
- "symbol": "ACA"
+ "symbol": "ACA",
+ "name": "Acala",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551616",
+ "originAssetId": "ACA",
+ "isXcmCompatible": true,
+ "originChain": "acala",
+ "targetChain": ["astar"],
+ "minBridgeAmount": "0.4"
},
"ARIS": {
"icon": "/tokens/ARIS.png",
@@ -9,11 +17,27 @@
},
"ASTR": {
"icon": "/tokens/ASTR.png",
- "symbol": "ASTR"
+ "symbol": "ASTR",
+ "name": "Astar",
+ "isNativeToken": true,
+ "astarAssetId": "0000000000000000000",
+ "originAssetId": "ASTR",
+ "isXcmCompatible": true,
+ "originChain": "astar",
+ "targetChain": ["acala","moonbeam","phala"],
+ "minBridgeAmount": "0.1"
},
"AUSD": {
"icon": "/tokens/AUSD.png",
- "symbol": "AUSD"
+ "symbol": "AUSD",
+ "name": "Acala Dollar",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551617",
+ "originAssetId": "AUSD",
+ "isXcmCompatible": true,
+ "originChain": "acala",
+ "targetChain": ["astar"],
+ "minBridgeAmount": "0.1"
},
"BNB": {
"icon": "/tokens/BNB.png",
@@ -49,7 +73,15 @@
},
"DOT": {
"icon": "/tokens/DOT.png",
- "symbol": "DOT"
+ "symbol": "DOT",
+ "name": "Polkadot",
+ "isNativeToken": true,
+ "astarAssetId": "340282366920938463463374607431768211455",
+ "originAssetId": "",
+ "isXcmCompatible": true,
+ "originChain": "polkadot",
+ "targetChain": ["astar","acala"],
+ "minBridgeAmount": "1.1"
},
"EQ": {
"icon": "/tokens/EQ.png",
@@ -77,7 +109,15 @@
},
"IBTC": {
"icon": "/tokens/IBTC.png",
- "symbol": "IBTC"
+ "symbol": "IBTC",
+ "name": "interBTC",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551620",
+ "originAssetId": "IBTC",
+ "isXcmCompatible": true,
+ "originChain": "interlay",
+ "targetChain": ["astar","acala"],
+ "minBridgeAmount": "0.00000237"
},
"IMBU": {
"icon": "/tokens/IMBU.png",
@@ -85,7 +125,15 @@
},
"INTR": {
"icon": "/tokens/INTR.png",
- "symbol": "INTR"
+ "symbol": "INTR",
+ "name": "Interlay",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551621",
+ "originAssetId": "INTR",
+ "isXcmCompatible": true,
+ "originChain": "interlay",
+ "targetChain": ["astar","acala"],
+ "minBridgeAmount": "0.959"
},
"KAB": {
"icon": "/tokens/KAB.png",
@@ -93,15 +141,39 @@
},
"KAR": {
"icon": "/tokens/KAR.png",
- "symbol": "KAR"
+ "symbol": "KAR",
+ "name": "Karura",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551618",
+ "originAssetId": "KAR",
+ "isXcmCompatible": true,
+ "originChain": "karura",
+ "targetChain": ["shiden"],
+ "minBridgeAmount": "0.11"
},
"KBTC": {
"icon": "/tokens/KBTC.png",
- "symbol": "KBTC"
+ "symbol": "KBTC",
+ "name": "kintsugiBTC",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551621",
+ "originAssetId": "KBTC",
+ "isXcmCompatible": true,
+ "originChain": "kintsugi",
+ "targetChain": ["karura"],
+ "minBridgeAmount": "0.00000237"
},
"KINT": {
"icon": "/tokens/KINT.png",
- "symbol": "KINT"
+ "symbol": "KINT",
+ "name": "Kintsugi",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551622",
+ "originAssetId": "KINT",
+ "isXcmCompatible": true,
+ "originChain": "kintsugi",
+ "targetChain": ["karura"],
+ "minBridgeAmount": "0.345"
},
"KMA": {
"icon": "/tokens/KMA.png",
@@ -109,11 +181,27 @@
},
"KSM": {
"icon": "/tokens/KSM.png",
- "symbol": "KSM"
+ "symbol": "KSM",
+ "name": "Kusama",
+ "isNativeToken": true,
+ "astarAssetId": "340282366920938463463374607431768211455",
+ "originAssetId": "",
+ "isXcmCompatible": true,
+ "originChain": "kusama",
+ "targetChain": ["shiden","karura"],
+ "minBridgeAmount": "0.1"
},
"KUSD": {
"icon": "/tokens/KUSD.png",
- "symbol": "KUSD"
+ "symbol": "KUSD",
+ "name": "Acala Dollar",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551616",
+ "originAssetId": "KUSD",
+ "isXcmCompatible": true,
+ "originChain": "karura",
+ "targetChain": ["shiden"],
+ "minBridgeAmount": "0.1"
},
"KYL": {
"icon": "/tokens/KYL.png",
@@ -125,7 +213,15 @@
},
"LDOT": {
"icon": "/tokens/LDOT.png",
- "symbol": "LDOT"
+ "symbol": "LDOT",
+ "name": "Liquid DOT",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551618",
+ "originAssetId": "LDOT",
+ "isXcmCompatible": true,
+ "originChain": "acala",
+ "targetChain": ["astar"],
+ "minBridgeAmount": "0.13"
},
"LIKE": {
"icon": "/tokens/LIKE.png",
@@ -137,7 +233,15 @@
},
"LKSM": {
"icon": "/tokens/LKSM.png",
- "symbol": "LKSM"
+ "symbol": "LKSM",
+ "name": "Liquid KSM",
+ "isNativeToken": false,
+ "astarAssetId": "18446744073709551619",
+ "originAssetId": "LKSM",
+ "isXcmCompatible": true,
+ "originChain": "karura",
+ "targetChain": ["shiden"],
+ "minBridgeAmount": "0.0024"
},
"LPT0": {
"icon": "/tokens/LPT0.png",
@@ -153,7 +257,15 @@
},
"MOVR": {
"icon": "/tokens/MOVR.png",
- "symbol": "MOVR"
+ "symbol": "MOVR",
+ "name": "Moonriver",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551620",
+ "originAssetId": "MOVR",
+ "isXcmCompatible": true,
+ "originChain": "moonriver",
+ "targetChain": ["shiden","karura"],
+ "minBridgeAmount": "0.007"
},
"NEER": {
"icon": "/tokens/NEER.png",
@@ -165,7 +277,15 @@
},
"PHA": {
"icon": "/tokens/PHA.png",
- "symbol": "PHA"
+ "symbol": "PHA",
+ "name": "Phala",
+ "isNativeToken": true,
+ "astarAssetId": ["18446744073709551622","18446744073709551623"],
+ "originAssetId": "PHA",
+ "isXcmCompatible": true,
+ "originChain": ["phala","khala"],
+ "targetChain": ["astar","shiden","karura"],
+ "minBridgeAmount": "0.2"
},
"QTZ": {
"icon": "/tokens/QTZ.png",
@@ -181,7 +301,15 @@
},
"SDN": {
"icon": "/tokens/SDN.png",
- "symbol": "SDN"
+ "symbol": "SDN",
+ "name": "Shiden",
+ "isNativeToken": true,
+ "astarAssetId": "0000000000000000000",
+ "originAssetId": "SDN",
+ "isXcmCompatible": true,
+ "originChain": "shiden",
+ "targetChain": ["karura"],
+ "minBridgeAmount": "0.1"
},
"TAI": {
"icon": "/tokens/TAI.png",
@@ -201,7 +329,15 @@
},
"USDT": {
"icon": "/tokens/USDT.png",
- "symbol": "USDT"
+ "symbol": "USDT",
+ "name": "Tether USD",
+ "isNativeToken": false,
+ "astarAssetId": "4294969280",
+ "originAssetId": "1984",
+ "isXcmCompatible": true,
+ "originChain": ["statemint","statemine"],
+ "targetChain": ["astar","shiden"],
+ "minBridgeAmount": "0.21"
},
"WBNB": {
"icon": "/tokens/WBNB.png",
@@ -229,7 +365,14 @@
},
"CSM": {
"icon": "/tokens/CSM.png",
- "symbol": "CSM"
+ "symbol": "CSM",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551624",
+ "originAssetId": "CSM",
+ "isXcmCompatible": true,
+ "originChain": "crust shadow",
+ "targetChain": ["shiden"],
+ "minBridgeAmount": "0.5"
},
"KICO": {
"icon": "/tokens/KICO.png",
@@ -249,7 +392,15 @@
},
"GLMR": {
"icon": "/tokens/GLMR.png",
- "symbol": "GLMR"
+ "symbol": "GLMR",
+ "name": "Glimmer",
+ "isNativeToken": true,
+ "astarAssetId": "18446744073709551619",
+ "originAssetId": "GLMR",
+ "isXcmCompatible": true,
+ "originChain": "moonbeam",
+ "targetChain": ["astar"],
+ "minBridgeAmount": "0.2"
},
"tDOT": {
"icon": "/tokens/tDOT.png",
diff --git a/vercel.json b/vercel.json
index 687c515..bb023a6 100644
--- a/vercel.json
+++ b/vercel.json
@@ -8,6 +8,15 @@
"value" : "public, max-age=604800, stale-while-revalidate=2678400"
}
]
+ },
+ {
+ "source": "/api/(.*)",
+ "headers": [
+ { "key": "Access-Control-Allow-Credentials", "value": "true" },
+ { "key": "Access-Control-Allow-Origin", "value": "*" },
+ { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" },
+ { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" }
+ ]
}
]
}