diff --git a/.gitbook/README.md b/.gitbook/README.md
index 97cf030de..a9331616a 100644
--- a/.gitbook/README.md
+++ b/.gitbook/README.md
@@ -2,14 +2,18 @@
**Stable Package Version**
-![Stable Package (all) versions](https://img.shields.io/npm/v/%40injectivelabs/sdk-ts/latest?label=%40injectivelabs%2Fsdk-ts)
-![Supported Node Version](http://img.shields.io/badge/node-16.x-brightgreen.svg)
+![](https://img.shields.io/npm/v/%40injectivelabs/sdk-ts/latest?label=%40injectivelabs%2Fsdk-ts)![Stable Package (all) versions](https://img.shields.io/npm/v/%40injectivelabs/wallet-ts/latest?label=%40injectivelabs%2Fwallet-ts)
+![](https://img.shields.io/npm/v/%40injectivelabs/networks/latest?label=%40injectivelabs%2Fnetworks)![](https://img.shields.io/npm/v/%40injectivelabs/ts-types/latest?label=%40injectivelabs%2Fts-types)![](https://img.shields.io/npm/v/%40injectivelabs/utils/latest?label=%40injectivelabs%2Futils)
-**Latest Package Versions:**
+![Supported Node Version](http://img.shields.io/badge/node-18.x-brightgreen.svg)
+
+**Deprecated Packages:**
-![](https://img.shields.io/npm/v/%40injectivelabs/sdk-ts/next?label=%40injectivelabs%2Fsdk-ts)![](https://img.shields.io/npm/v/%40injectivelabs/wallet-ts/next?label=%40injectivelabs%2Fwallet-ts)![](https://img.shields.io/npm/v/%40injectivelabs/sdk-ui-ts/next?label=%40injectivelabs%2Fsdk-ui-ts)
+![](https://img.shields.io/npm/v/%40injectivelabs/bridge-ts/latest?label=%40injectivelabs%2Fbridge-ts)![](https://img.shields.io/npm/v/%40injectivelabs/contracts/latest?label=%40injectivelabs%2Fcontracts)![](https://img.shields.io/npm/v/%40injectivelabs/sdk-ui-ts/latest?label=%40injectivelabs%2Fsdk-ui-ts)![](https://img.shields.io/npm/v/%40injectivelabs/token-utils/latest?label=%40injectivelabs%2Ftoken-utils)![](https://img.shields.io/npm/v/%40injectivelabs%2Ftoken-metadata/latest?label=%40injectivelabs%2Ftoken-metadata)
+
+**Latest Package Versions:**
-![](https://img.shields.io/npm/v/%40injectivelabs/utils/next?label=%40injectivelabs%2Futils)![](https://img.shields.io/npm/v/%40injectivelabs/token-metadata/next?label=%40injectivelabs%2Ftoken-metadata)![](https://img.shields.io/npm/v/%40injectivelabs/networks/next?label=%40injectivelabs%2Fnetworks)
+![](https://img.shields.io/npm/v/%40injectivelabs/sdk-ts/next?label=%40injectivelabs%2Fsdk-ts)![](https://img.shields.io/npm/v/%40injectivelabs/wallet-ts/next?label=%40injectivelabs%2Fwallet-ts)![](https://img.shields.io/npm/v/%40injectivelabs/networks/next?label=%40injectivelabs%2Fnetworks)![](https://img.shields.io/npm/v/%40injectivelabs/ts-types/next?label=%40injectivelabs%2Fts-types)![](https://img.shields.io/npm/v/%40injectivelabs/utils/next?label=%40injectivelabs%2Futils)
_**Note:** The latest versions are published using the `next` tag. For stable versions use the `latest` tag or check npm registry for the latest stable version._
diff --git a/.gitbook/SUMMARY.md b/.gitbook/SUMMARY.md
index 039e1b903..a75d5a960 100644
--- a/.gitbook/SUMMARY.md
+++ b/.gitbook/SUMMARY.md
@@ -1,93 +1,96 @@
# Table of contents
-* [Getting Started](README.md)
- * [Technical Concepts](readme/technical-concepts.md)
- * [Application Concepts](readme/application-concepts.md)
- * [Assets (Token Metadata)](readme/token-metadata/README.md)
- * [Creating Tokens](readme/token-metadata/creating-tokens.md)
- * [Denom Client](readme/token-metadata/denom-client.md)
- * [Networks](readme/networks.md)
- * [CosmJs Support](readme/getting-started-cosmjs.md)
- * [Running examples](readme/running-examples.md)
-* [Wallet](wallet/README.md)
- * [Accounts](wallet/wallet-accounts.md)
- * [Wallet Connections](wallet/wallet-connections.md)
- * [Wallet Strategy](wallet/wallet-wallet-strategy.md)
-* [Querying](querying/README.md)
- * [Indexer](querying/querying-api/README.md)
- * [Account](querying/querying-api/querying-indexer-account.md)
- * [Auction](querying/querying-api/querying-indexer-auction.md)
- * [Derivatives](querying/querying-api/querying-indexer-derivatives.md)
- * [Explorer](querying/querying-api/querying-indexer-explorer.md)
- * [Insurance Funds](querying/querying-api/querying-indexer-insurance-funds.md)
- * [Markets](querying/querying-api/querying-indexer-markets.md)
- * [Leaderboard](querying/querying-api/querying-indexer-leaderboard.md)
- * [Ninja](querying/querying-api/querying-indexer-mito.md)
- * [Oracle](querying/querying-api/querying-indexer-oracle.md)
- * [Portfolio](querying/querying-api/querying-indexer-portfolio.md)
- * [Spot](querying/querying-api/querying-indexer-spot.md)
- * [Transaction](querying/querying-api/querying-indexer-transaction.md)
- * [Streaming](querying/querying-api/streaming/README.md)
- * [Account](querying/querying-api/streaming/streaming-indexer-account.md)
- * [Auction](querying/querying-api/streaming/streaming-indexer-auction.md)
- * [Derivatives](querying/querying-api/streaming/streaming-indexer-derivatives.md)
- * [Oracle](querying/querying-api/streaming/streaming-indexer-oracle.md)
- * [Portfolio](querying/querying-api/streaming/streaming-indexer-portfolio.md)
- * [Spot](querying/querying-api/streaming/streaming-indexer-spot.md)
- * [Explorer](querying/querying-api/streaming/streaming-indexer-explorer.md)
- * [Chain](querying/querying-chain/README.md)
- * [Auction](querying/querying-chain/querying-chain-auction-module.md)
- * [Auth](querying/querying-chain/querying-chain-auth-module.md)
- * [Bank](querying/querying-chain/querying-chain-bank-module.md)
- * [Distribution](querying/querying-chain/querying-chain-distribution.md)
- * [Exchange](querying/querying-chain/querying-chain-exchange.md)
- * [Governance](querying/querying-chain/querying-chain-governance.md)
- * [IBC](querying/querying-chain/querying-chain-ibc.md)
- * [Mint](querying/querying-chain/querying-chain-mint.md)
- * [Insurance Funds](querying/querying-chain/querying-chain-insurance-funds.md)
- * [Oracle](querying/querying-chain/querying-chain-oracle.md)
- * [Peggy](querying/querying-chain/querying-chain-peggy.md)
- * [Staking](querying/querying-chain/querying-chain-staking.md)
- * [Tendermint](querying/querying-chain/querying-chain-tendermint.md)
- * [Wasm](querying/querying-chain/querying-chain-wasm.md)
- * [WasmX](querying/querying-chain/querying-chain-wasmx.md)
- * [Token Factory](querying/querying-chain/token-factory.md)
- * [Ethereum (GraphQL)](querying/querying-ethereum.md)
-* [Transactions](transactions/README.md)
- * [Cosmos](transactions/transactions-cosmos/README.md)
- * [Ledger through Keplr Wallet](transactions/transactions-cosmos/ledger-through-keplr-wallet.md)
- * [Ethereum](transactions/ethereum.md)
- * [Ethereum Ledger](transactions/ethereum-ledger.md)
- * [MsgBroadcaster](transactions/msgbroadcaster.md)
- * [Private Key](transactions/private-key.md)
- * [Web3 Gateway](transactions/web3-gateway.md)
-* [Core Modules](core-modules/README.md)
- * [Auction](core-modules/auction.md)
- * [AuthZ](core-modules/authz.md)
- * [Feegrant](core-modules/feegrant.md)
- * [Bank](core-modules/bank.md)
- * [Distribution](core-modules/distribution.md)
- * [Exchange](core-modules/exchange.md)
- * [Governance](core-modules/governance.md)
- * [IBC](core-modules/ibc.md)
- * [Insurance](core-modules/insurance.md)
- * [Token Factory](core-modules/token-factory.md)
- * [Peggy](core-modules/peggy.md)
- * [Staking](core-modules/staking.md)
- * [Wasm](core-modules/wasm.md)
-* [Bridge](bridge/README.md)
- * [Ethereum](bridge/ethereum.md)
- * [IBC](bridge/ibc.md)
- * [Wormhole](bridge/wormhole.md)
-* [Contracts](contracts/README.md)
- * [Injective Name Service](contracts/injective-name-service.md)
-* [Building dApps](building-dapps/README.md)
- * [Configuring Nuxt](building-dapps/configuring-nuxt.md)
- * [Configuring React](building-dapps/configuring-react.md)
- * [dApps Examples](building-dapps/dapps-examples/README.md)
- * [Smart Contract](building-dapps/smart-contract.md)
- * [DEX](building-dapps/dex.md)
- * [Bridge](building-dapps/bridge.md)
-* [Calculations](calculations/README.md)
- * [Min Price Tick Size](calculations/min-price-tick-size.md)
- * [Min Quantity Tick Size](calculations/min-quantity-tick-size.md)
+- [Getting Started](README.md)
+ - [Technical Concepts](readme/technical-concepts.md)
+ - [Application Concepts](readme/application-concepts.md)
+ - [Assets](readme/assets/README.md)
+ - [Creating Tokens](readme/assets/creating-tokens.md)
+ - [Denom Client (deprecated)](readme/assets/denom-client.md)
+ - [Injective-lists](readme/assets/injective-list.md)
+ - [Token Price]()
+ - [Networks](readme/networks.md)
+ - [CosmJs Support](readme/getting-started-cosmjs.md)
+ - [Running examples](readme/running-examples.md)
+- [Wallet](wallet/README.md)
+ - [Accounts](wallet/wallet-accounts.md)
+ - [Wallet Connections](wallet/wallet-connections.md)
+ - [Wallet Strategy](wallet/wallet-wallet-strategy.md)
+ - [Offchain (Arbitrary) Data](wallet/offchain-arbitrary-data.md)
+- [Querying](querying/README.md)
+ - [Indexer](querying/querying-api/README.md)
+ - [Account](querying/querying-api/querying-indexer-account.md)
+ - [Auction](querying/querying-api/querying-indexer-auction.md)
+ - [Derivatives](querying/querying-api/querying-indexer-derivatives.md)
+ - [Explorer](querying/querying-api/querying-indexer-explorer.md)
+ - [Insurance Funds](querying/querying-api/querying-indexer-insurance-funds.md)
+ - [Markets](querying/querying-api/querying-indexer-markets.md)
+ - [Leaderboard](querying/querying-api/querying-indexer-leaderboard.md)
+ - [Mito](querying/querying-api/querying-indexer-mito.md)
+ - [Oracle](querying/querying-api/querying-indexer-oracle.md)
+ - [Portfolio](querying/querying-api/querying-indexer-portfolio.md)
+ - [Spot](querying/querying-api/querying-indexer-spot.md)
+ - [Web3Gw Transactions](querying/querying-api/querying-indexer-transaction.md)
+ - [Streaming](querying/querying-api/streaming/README.md)
+ - [Account](querying/querying-api/streaming/streaming-indexer-account.md)
+ - [Auction](querying/querying-api/streaming/streaming-indexer-auction.md)
+ - [Derivatives](querying/querying-api/streaming/streaming-indexer-derivatives.md)
+ - [Oracle](querying/querying-api/streaming/streaming-indexer-oracle.md)
+ - [Portfolio](querying/querying-api/streaming/streaming-indexer-portfolio.md)
+ - [Spot](querying/querying-api/streaming/streaming-indexer-spot.md)
+ - [Explorer](querying/querying-api/streaming/streaming-indexer-explorer.md)
+ - [Chain](querying/querying-chain/README.md)
+ - [Auction](querying/querying-chain/querying-chain-auction-module.md)
+ - [Auth](querying/querying-chain/querying-chain-auth-module.md)
+ - [Bank](querying/querying-chain/querying-chain-bank-module.md)
+ - [Distribution](querying/querying-chain/querying-chain-distribution.md)
+ - [Exchange](querying/querying-chain/querying-chain-exchange.md)
+ - [Governance](querying/querying-chain/querying-chain-governance.md)
+ - [IBC](querying/querying-chain/querying-chain-ibc.md)
+ - [Mint](querying/querying-chain/querying-chain-mint.md)
+ - [Insurance Funds](querying/querying-chain/querying-chain-insurance-funds.md)
+ - [Oracle](querying/querying-chain/querying-chain-oracle.md)
+ - [Peggy](querying/querying-chain/querying-chain-peggy.md)
+ - [Staking](querying/querying-chain/querying-chain-staking.md)
+ - [Tendermint](querying/querying-chain/querying-chain-tendermint.md)
+ - [Wasm](querying/querying-chain/querying-chain-wasm.md)
+ - [WasmX](querying/querying-chain/querying-chain-wasmx.md)
+ - [Token Factory](querying/querying-chain/token-factory.md)
+ - [Ethereum (GraphQL)](querying/querying-ethereum.md)
+- [Transactions](transactions/README.md)
+ - [Cosmos](transactions/transactions-cosmos/README.md)
+ - [Ledger through Keplr Wallet](transactions/transactions-cosmos/ledger-through-keplr-wallet.md)
+ - [Ethereum](transactions/ethereum.md)
+ - [Ethereum Ledger](transactions/ethereum-ledger.md)
+ - [MsgBroadcaster](transactions/msgbroadcaster.md)
+ - [Private Key](transactions/private-key.md)
+ - [Web3 Gateway](transactions/web3-gateway.md)
+- [Core Modules](core-modules/README.md)
+ - [Auction](core-modules/auction.md)
+ - [AuthZ](core-modules/authz.md)
+ - [Bank](core-modules/bank.md)
+ - [Distribution](core-modules/distribution.md)
+ - [Exchange](core-modules/exchange.md)
+ - [Feegrant](core-modules/feegrant.md)
+ - [Governance](core-modules/governance.md)
+ - [IBC](core-modules/ibc.md)
+ - [Insurance](core-modules/insurance.md)
+ - [Peggy](core-modules/peggy.md)
+ - [Staking](core-modules/staking.md)
+ - [Tokenfactory](core-modules/token-factory.md)
+ - [Wasm](core-modules/wasm.md)
+- [Bridge](bridge/README.md)
+ - [Ethereum](bridge/ethereum.md)
+ - [IBC](bridge/ibc.md)
+ - [Wormhole](bridge/wormhole.md)
+- [Contracts](contracts/README.md)
+ - [Injective Name Service](contracts/injective-name-service.md)
+- [Building dApps](building-dapps/README.md)
+ - [Configuring Nuxt](building-dapps/configuring-nuxt.md)
+ - [Configuring React](building-dapps/configuring-react.md)
+ - [dApps Examples](building-dapps/dapps-examples/README.md)
+ - [Smart Contract](building-dapps/smart-contract.md)
+ - [DEX](building-dapps/dex.md)
+ - [Bridge](building-dapps/bridge.md)
+- [Calculations](calculations/README.md)
+ - [Min Price Tick Size](calculations/min-price-tick-size.md)
+ - [Min Quantity Tick Size](calculations/min-quantity-tick-size.md)
diff --git a/.gitbook/bridge/ethereum.md b/.gitbook/bridge/ethereum.md
index f8147fa27..7249f460a 100644
--- a/.gitbook/bridge/ethereum.md
+++ b/.gitbook/bridge/ethereum.md
@@ -24,22 +24,22 @@ On a basic level, the Peggy module mints new tokens on the Injective Chain upon
To transfer from Ethereum to Injective you have to make a Web3 Transaction and interact with the Peggy contract on Ethereum. There are two steps required to make a transfer:
-1. As we are basically locking our ERC20 assets on the Peggy Contract which lives on Ethereum, we need to set an allowance for the assets we are transferring to the Peggy Contract. We have an [example](https://github.com/InjectiveLabs/injective-ts/blob/1fbc2577b9278a62d1676041d6e502e12f5880a8/packages/sdk-ui-ts/src/services/web3/Web3Composer.ts#L41-L91) here about how to make this transaction and you can use any web3 provider to sign and broadcast the transaction to the Ethereum Network.
-2. After the allowance is set, we need to call the `sendToInjective` function on the Peggy Contract with the desired amount and asset that we want to transfer to the Injective Chain, an example can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/1fbc2577b9278a62d1676041d6e502e12f5880a8/packages/sdk-ui-ts/src/services/web3/Web3Composer.ts#L93-L156). Once we get the transaction, we can use a web3 provider to sign and broadcast the transaction to the Ethereum Network. Once the transaction is confirmed, it’ll take a couple of minutes for the assets to show on the Injective Chain.
+1. As we are basically locking our ERC20 assets on the Peggy Contract which lives on Ethereum, we need to set an allowance for the assets we are transferring to the Peggy Contract. We have an [example](https://github.com/InjectiveLabs/injective-ts/blob/1fbc2577b9278a62d1676041d6e502e12f5880a8/deprecated/sdk-ui-ts/src/services/web3/Web3Composer.ts#L41-L91) here about how to make this transaction and you can use any web3 provider to sign and broadcast the transaction to the Ethereum Network.
+2. After the allowance is set, we need to call the `sendToInjective` function on the Peggy Contract with the desired amount and asset that we want to transfer to the Injective Chain, an example can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/1fbc2577b9278a62d1676041d6e502e12f5880a8/deprecated/sdk-ui-ts/src/services/web3/Web3Composer.ts#L93-L156). Once we get the transaction, we can use a web3 provider to sign and broadcast the transaction to the Ethereum Network. Once the transaction is confirmed, it’ll take a couple of minutes for the assets to show on the Injective Chain.
Couple of notes about the examples above:
-* The destination address (if you want to build the transaction yourself) is in the following format
+- The destination address (if you want to build the transaction yourself) is in the following format
```ts
- "0x000000000000000000000000{ETHEREUM_ADDRESS_HERE_WITHOUT_0X_PREFIX}"
- // example
- "0x000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30"
+'0x000000000000000000000000{ETHEREUM_ADDRESS_HERE_WITHOUT_0X_PREFIX}'
+// example
+'0x000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30'
```
where the Ethereum address is the corresponding Ethereum address of the destination Injective address.
-* `const web3 = walletStrategy.getWeb3()` `walletStrategy` is an abstraction that we’ve built which supports a lot of wallets which can be used to sign and broadcast transactions (both on Ethereum and on the Injective Chain), more details can be found in the documentation of the npm package [@injectivelabs/wallet-ts](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/wallet-ts). Obviously, this is just an example and you can use the web3 package directly, or any web3 provider to handle the transaction.
+- `const web3 = walletStrategy.getWeb3()` `walletStrategy` is an abstraction that we’ve built which supports a lot of wallets which can be used to sign and broadcast transactions (both on Ethereum and on the Injective Chain), more details can be found in the documentation of the npm package [@injectivelabs/wallet-ts](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/wallet-ts). Obviously, this is just an example and you can use the web3 package directly, or any web3 provider to handle the transaction.
```ts
import { PeggyContract } from '@injectivelabs/contracts'
@@ -51,7 +51,7 @@ const contract = new PeggyContract({
})
```
-* The snippet below instantiates a PeggyContract instance which can easily `estimateGas` and `sendTransaction` using the `web3` we provide to the contract’s constructor. Its implementation can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/contracts/src/contracts/Peggy.ts). Obviously, this is just an example and you can use the web3 package directly + the ABI of the contract to instantiate the contract, and then handle the logic of signing and broadcasting the transaction using some web3 provider.
+- The snippet below instantiates a PeggyContract instance which can easily `estimateGas` and `sendTransaction` using the `web3` we provide to the contract’s constructor. Its implementation can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/contracts/src/contracts/Peggy.ts). Obviously, this is just an example and you can use the web3 package directly + the ABI of the contract to instantiate the contract, and then handle the logic of signing and broadcasting the transaction using some web3 provider.
### From Injective to Ethereum
@@ -66,7 +66,7 @@ There is a bridgeFee included in these transactions to incentivize Validators to
Here is an example implementation that prepares the transaction, uses a privateKey to sign it and finally, broadcasts it to Injective:
```ts
-import { getNetworkInfo, Network } from "@injectivelabs/networks";
+import { getNetworkInfo, Network } from '@injectivelabs/networks'
import {
TxClient,
PrivateKey,
@@ -74,33 +74,34 @@ import {
MsgSendToEth,
DEFAULT_STD_FEE,
ChainRestAuthApi,
- createTransaction } from "@injectivelabs/sdk-ts";
-import { BigNumberInBase } from "@injectivelabs/utils";
+ createTransaction,
+} from '@injectivelabs/sdk-ts'
+import { BigNumberInBase } from '@injectivelabs/utils'
/** MsgSendToEth Example */
-(async () => {
- const network = getNetworkInfo(Network.Mainnet); // Gets the rpc/lcd endpoints
+;(async () => {
+ const network = getNetworkInfo(Network.Mainnet) // Gets the rpc/lcd endpoints
const privateKeyHash =
- "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3";
- const privateKey = PrivateKey.fromPrivateKey(privateKeyHash);
- const injectiveAddress = privateKey.toBech32();
- const ethAddress = privateKey.toHex();
- const publicKey = privateKey.toPublicKey().toBase64();
+ 'f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3'
+ const privateKey = PrivateKey.fromPrivateKey(privateKeyHash)
+ const injectiveAddress = privateKey.toBech32()
+ const ethAddress = privateKey.toHex()
+ const publicKey = privateKey.toPublicKey().toBase64()
/** Account Details **/
- const accountDetails = await new ChainRestAuthApi(
- network.sentryHttpApi
- ).fetchAccount(injectiveAddress);
+ const accountDetails = await new ChainRestAuthApi(network.rest).fetchAccount(
+ injectiveAddress,
+ )
/** Prepare the Message */
const amount = {
amount: new BigNumberInBase(0.01).toWei().toFixed(),
- denom: "inj",
- };
- const bridgeAmount = {
+ denom: 'inj',
+ }
+ const bridgeFee = {
amount: new BigNumberInBase(0.01).toWei().toFixed(),
- denom: "inj",
- };
+ denom: 'inj',
+ }
const msg = MsgSendToEth.fromJSON({
amount,
@@ -117,39 +118,40 @@ import { BigNumberInBase } from "@injectivelabs/utils";
sequence: parseInt(accountDetails.account.base_account.sequence, 10),
accountNumber: parseInt(
accountDetails.account.base_account.account_number,
- 10
+ 10,
),
chainId: network.chainId,
- });
+ })
/** Sign transaction */
- const signature = await privateKey.sign(Buffer.from(signBytes));
+ const signature = await privateKey.sign(Buffer.from(signBytes))
/** Append Signatures */
- txRaw.signatures = [signature];
+ txRaw.signatures = [signature]
/** Calculate hash of the transaction */
- console.log(`Transaction Hash: ${TxClient.hash(txRaw)}`);
+ console.log(`Transaction Hash: ${TxClient.hash(txRaw)}`)
- const txService = new TxRestClient(network.sentryHttpApi);
+ const txService = new TxRestClient(network.rest)
/** Simulate transaction */
- const simulationResponse = await txService.simulate(txRaw);
+ const simulationResponse = await txService.simulate(txRaw)
+
console.log(
`Transaction simulation response: ${JSON.stringify(
- simulationResponse.gasInfo
- )}`
- );
+ simulationResponse.gasInfo,
+ )}`,
+ )
/** Broadcast transaction */
- const txResponse = await txService.broadcast(txRaw);
+ const txResponse = await txService.broadcast(txRaw)
if (txResponse.code !== 0) {
- console.log(`Transaction failed: ${txResponse.rawLog}`);
+ console.log(`Transaction failed: ${txResponse.rawLog}`)
} else {
console.log(
- `Broadcasted transaction hash: ${JSON.stringify(txResponse.txhash)}`
- );
+ `Broadcasted transaction hash: ${JSON.stringify(txResponse.txhash)}`,
+ )
}
-})();
+})()
```
diff --git a/.gitbook/building-dapps/configuring-nuxt.md b/.gitbook/building-dapps/configuring-nuxt.md
index 4bd927422..fe0c895a7 100644
--- a/.gitbook/building-dapps/configuring-nuxt.md
+++ b/.gitbook/building-dapps/configuring-nuxt.md
@@ -30,8 +30,7 @@ $ yarn add @bangjelkoski/node-stdlib-browser
$ yarn add -D @bangjelkoski/vite-plugin-node-polyfills
```
-Make sure you are using the `vue-tsc@1.8.8
-`, `nuxt@^3.8.1`, `typescript@^5.0.4` versions.
+Make sure you are using the `vue-tsc@1.8.8` , `nuxt@^3.8.1`, `typescript@^5.0.4` versions.
**Buffer**
@@ -134,15 +133,10 @@ export default defineNuxtConfig({
// Vite related config
vite: {
- define: {
- "process.env": JSON.stringify({}),
- "process.env.DEBUG": JSON.stringify(process.env.DEBUG),
- },
-
plugins: [ // setting up node + crypto polyfils + vite TS path resolution
tsconfigPaths(),
nodePolyfills({ protocolImports: false })
- ],
+ ],
build: {
sourcemap: false, // we don't generate
diff --git a/.gitbook/contracts/injective-name-service.md b/.gitbook/contracts/injective-name-service.md
index 83550b407..ad123b798 100644
--- a/.gitbook/contracts/injective-name-service.md
+++ b/.gitbook/contracts/injective-name-service.md
@@ -2,9 +2,9 @@
Within this section, we will look at how to query the Injective name service contracts.
-## Abstraction Service
+## Abstraction Service (deprecated)
-You can use our `InjNameService` [abstraction](../../packages/sdk-ui-ts/src/services/nameservice/InjNameService.ts) to query the smart contracts with a single method call. Below this example, you can also find the raw implementation on how to query the smart contracts in case you need more flexibility.
+You can use our `InjNameService` [abstraction](../../deprecated/sdk-ui-ts/src/service/injNameService.ts) to query the smart contracts with a single method call. Below this example, you can also find the raw implementation on how to query the smart contracts in case you need more flexibility.
import { getNetworkEndpoints, Network } from '@injectivelabs/network'
import { InjNameService } from '@injectivelabs/sdk-ui-ts'
@@ -13,7 +13,7 @@ const injNameService = new InjNameService(Network.Testnet)
const name = 'ninja.inj'
// Fetch the address for the particular name
-const addressForName = await injNameService.fetchInjAddress(name)
+const addressForName = await injNameService.fetchInjAddress(name)
// Fetch the name for the particular address
const nameFromAddress = await injNameService.fetchInjName(addressForName)
@@ -25,25 +25,27 @@ Example code snippets to resolve .inj domain name.
### Domain Resolution
-* Get resolver address
+- Get resolver address
```ts
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { ChainId } from '@injectivelabs/ts-types'
+import {
+ Network,
+ getNetworkEndpoints,
+ getInjNameRegistryContractForNetwork,
+} from '@injectivelabs/networks'
import {
ChainGrpcWasmApi,
QueryResolverAddress,
- InjNameServiceQueryTransformer
- INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK,
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK,
+ InjNameServiceQueryTransformer,
} from '@injectivelabs/sdk-ts'
const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)
-const registryContractAddress = INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK[Network.Testnet]
-const reverseResolverContractAddress =
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK[Network.Testnet]
+const registryContractAddress = getInjNameRegistryContractForNetwork(
+ Network.Testnet,
+)
+
const node = ''
const query = new QueryResolverAddress({ node }).toPayload()
@@ -53,43 +55,51 @@ const response = await chainGrpcWasmApi.fetchSmartContractState(
query,
)
-const resolverAddress = InjNameServiceQueryTransformer.resolverAddressResponseToResolverAddress(response)
+const resolverAddress =
+ InjNameServiceQueryTransformer.resolverAddressResponseToResolverAddress(
+ response,
+ )
console.log(resolverAddress)
```
-* Get address for .inj domain name.
+- Get address for .inj domain name.
```ts
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { ChainId } from '@injectivelabs/ts-types'
import {
- nameToNode,
- normalizeName,
+ Network,
+ getNetworkEndpoints,
+ getInjNameReverseResolverContractForNetwork,
+} from '@injectivelabs/networks'
+import {
ChainGrpcWasmApi,
QueryInjectiveAddress,
- InjNameServiceQueryTransformer
- INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK,
+ InjNameServiceQueryTransformer,
} from '@injectivelabs/sdk-ts'
+import { nameToNode, normalizeName } from '@injectivelabs/sdk-ts'
const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)
-const registryContractAddress = INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK[Network.Testnet]
+const reverseResolverContractAddress =
+ getInjNameReverseResolverContractForNetwork(Network.Testnet)
+
const name = 'allen.inj'
-const resolverAddress = '' /** from above query */
const normalizedName = normalizeName(name)
-const node = nameToNode(normalized)
+const node = nameToNode(normalizedName)
const query = new QueryInjectiveAddress({ node }).toPayload()
const response = await chainGrpcWasmApi.fetchSmartContractState(
- resolverAddress,
+ reverseResolverContractAddress,
query,
)
-const injectiveAddress = InjNameServiceQueryTransformer.injectiveAddressResponseToInjectiveAddress(response)
+const injectiveAddress =
+ InjNameServiceQueryTransformer.injectiveAddressResponseToInjectiveAddress(
+ response,
+ )
if (!injectiveAddress) {
throw new Error(`address not found for ${name}`)
@@ -100,27 +110,26 @@ console.log(injectiveAddress)
### Reverse Resolution
-* Get the primary name for injective address.
+- Get the primary name for injective address.
```ts
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { ChainId } from '@injectivelabs/ts-types'
import {
- nameToNode,
- normalizeName,
+ QueryInjName,
ChainGrpcWasmApi,
- QueryInjectiveAddress,
InjNameServiceQueryTransformer
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK,
} from '@injectivelabs/sdk-ts'
+ import {
+ Network,
+ getNetworkEndpoints,
+ getInjNameReverseResolverContractForNetwork
+} from '@injectivelabs/networks'
const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)
const reverseResolverContractAddress =
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK[Network.Testnet]
+ getInjNameReverseResolverContractForNetwork(Network.Testnet)
const injectiveAddress = ''
-const resolverAddress = '' /** from above query */
const query = new QueryInjName({ address: injectiveAddress }).toPayload()
diff --git a/.gitbook/core-modules/README.md b/.gitbook/core-modules/README.md
index f7968321b..737d88611 100644
--- a/.gitbook/core-modules/README.md
+++ b/.gitbook/core-modules/README.md
@@ -2,21 +2,20 @@
Within this section, we are going to explore the core modules of the Injective chain and provide examples of how to make and broadcast transactions for each of the Messages defined on-chain.
-
-
### Topics
-| Topic | Description |
-| ------------------------------- | ------------------------------------------------ |
-| [Auction](auction.md) | Use for the buy-back-and-burn on chain mechanism |
-| [AuthZ](authz.md) | Used for granting account priveledges |
-| [Feegrant](feegrant.md) | Used for granting fee allowance priveledges |
-| [Bank](bank.md) | Used for managing users assets (funds) |
-| [Exchange](exchange.md) | Used for the exchange primitives |
-| [Distribution](distribution.md) | Used for on-chain distribution/minting |
-| [Gov](governance.md) | Used for on-chain governance |
-| [IBC](ibc.md) | Used for cross-Cosmos chain transfers |
-| [Insurance](insurance.md) | Used for on-chain insurance funds |
-| [Staking](staking.md) | Used for on-chain staking |
-| [Peggy](peggy.md) | Used for the Injective <> Ethereum Bridge |
-| [Wasm](wasm.md) | Used for interacting with the Cosmwasm Layer |
+| Topic | Description |
+| -------------------------------- | ---------------------------------------------------- |
+| [Auction](auction.md) | Used for the buy-back-and-burn on chain mechanism |
+| [AuthZ](authz.md) | Used for granting account priveledges |
+| [Bank](bank.md) | Used for managing users assets (funds) |
+| [Distribution](distribution.md) | Used for on-chain distribution/minting |
+| [Exchange](exchange.md) | Used for the exchange primitives |
+| [Feegrant](feegrant.md) | Used for granting fee allowance priveledges |
+| [Governance](governance.md) | Used for on-chain governance |
+| [IBC](ibc.md) | Used for cross-Cosmos chain transfers |
+| [Insurance](insurance.md) | Used for on-chain insurance funds |
+| [Peggy](peggy.md) | Used for the Injective <> Ethereum Bridge |
+| [Staking](staking.md) | Used for on-chain staking |
+| [Tokenfactory](token-factory.md) | Used for creating and managing `tokenfactory` tokens |
+| [Wasm](wasm.md) | Used for interacting with the Cosmwasm Layer |
diff --git a/.gitbook/core-modules/auction.md b/.gitbook/core-modules/auction.md
index 965e3c02a..590839c8a 100644
--- a/.gitbook/core-modules/auction.md
+++ b/.gitbook/core-modules/auction.md
@@ -11,48 +11,42 @@ import {
MsgBid,
ChainGrpcAuctionApi,
MsgBroadcasterWithPk,
-} from "@injectivelabs/sdk-ts";
-import { ChainId } from "@injectivelabs/ts-types";
-import { BigNumberInBase } from "@injectivelabs/utils";
-import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
-import { INJ_DENOM, UiAuctionTransformer } from "@injectivelabs/sdk-ui-ts";
+} from '@injectivelabs/sdk-ts'
+import { ChainId } from '@injectivelabs/ts-types'
+import { INJ_DENOM, BigNumberInBase } from '@injectivelabs/utils'
+import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-const endpointsForNetwork = getNetworkEndpoints(Network.Mainnet);
-const auctionApi = new ChainGrpcAuctionApi(endpointsForNetwork.grpc);
+const endpointsForNetwork = getNetworkEndpoints(Network.Mainnet)
+const auctionApi = new ChainGrpcAuctionApi(endpointsForNetwork.grpc)
-const injectiveAddress = "inj1...";
+const injectiveAddress = 'inj1...'
/* format amount for bid, note that bid amount has to be higher than the current highest bid */
const amount = {
denom: INJ_DENOM,
amount: new BigNumberInBase(1).toWei(),
-};
+}
-const latestAuctionModuleState = await auctionApi.fetchModuleState();
-const uiLatestAuctionModuleState =
- UiAuctionTransformer.grpcAuctionModuleStateToModuleState(
- latestAuctionModuleState
- );
-const latestRound = uiLatestAuctionModuleState.auctionRound;
+const latestAuctionModuleState = await auctionApi.fetchModuleState()
+const latestRound = latestAuctionModuleState.auctionRound
/* create message in proto format */
const msg = MsgBid.fromJSON({
amount,
injectiveAddress,
- round: latestRound
-});
+ round: latestRound,
+})
-const privateKey = "0x...";
+const privateKey = '0x...'
/* broadcast transaction */
const txHash = await new MsgBroadcasterWithPk({
-network: Network.Mainnet,
-privateKey,
+ network: Network.Mainnet,
+ privateKey,
}).broadcast({
-msgs: msg
+ msgs: msg,
})
-
-console.log(txHash);
+console.log(txHash)
```
### Burn Auction Deposit via MsgExternalTransfer
@@ -61,20 +55,20 @@ If you would like to grow the burn auction's pool size, you can directly send fu
Notes:
-* You will need to send funds to the pool's subaccount `0x1111111111111111111111111111111111111111111111111111111111111111`.
-* Be aware that any funds you send will be reflected in the next auction, not the current one.
-* You cannot transfer from your default subaccountId since that balance is now associated with your Injective address in the bank module. Therefore, in order for `MsgExternalTransfer` to work, you will need to transfer from a non-default subaccountId.
+- You will need to send funds to the pool's subaccount `0x1111111111111111111111111111111111111111111111111111111111111111`.
+- Be aware that any funds you send will be reflected in the next auction, not the current one.
+- You cannot transfer from your default subaccountId since that balance is now associated with your Injective address in the bank module. Therefore, in order for `MsgExternalTransfer` to work, you will need to transfer from a non-default subaccountId.
How to find the subaccountId that you will be transferring from:
-* you can query your existing subaccountIds via the [account portfolio api](../querying/querying-api/querying-indexer-portfolio.md).
+- you can query your existing subaccountIds via the [account portfolio api](../querying/querying-api/querying-indexer-portfolio.md).
How to use funds that are currently associated with your Injective Address in bank module:
-* If you have existing non-default subaccounts, you'll want to do a [MsgDeposit](broken-reference) to one of your existing non-default subaccountIds and use that subaccountId as the `srcSubaccountId` below.
-* If you don't have existing non-default subaccounts, you can do a [MsgDeposit](broken-reference) to a new default subaccountId, which would be done via importing `getSubaccountId` from `sdk-ts` and setting the `subaccountId` field in [MsgDeposit](broken-reference) to `getSubaccountId(injectiveAddress, 1)`.
+- If you have existing non-default subaccounts, you'll want to do a[ MsgDeposit ](exchange.md#msgdeposit)to one of your existing non-default subaccountIds and use that subaccountId as the `srcSubaccountId` below.
+- If you don't have existing non-default subaccounts, you can do a [MsgDeposit](exchange.md#msgdeposit) to a new default subaccountId, which would be done via importing `getSubaccountId` from `sdk-ts` and setting the `subaccountId` field in [MsgDeposit](exchange.md#msgdeposit) to `getSubaccountId(injectiveAddress, 1)`.
-For more info, check out the [burn auction pool docs](https://docs.injective.network/develop/tech-concepts/auction\_pool/).
+For more info, check out the [burn auction pool docs](https://docs.injective.network/develop/tech-concepts/auction_pool/).
```ts
import {
@@ -83,21 +77,21 @@ import {
MsgBroadcasterWithPk,
} from '@injectivelabs/sdk-ts'
import { BigNumberInBase } from '@injectivelabs/utils'
-import { Network } from '@injectivelabs/networks'
+import { Network } from '@injectivelabs/networks'
-const denomClient = new DenomClient(Network.Mainnet);
+const denomClient = new DenomClient(Network.Mainnet)
const injectiveAddress = 'inj1...'
const srcSubaccountId = '0x...'
const POOL_SUBACCOUNT_ID = `0x1111111111111111111111111111111111111111111111111111111111111111`
-const USDT_TOKEN_SYMBOL='USDT'
-const tokenMeta = denomClient.getTokenMetaDataBySymbol(USDT_TOKEN_SYMBOL);
-const tokenDenom = `peggy${tokenMeta.erc20.address}`;
+const USDT_TOKEN_SYMBOL = 'USDT'
+const tokenMeta = denomClient.getTokenMetaDataBySymbol(USDT_TOKEN_SYMBOL)
+const tokenDenom = `peggy${tokenMeta.erc20.address}`
/* format amount to add to the burn auction pool */
const amount = {
denom: tokenDenom,
- amount: new BigNumberInBase(1).toWei(tokenMeta.decimals).toFixed()
+ amount: new BigNumberInBase(1).toWei(tokenMeta.decimals).toFixed(),
}
/* create message in proto format */
@@ -105,19 +99,18 @@ const msg = MsgExternalTransfer.fromJSON({
amount,
srcSubaccountId,
injectiveAddress,
- dstSubaccountId: POOL_SUBACCOUNT_ID
+ dstSubaccountId: POOL_SUBACCOUNT_ID,
})
const privateKey = '0x...'
/* broadcast transaction */
const txHash = await new MsgBroadcasterWithPk({
-network: Network.Mainnet,
-privateKey
+ network: Network.Mainnet,
+ privateKey,
}).broadcast({
-msgs: msg
+ msgs: msg,
})
-
console.log(txHash)
```
diff --git a/.gitbook/core-modules/bank.md b/.gitbook/core-modules/bank.md
index e3ccdaf91..07866f60a 100644
--- a/.gitbook/core-modules/bank.md
+++ b/.gitbook/core-modules/bank.md
@@ -6,11 +6,11 @@ In addition, the bank module tracks and provides query support for the total sup
### Messages
-Let's explore (and provide examples) the Messages that the Bank module exports and we can use to interact with the Injective chain.
+Let's explore (and provide examples) the messages that the Bank module exports and we can use to interact with the Injective chain.
### MsgSend
-This Message is used to send coins from one address to another.
+This message is used to send coins from one address to another. Any TokenFactory token and Peggy token can be used here. To transfer CW20 tokens, see the `MsgExecuteContract` section [here](https://docs.ts.injective.network/core-modules/wasm#msgexecutecontract-transfer).
```ts
import { MsgSend, MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'
@@ -38,3 +38,61 @@ const txHash = await new MsgBroadcasterWithPk({
console.log(txHash)
```
+
+### MsgMultiSend
+
+This message is used to send to multiple recipients from multiple senders.
+
+```typescript
+import { MsgMultiSend, MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'
+import { BigNumberInBase, BigNumberInWei } from '@injectivelabs/utils'
+import { Network } from '@injectivelabs/networks'
+
+const privateKey = '0x...'
+const injectiveAddress = 'inj1...'
+const denom = 'inj'
+const decimals = 18
+const records = [/** add records here */] as {
+ address: string;
+ amount: string; /* in a human readable number */
+}[];
+const totalToSend = records.reduce((acc, record) => {
+ return acc.plus(new BigNumberInBase(record.amount).toWei(decimals));
+}, new BigNumberInWei(0));
+
+const msg = MsgMultiSend.fromJSON({
+ inputs: [
+ {
+ address: injectiveAddress,
+ coins: [
+ {
+ denom,
+ amount: totalToSend.toFixed(),
+ },
+ ],
+ },
+ ],
+ outputs: records.map((record) => {
+ return {
+ address: record.address,
+ coins: [
+ {
+ amount: new BigNumberInBase(record.amount)
+ .toWei(decimals)
+ .toFixed(),
+ denom,
+ },
+ ],
+ };
+ }),
+});
+
+const txHash = await new MsgBroadcasterWithPk({
+ privateKey,
+ network: Network.Testnet
+}).broadcast({
+ msgs: msg
+})
+
+console.log(txHash)
+```
diff --git a/.gitbook/core-modules/ibc.md b/.gitbook/core-modules/ibc.md
index 1ab09d1de..735604a35 100644
--- a/.gitbook/core-modules/ibc.md
+++ b/.gitbook/core-modules/ibc.md
@@ -4,7 +4,7 @@
This message is used to send coins from the sender's Bank module on Injective to the receiver's Bank module on another Cosmos chain through IBC, which is Cosmos's Inter-Blockchain Communication Protocol. Note that Injective only supports mainnet transfers across IBC for most networks.
-Application to application communication in IBC is conducted over channels, which route between an application module on one chain, and the corresponding application module on another one. More info on IBC channels can be found at https://tutorials.cosmos.network/academy/3-ibc/3-channels.html. A list of canonical channel Ids for mainnet transfers to and from Injective can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/src/ibc/canonicalChannelsToChainMap.ts). Also noteworthy is that the application module on each chain has a portId to designate the type of module on each end. For example, `transfer` is the portId designating the transfer of ICS-20 tokens between bank modules.
+Application to application communication in IBC is conducted over channels, which route between an application module on one chain, and the corresponding application module on another one. More info on IBC channels can be found at https://tutorials.cosmos.network/academy/3-ibc/3-channels.html. A list of canonical channel Ids for mainnet transfers to and from Injective can be found [here](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/src/ibc/canonicalChannelsToChainMap.ts). Also noteworthy is that the application module on each chain has a portId to designate the type of module on each end. For example, `transfer` is the portId designating the transfer of ICS-20 tokens between bank modules.
In this example, we will transfer ATOM from Injective to CosmosHub
diff --git a/.gitbook/core-modules/peggy.md b/.gitbook/core-modules/peggy.md
index ade9c4a49..86b21aec1 100644
--- a/.gitbook/core-modules/peggy.md
+++ b/.gitbook/core-modules/peggy.md
@@ -10,48 +10,52 @@ Note that a $10 USD bridge fee will be charged for this transaction to cover for
```ts
import {
- DenomClientAsync,
+ TokenPrice,
MsgSendToEth,
+ DenomClientAsync,
MsgBroadcasterWithPk,
-} from "@injectivelabs/sdk-ts";
-import { TokenPrice, TokenService } from "@injectivelabs/sdk-ui-ts";
-import { BigNumberInBase } from "@injectivelabs/utils";
-import { ChainId } from "@injectivelabs/ts-types";
-import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
+} from '@injectivelabs/sdk-ts'
+import { BigNumberInBase } from '@injectivelabs/utils'
+import { ChainId } from '@injectivelabs/ts-types'
+import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
+// refer to https://docs.ts.injective.network/readme/assets/injective-list
+import { tokens } from '../data/tokens.json'
-const tokenPrice = new TokenPrice(COINGECKO_OPTIONS);
+export const tokenFactoryStatic = new TokenFactoryStatic(
+ tokens as TokenStatic[],
+)
+
+const tokenPriceMap = new TokenPrice(Network.Mainnet)
const tokenService = new TokenService({
chainId: ChainId.Mainnet,
network: Network.Mainnet,
-});
+})
-const ETH_BRIDGE_FEE_IN_USD = 10;
-const endpointsForNetwork = getNetworkEndpoints(Network.Mainnet);
+const ETH_BRIDGE_FEE_IN_USD = 10
+const endpointsForNetwork = getNetworkEndpoints(Network.Mainnet)
const denomClient = new DenomClientAsync(Network.Mainnet, {
endpoints: endpointsForNetwork,
-});
+})
-const tokenSymbol = "INJ";
-const tokenMeta = denomClient.getTokenMetaDataBySymbol(tokenSymbol);
+const tokenSymbol = 'INJ'
+const tokenMeta = tokenFactoryStatic.toToken(tokenSymbol)
-const amount = 1;
-const injectiveAddress = "inj1...";
-const destinationAddress = "0x..."; // ethereum address
-const tokenDenom = `peggy${tokenMeta.erc20.address}`;
+const amount = 1
+const injectiveAddress = 'inj1...'
+const destinationAddress = '0x...' // ethereum address
+const tokenDenom = `peggy${tokenMeta.erc20.address}`
if (!tokenMeta) {
- return;
+ return
}
-const tokenUsdPrice = tokenService.fetchUsdTokenPrice(tokenMeta
-.coinGeckoId);
+const tokenUsdPrice = tokenPriceMap[tokenMeta.coinGeckoId]
const amountToFixed = new BigNumberInBase(amount)
- .toWei(tokenMeta
-.decimals)
- .toFixed();
+ .toWei(tokenMeta.decimals)
+ .toFixed()
const bridgeFeeInToken = new BigNumberInBase(ETH_BRIDGE_FEE_IN_USD)
.dividedBy(tokenUsdPrice)
- .toFixed();
+ .toFixed()
const msg = MsgSendToEth.fromJSON({
injectiveAddress,
@@ -64,12 +68,12 @@ const msg = MsgSendToEth.fromJSON({
denom: tokenDenom,
amount: bridgeFeeInToken,
},
-});
+})
const txHash = await new MsgBroadcasterWithPk({
privateKey,
- network: Network.Mainnet
+ network: Network.Mainnet,
}).broadcast({
- msgs: msg
-});
+ msgs: msg,
+})
```
diff --git a/.gitbook/core-modules/token-factory.md b/.gitbook/core-modules/token-factory.md
index db25b4c88..172d165bd 100644
--- a/.gitbook/core-modules/token-factory.md
+++ b/.gitbook/core-modules/token-factory.md
@@ -31,6 +31,8 @@ const subdenom = "inj-test";
const msg = MsgCreateDenom.fromJSON({
subdenom,
+ symbol: 'InjTest',
+ name: 'Inj Testing',
sender: injectiveAddress,
});
@@ -127,7 +129,6 @@ const injectiveAddress = "inj1...";
const privateKey = "0x...";
const subdenom = 'inj-test'
const denom = `factory/${injectiveAddress}/${subdenom}`;
-const amountToBurn = 1_000_000_000
const denomUnitsIfTokenHas0Decimals = [
{
@@ -148,17 +149,15 @@ const denomUnitsIfTokenHas6Decimals = [
aliases: [subdenom]
},
]
-const displayIfTokenHas6Decimals = subdenom
-const displayIfTokenHas0Decimals =
const msg = MsgSetDenomMetadata.fromJSON({
sender: injectiveAddress,
metadata: {
base: denom, /** the base denom */
description: '', /** description of your token */
- display: subdenom, /** the display alias of your token on UIs (it's the denom of the unit with highest decimals) */,
- name: '', /** the name of your token */,
- symbol: '' /** the symbol of your token */,
+ display: subdenom, /** the display alias of your token on UIs (it's the denom of the unit with highest decimals) */
+ name: '', /** the name of your token */
+ symbol: '', /** the symbol of your token */
uri: '' /** the logo of your token, should be hosted on IPFS and should be a small webp image */
denomUnits: denomUnitsIfTokenHas6Decimals /** choose if you want to have 6 or 0 decimals for the token */
}
diff --git a/.gitbook/core-modules/wasm.md b/.gitbook/core-modules/wasm.md
index a257716e7..8d99a9447 100644
--- a/.gitbook/core-modules/wasm.md
+++ b/.gitbook/core-modules/wasm.md
@@ -7,36 +7,33 @@ The `wasm` module is the heart of interacting with the wasm smart contracts depl
This message is used to execute contract function, below we will use the [CW20 spec](https://github.com/CosmWasm/cw-plus/blob/main/packages/cw20/README.md) transfer message as an example.
```ts
-import {
- MsgExecuteContract,
- MsgBroadcasterWithPk,
-} from "@injectivelabs/sdk-ts";
-import { Network } from "@injectivelabs/networks";
+import { MsgExecuteContract, MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'
+import { Network } from '@injectivelabs/networks'
-const injectiveAddress = "inj1...";
-const recipientAddress = "inj2...";
-const contractAddress = "cw...";
+const injectiveAddress = 'inj1...'
+const recipientAddress = 'inj2...'
+const contractAddress = 'cw...'
const msg = MsgExecuteContract.fromJSON({
contractAddress,
sender: injectiveAddress,
exec: {
- action: "transfer",
+ action: 'transfer',
msg: {
recipient: recipientAddress,
amount: 100000,
},
},
-});
+})
const txHash = await new MsgBroadcasterWithPk({
privateKey,
- network: Network.Mainnet
+ network: Network.Mainnet,
}).broadcast({
- msgs: msg
-});
+ msgs: msg,
+})
-console.log(txHash);
+console.log(txHash)
```
### MsgExecuteContract (funds example)
@@ -46,43 +43,40 @@ In some scenarios, depending on the smart contract's function we have to transfe
Below is an example of how we can send the `MsgExecuteContract` using an `test` contract function.
```ts
-import {
- MsgExecuteContract,
- MsgBroadcasterWithPk,
-} from "@injectivelabs/sdk-ts";
-import { INJ_DENOM } from "@injectivelabs/sdk-ui-ts";
-import { Network } from "@injectivelabs/networks";
+import { MsgExecuteContract, MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'
+import { INJ_DENOM } from '@injectivelabs/utils'
+import { Network } from '@injectivelabs/networks'
-const injectiveAddress = "inj1...";
-const contractAddress = "cw...";
+const injectiveAddress = 'inj1...'
+const contractAddress = 'cw...'
const msg = MsgExecuteContract.fromJSON({
contractAddress,
sender: injectiveAddress,
exec: {
- action: "test",
+ action: 'test',
funds: [
{
- denom: INJ_DENOM,
+ denom: 'inj',
amount: new BigNumberInBase(1).toWei().toFixed(),
},
],
},
-});
+})
const txHash = await new MsgBroadcasterWithPk({
privateKey,
- network: Network.Mainnet
+ network: Network.Mainnet,
}).broadcast({
- msgs: msg
-});
+ msgs: msg,
+})
-console.log(txHash);
+console.log(txHash)
```
-### MsgExecuteContractCompact
+### MsgExecuteContractCompat
-There are some compatibility issues parsing the `funds` array and `msgs` object in the previous example with EIP712. Since `MsgExecuteContract` can't be properly converted to EIP712 and then signed by Ethereum wallets, we introduced `MsgExecuteContractCompact` which is fully compatible with EIP712.
+There are some compatibility issues parsing the `funds` array and `msgs` object in the previous example with EIP712. Since `MsgExecuteContract` can't be properly converted to EIP712 and then signed by Ethereum wallets, we introduced `MsgExecuteContractCompat` which is fully compatible with EIP712.
_**Note:**_ _`MsgExecuteContract` and `MsgExecuteContractCompat` underlying messages are the same. `MsgExecuteContractCompat` is just EIP712 compatible._
@@ -91,19 +85,19 @@ Below is an example of how we can send the `MsgExecuteContractCompact` using an
```ts
import {
MsgBroadcasterWithPk,
- MsgExecuteContractCompact,
-} from "@injectivelabs/sdk-ts";
-import { INJ_DENOM } from "@injectivelabs/sdk-ui-ts";
-import { Network } from "@injectivelabs/networks";
+ MsgExecuteContractCompat,
+} from '@injectivelabs/sdk-ts'
+import { INJ_DENOM } from '@injectivelabs/utils'
+import { Network } from '@injectivelabs/networks'
-const injectiveAddress = "inj1...";
-const contractAddress = "cw...";
+const injectiveAddress = 'inj1...'
+const contractAddress = 'cw...'
-const msg = MsgExecuteContractCompact.fromJSON({
+const msg = MsgExecuteContractCompat.fromJSON({
contractAddress,
sender: injectiveAddress,
exec: {
- action: "test",
+ action: 'test',
funds: [
{
denom: INJ_DENOM,
@@ -111,14 +105,14 @@ const msg = MsgExecuteContractCompact.fromJSON({
},
],
},
-});
+})
const txHash = await new MsgBroadcasterWithPk({
privateKey,
- network: Network.Mainnet
+ network: Network.Mainnet,
}).broadcast({
- msgs: msg
-});
+ msgs: msg,
+})
-console.log(txHash);
+console.log(txHash)
```
diff --git a/.gitbook/querying/README.md b/.gitbook/querying/README.md
index b0a1fbbdf..575c1ade0 100644
--- a/.gitbook/querying/README.md
+++ b/.gitbook/querying/README.md
@@ -14,14 +14,15 @@ We also have a GraphQL consumer of the Peggy subgraph on Ethereum (used only for
For the 2 main data sources, there are abstraction classes that developers can use to access specific modules of the Injective Chain **or** specific modules within the Exchange API. The responses of these requests are always mapped into normal JavaScript objects (regardless of the data source type) and served to the end user.
+***
+***
### Topics
-| Topic | Description |
-| -------------------------------------------------------- | ----------------------------------- |
-| [Querying the Chain](querying-chain/) | Querying data from the chain |
-| [Querying the Indexer API](querying-api/) | Querying data from the Indexer API |
-| [Steaming from the Indexer API](broken-reference/) | Streaming data from the Indexer API |
-| [Querying Ethereum from the Graph](querying-ethereum.md) | Querying Ethereum via GraphQL |
-| [CosmWasm Query Payloads](broken-reference/) | Get payloads for CosmWasm queries |
+| Topic | Description |
+| -------------------------------------------------------------------------------------------------- | ----------------------------------- |
+| [Querying the Chain](querying-chain/) | Querying data from the chain |
+| [Querying the Indexer API](querying-api/) | Querying data from the Indexer API |
+| [Steaming from the Indexer API](https://docs.ts.injective.network/querying/querying-api/streaming) | Streaming data from the Indexer API |
+| [Querying Ethereum from the Graph](querying-ethereum.md) | Querying Ethereum via GraphQL |
diff --git a/.gitbook/querying/querying-api/README.md b/.gitbook/querying/querying-api/README.md
index f09e80d90..27800f3dd 100644
--- a/.gitbook/querying/querying-api/README.md
+++ b/.gitbook/querying/querying-api/README.md
@@ -4,17 +4,17 @@
### Topics
-| Topic | Description |
-| ---------------------------------------------------------------------------- | ------------------------------------------------ |
-| [Account](querying-indexer-account.md) | Querying data from the account module |
-| [Auction](querying-indexer-auction.md) | Querying data from the auction module |
-| [Derivatives](querying-indexer-derivatives.md) | Query data from the derivatives module |
-| [Explorer](querying-indexer-explorer.md) | Query data related to the explorer module |
-| [Leaderboard](querying-indexer-leaderboard.md) | Query data related to the leaderboard module |
-| [Insurance Fund](querying-indexer-insurance-funds.md) | Query data from the insurance fund module |
-| [Markets](querying-indexer-markets.md) | Query data for both spot and derivatives markets |
-| [Mito](http://127.0.0.1:5000/o/LzWvewxXUBLXQT4cTrrj/s/oaFrsrN8wb4tubFuz44J/) | Query data from the ninja vaults module |
-| [Oracle](querying-indexer-oracle.md) | Query data related to the oracle |
-| [Portfolio](querying-indexer-portfolio.md) | Query data related to the portfolio module |
-| [Spot](querying-indexer-spot.md) | Query data from the spot module |
-| [Transaction](querying-indexer-transaction.md) | Query data related to the transaction module |
+| Topic | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------ |
+| [Account](querying-indexer-account.md) | Querying data from the account module |
+| [Auction](querying-indexer-auction.md) | Querying data from the auction module |
+| [Derivatives](querying-indexer-derivatives.md) | Query data from the derivatives module |
+| [Explorer](querying-indexer-explorer.md) | Query data related to the explorer module |
+| [Leaderboard](querying-indexer-leaderboard.md) | Query data related to the leaderboard module |
+| [Insurance Fund](querying-indexer-insurance-funds.md) | Query data from the insurance fund module |
+| [Markets](querying-indexer-markets.md) | Query data for both spot and derivatives markets |
+| [Mito](https://app.gitbook.com/o/LzWvewxXUBLXQT4cTrrj/s/oaFrsrN8wb4tubFuz44J/) | Query data from the ninja vaults module |
+| [Oracle](querying-indexer-oracle.md) | Query data related to the oracle |
+| [Portfolio](querying-indexer-portfolio.md) | Query data related to the portfolio module |
+| [Spot](querying-indexer-spot.md) | Query data from the spot module |
+| [Transaction](querying-indexer-transaction.md) | Query data related to the transaction module |
diff --git a/.gitbook/querying/querying-api/querying-indexer-account.md b/.gitbook/querying/querying-api/querying-indexer-account.md
index 591af8de0..99641bd68 100644
--- a/.gitbook/querying/querying-api/querying-indexer-account.md
+++ b/.gitbook/querying/querying-api/querying-indexer-account.md
@@ -4,7 +4,9 @@ Example code snippets to query the indexer for subaccount related data.
### Using gRPC
-* Get the user's portfolio details, such as their available balance, unrealized Pnl, or their portfolio value (deprecated -> use [Portfolio](querying-indexer-portfolio.md#using-grpc) instead)
+#### Fetch user's portfolio details
+
+This includes available balance, unrealized Pnl, and portfolio value. Note: **deprecated** -> use [Portfolio](querying-indexer-portfolio.md#using-grpc) instead
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -20,7 +22,7 @@ const portfolio = await indexerGrpcAccountApi.fetchPortfolio(injectiveAddress)
console.log(portfolio)
```
-* Get the user's trading rewards per epoch
+#### Fetch user's trading rewards per epoch
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -40,7 +42,7 @@ const tradingRewards = await indexerGrpcAccountApi.fetchRewards({
console.log(tradingRewards)
```
-* Get a list of subaccounts associated with an injective address
+#### Fetch subaccounts associated with an injective address
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -58,7 +60,7 @@ const subaccountsList = await indexerGrpcAccountApi.fetchSubaccountsList(
console.log(subaccountsList)
```
-* Get the balance of a subaccount for a specific denom
+#### Fetch balance of a subaccount for a specific denom
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -78,7 +80,7 @@ const subaccountBalance = await indexerGrpcAccountApi.fetchSubaccountBalance(
console.log(subaccountBalance)
```
-* Get a list of balances for a subaccount
+#### Fetch of balances for a subaccount
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -95,7 +97,7 @@ const subaccountBalanceList =
console.log(subaccountBalanceList)
```
-* Get the history of a subaccount
+#### Fetch subacount history
```ts
import { PaginationOption, IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -117,7 +119,7 @@ const subaccountHistory = await indexerGrpcAccountApi.fetchSubaccountHistory({
console.log(subaccountHistory)
```
-* Get a summary of a subaccount's orders
+#### Fetch a summary of a subaccount's orders
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
@@ -139,7 +141,7 @@ const orderSummary = await indexerGrpcAccountApi.fetchSubaccountOrderSummary({
console.log(orderSummary)
```
-* Get states of a list of spot and/or derivatives orders
+#### Fetch states of spot or (and) derivatives orders
```ts
import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-auction.md b/.gitbook/querying/querying-api/querying-indexer-auction.md
index 1086b2ceb..b76db33af 100644
--- a/.gitbook/querying/querying-api/querying-indexer-auction.md
+++ b/.gitbook/querying/querying-api/querying-indexer-auction.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for auction module related data.
### Using gRPC
-- Get an auction based off the round
+#### Fetch auction based off the round
```ts
import { IndexerGrpcAuctionApi } from '@injectivelabs/sdk-ts'
@@ -20,7 +20,7 @@ const auction = await indexerGrpcAuctionApi.fetchAuction(round)
console.log(auction)
```
-- Get all auctions
+#### Fetch auctions
```ts
import { IndexerGrpcAuctionApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-derivatives.md b/.gitbook/querying/querying-api/querying-indexer-derivatives.md
index e18e65a38..7fc1d6796 100644
--- a/.gitbook/querying/querying-api/querying-indexer-derivatives.md
+++ b/.gitbook/querying/querying-api/querying-indexer-derivatives.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for derivative module related data.
### Using gRPC
-- fetch markets
+#### Fetch markets
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -20,7 +20,7 @@ const markets = await indexerGrpcDerivativesApi.fetchMarkets()
console.log(markets)
```
-- fetch market based on a market id
+#### Fetch market based on a market id
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -38,7 +38,7 @@ const market = await indexerGrpcDerivativesApi.fetchMarket(marketId)
console.log(market)
```
-- fetch binary options markets
+#### Fetch binary options markets
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -55,7 +55,7 @@ const binaryOptionsMarket =
console.log(binaryOptionsMarket)
```
-- fetch binary options market based on market id
+#### Fetch binary options market based on market id
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -74,7 +74,7 @@ const binaryOptionsMarket =
console.log(binaryOptionsMarket)
```
-- fetch a market's orderbook based on market id
+#### Fetch a market's orderbook based on market id
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -92,7 +92,7 @@ const orderbook = await indexerGrpcDerivativesApi.fetchOrderbook(marketId)
console.log(orderbook)
```
-- fetch a market's orders
+#### Fetch a market's orders
```ts
import { PaginationOption, IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -117,7 +117,7 @@ const orders = await indexerGrpcDerivativesApi.fetchOrders({
console.log(orders)
```
-- fetch a market's order history
+#### Fetch a market's order history
```ts
import {
@@ -151,7 +151,7 @@ const orderHistory = await indexerGrpcDerivativesApi.fetchOrderHistory({
console.log(orderHistory)
```
-- fetch a market's positions
+#### Fetch a market's positions
```ts
import {
@@ -179,7 +179,7 @@ const positions = await indexerGrpcDerivativesApi.fetchPositions({
console.log(positions)
```
-- fetch a market's trades
+#### Fetch a market's trades
```ts
import {
@@ -210,7 +210,7 @@ const trades = await indexerGrpcDerivativesApi.fetchTrades({
console.log(trades)
```
-- get funding payments for a market
+#### Fetch funding payments for a market
```ts
import {
@@ -233,7 +233,7 @@ const fundingPayments = await indexerGrpcDerivativesApi.fetchFundingPayments({
console.log(fundingPayments)
```
-- get funding rates for a market
+#### Fetch funding rates for a market
```ts
import {
@@ -256,7 +256,7 @@ const fundingRates = await indexerGrpcDerivativesApi.fetchFundingRates({
console.log(fundingRates)
```
-- get a list of subaccount orders
+#### Fetch subaccount orders
```ts
import {
@@ -281,7 +281,7 @@ const subaccountOrders = await indexerGrpcDerivativesApi.fetchSubaccountOrdersLi
console.log(subaccountOrders)
```
-- get a list of subaccount trades
+#### Fetch subaccount trades
```ts
import {
@@ -312,7 +312,7 @@ const subaccountTrades = await indexerGrpcDerivativesApi.fetchSubaccountTradesLi
console.log(subaccountTrades)
```
-- get orderbooks for multiple markets
+#### Fetch orderbooks for multiple markets
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -330,7 +330,7 @@ const orderbooks = await indexerGrpcDerivativesApi.fetchOrderbooksV2(marketIds)
console.log(orderbooks)
```
-- get orderbook for a market
+#### Fetch orderbook for a market
```ts
import { IndexerGrpcDerivativesApi } from '@injectivelabs/sdk-ts'
@@ -350,7 +350,7 @@ console.log(orderbook)
### Using HTTP REST
-- get market summary, such as a history of prices and 24 hr volume
+#### Fetch market summary, such as a history of prices and 24 hr volume
```ts
import { IndexerRestDerivativesChronosApi } from '@injectivelabs/sdk-ts'
@@ -370,7 +370,7 @@ const marketSummary = await indexerRestDerivativesChronosApi.fetchMarketSummary(
console.log(marketSummary)
```
-- get all markets' summaries, such as a history of prices and 24 hr volume
+#### Fetch all markets' summaries, such as a history of prices and 24 hr volume
```ts
import { IndexerRestDerivativesChronosApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-explorer.md b/.gitbook/querying/querying-api/querying-indexer-explorer.md
index 77203759f..c436291d9 100644
--- a/.gitbook/querying/querying-api/querying-indexer-explorer.md
+++ b/.gitbook/querying/querying-api/querying-indexer-explorer.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for explorer module related data.
### Using gRPC
-- Get a tx by hash
+#### Fetch transaction by hash
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -20,7 +20,7 @@ const transaction = await indexerGrpcExplorerApi.fetchTxByHash(txsHash)
console.log(transaction)
```
-- Get an account tx by address
+#### Fetch an account transaction by address
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -38,7 +38,7 @@ const account = await indexerGrpcExplorerApi.fetchAccountTx({
console.log(account)
```
-- Get a validator by address
+#### Fetch a validator by address
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -54,7 +54,7 @@ const validator = await indexerGrpcExplorerApi.fetchValidator(validatorAddress)
console.log(validator)
```
-- Get a validator's uptime by address
+#### Fetch a validator's uptime by address
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -72,7 +72,7 @@ const validatorUptime = await indexerGrpcExplorerApi.fetchValidatorUptime(
console.log(validatorUptime)
```
-- Get a validator's uptime by address
+#### Fetch a validator's uptime by address
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -90,7 +90,7 @@ const validatorUptime = await indexerGrpcExplorerApi.fetchValidatorUptime(
console.log(validatorUptime)
```
-- Get peggy deposit transactions from ethereum
+#### Fetch Peggy deposit transactions from Ethereum
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -114,7 +114,7 @@ const peggyDeposits = await indexerGrpcExplorerApi.fetchPeggyDepositTxs({
console.log(peggyDeposits)
```
-- Get peggy withdrawal transactions to ethereum
+#### Fetch Peggy withdrawal transactions to Ethereum
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -138,7 +138,7 @@ const peggyWithdrawals = await indexerGrpcExplorerApi.fetchPeggyWithdrawalTxs({
console.log(peggyWithdrawals)
```
-- Get blocks
+#### Fetch blocks
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -158,7 +158,7 @@ const blocks = await indexerGrpcExplorerApi.fetchBlocks({
console.log(blocks)
```
-- Get block by id
+#### Fetch block by height
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -167,14 +167,13 @@ import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
const endpoints = getNetworkEndpoints(Network.Testnet)
const indexerGrpcExplorerApi = new IndexerGrpcExplorerApi(endpoints.explorer)
-const id = 123
-
-const block = await indexerGrpcExplorerApi.fetchBlock(id)
+const height = 123456
+const block = await indexerGrpcExplorerApi.fetchBlock(height)
console.log(block)
```
-- Get transactions
+#### Fetch transactions
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -194,7 +193,7 @@ const transactions = await indexerGrpcExplorerApi.fetchTxs({
console.log(transactions)
```
-- Get ibc transfer transactions
+#### Fetch IBC transfer transactions
```ts
import { IndexerGrpcExplorerApi } from '@injectivelabs/sdk-ts'
@@ -216,7 +215,7 @@ console.log(ibcTransactions)
### Using HTTP REST
-- get a block and details
+#### Fetch a block and details
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -234,7 +233,7 @@ const block = await indexerRestExplorerApi.fetchBlock(blockHashHeight)
console.log(block)
```
-- get blocks and details
+#### Fetch blocks and details
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -256,7 +255,7 @@ const blocks = await indexerRestExplorerApi.fetchBlocks({
console.log(blocks)
```
-- get blocks with tx details
+#### Fetch blocks with transaction details
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -278,7 +277,7 @@ const blocks = await indexerRestExplorerApi.fetchBlocksWithTx({
console.log(blocks)
```
-- get transactions
+#### Fetch transactions
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -304,7 +303,7 @@ const transactions = await indexerRestExplorerApi.fetchTransactions({
console.log(transactions)
```
-- get transactions for an account
+#### Fetch transactions for an address
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -336,7 +335,7 @@ const accountTransactions =
console.log(accountTransactions)
```
-- get a tsx by hash
+#### Fetch transaction using transaction hash
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -354,7 +353,7 @@ const transaction = await indexerRestExplorerApi.fetchTransaction(txsHash)
console.log(transaction)
```
-- get validators
+#### Fetch validators
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -370,7 +369,7 @@ const validators = await indexerRestExplorerApi.fetchValidators()
console.log(validators)
```
-- get validator uptime
+#### Fetch validator uptime
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -390,7 +389,7 @@ const validatorUptime = await indexerRestExplorerApi.fetchValidatorUptime(
console.log(validatorUptime)
```
-- get a contract by contract address
+#### Fetch a contract by contract address
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -408,7 +407,7 @@ const contract = await indexerRestExplorerApi.fetchContract(contractAddress)
console.log(contract)
```
-- get contracts
+#### Fetch contracts
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -430,7 +429,7 @@ const contracts = await indexerRestExplorerApi.fetchContracts({
console.log(contracts)
```
-- get contract transactions
+#### Fetch contract transactions
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -456,7 +455,7 @@ const transactions = await indexerRestExplorerApi.fetchContractTransactions({
console.log(transactions)
```
-- get cosmwasm code details
+#### Fetch cosmwasm code details
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -474,7 +473,7 @@ const codeDetails = await indexerRestExplorerApi.fetchWasmCode(codeId)
console.log(codeDetails)
```
-- get wasm codes and details
+#### Fetch wasm codes and details
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
@@ -498,7 +497,7 @@ const codes = await indexerRestExplorerApi.fetchWasmCodes({
console.log(codes)
```
-- get cw20 balances
+#### Fetch cw20 balances
```ts
import { IndexerRestExplorerApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-insurance-funds.md b/.gitbook/querying/querying-api/querying-indexer-insurance-funds.md
index 9f9aa7c10..f574afa7d 100644
--- a/.gitbook/querying/querying-api/querying-indexer-insurance-funds.md
+++ b/.gitbook/querying/querying-api/querying-indexer-insurance-funds.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for insurance fund module related dat
### Using gRPC
-- Get redemptions for an injective address
+#### Fetch redemptions for an injective address
```ts
import { IndexerGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
@@ -24,7 +24,7 @@ const redemptions = await indexerGrpcInsuranceFundApi.fetchRedemptions({
console.log(redemptions)
```
-- Get insurance funds
+#### Fetch insurance funds
```ts
import { IndexerGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-leaderboard.md b/.gitbook/querying/querying-api/querying-indexer-leaderboard.md
index 51f799f9d..81bac720e 100644
--- a/.gitbook/querying/querying-api/querying-indexer-leaderboard.md
+++ b/.gitbook/querying/querying-api/querying-indexer-leaderboard.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for leaderboard module related data.
### Using HTTP REST
-- get the leaderboard
+#### Fetch leaderboard
```ts
import { IndexerRestLeaderboardChronosApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-markets.md b/.gitbook/querying/querying-api/querying-indexer-markets.md
index 72b795fde..979927511 100644
--- a/.gitbook/querying/querying-api/querying-indexer-markets.md
+++ b/.gitbook/querying/querying-api/querying-indexer-markets.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for all markets data
### Using HTTP REST
-- get the marketsHistory resolution: MARKETS_HISTORY_CHART_ONE_HOUR, countback: MARKETS_HISTORY_CHART_SEVEN_DAYS
+#### Fetch markets History
```ts
import { IndexerRestMarketChronosApi } from '@injectivelabs/sdk-ts'
@@ -20,6 +20,8 @@ const SelectList = {
Day: '1d',
Week: '7d',
}
+// const resolution = MARKETS_HISTORY_CHART_ONE_HOUR
+// const countback = MARKETS_HISTORY_CHART_SEVEN_DAYS
const marketIds = ['0x']
const countback = 154 // in unit of hours
diff --git a/.gitbook/querying/querying-api/querying-indexer-mito.md b/.gitbook/querying/querying-api/querying-indexer-mito.md
index 2c7bee0f7..3c46966c0 100644
--- a/.gitbook/querying/querying-api/querying-indexer-mito.md
+++ b/.gitbook/querying/querying-api/querying-indexer-mito.md
@@ -1,10 +1,14 @@
-# Ninja
+# Mito
-Example code snippets to query the indexer for the ninja vault module related data.
+Example code snippets to query the indexer for the Mito vault module related data.
-### Using gRPC
+{% hint style="info" %}
+Mito Documentation has been moved here visit[ Mito's Docs](https://docs.mito.fi/).
+{% endhint %}
-- Get a vault based off it's contract address, such as the vault's tvl or profits
+### \[Outdated] Using gRPC
+
+#### Fetch a vault based off it's contract address, such as the vault's tvl or profits
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -24,7 +28,7 @@ const vault = await indexerGrpcNinjaApi.fetchVault({
console.log(vault)
```
-- Get vaults and associated details
+#### Fetch vaults and associated details
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -38,7 +42,7 @@ const vault = await indexerGrpcNinjaApi.fetchVaults()
console.log(vault)
```
-- Get the lp token price chart for a vault based on the vault address
+#### Fetch the lp token price chart for a vault based on the vault address
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -60,7 +64,7 @@ const lpTokenPriceChart = await indexerGrpcNinjaApi.fetchLpTokenPriceChart({
console.log(lpTokenPriceChart)
```
-- Get the tvl token chart for a vault based on the vault address
+#### Fetch the tvl token chart for a vault based on the vault address
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -82,7 +86,7 @@ const tvlChart = await indexerGrpcNinjaApi.fetchTVLChartRequest({
console.log(tvlChart)
```
-- Get the vaults associated with a holder of its lp tokens
+#### Fetch the vaults associated with a holder of its lp tokens
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -100,7 +104,7 @@ const vaults = await indexerGrpcNinjaApi.fetchVaultsByHolderAddress({
console.log(vaults)
```
-- Get the lp token holders from the vault address
+#### Fetch the lp token holders from the vault address
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -118,7 +122,7 @@ const holders = await indexerGrpcNinjaApi.fetchLPHolders({
console.log(holders)
```
-- Get the lp holder's portfolio
+#### Fetch the lp holder's portfolio
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
@@ -134,7 +138,7 @@ const portfolio = await indexerGrpcNinjaApi.fetchHolderPortfolio(holderAddress)
console.log(portfolio)
```
-- Get the leaderboard to see Pnl rankings
+#### Fetch the leaderboard to see Pnl rankings
```ts
import { IndexerGrpcNinjaApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-oracle.md b/.gitbook/querying/querying-api/querying-indexer-oracle.md
index 79419c01b..6e935ae7b 100644
--- a/.gitbook/querying/querying-api/querying-indexer-oracle.md
+++ b/.gitbook/querying/querying-api/querying-indexer-oracle.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for oracle module related data.
### Using gRPC
-* Get a list of oracles
+#### Fetch list of oracles
```ts
import { IndexerGrpcOracleApi } from '@injectivelabs/sdk-ts'
@@ -18,25 +18,28 @@ const oracleList = await indexerGrpcOracleApi.fetchOracleList()
console.log(oracleList)
```
-* Get price from the oracle
+#### Fetch price from the oracle
-Base and Quote oracle symbols are always fetched from the market itself. They can be in a different representation than plain symbols (i.e hashes for `pyth` oracle).
+Base and Quote oracle symbols are always fetched from the market itself. They can be in a different representation than plain symbols (i.e hashes for `pyth` oracle).
```ts
-import { IndexerGrpcOracleApi, IndexerGrpcDerivativeApi } from '@injectivelabs/sdk-ts'
+import {
+ IndexerGrpcOracleApi,
+ IndexerGrpcDerivativeApi,
+} from '@injectivelabs/sdk-ts'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
const endpoints = getNetworkEndpoints(Network.Testnet)
const markets = new IndexerGrpcDerivativeApi(endpoints.indexer)
const indexerGrpcOracleApi = new IndexerGrpcOracleApi(endpoints.indexer)
-const market = markets.find(market => market.ticker === 'INJ/USDT PERP')
+const market = markets.find((market) => market.ticker === 'INJ/USDT PERP')
-// These values are a part of the market object
-// fetched from the chain i.e `oracle_base` and `oracle_quote`
+// These values are a part of the market object
+// fetched from the chain i.e `oracle_base` and `oracle_quote`
const baseSymbol = market.oracle_base
const quoteSymbol = market.oracle_quote
-const oracleType = market.oracle_type
+const oracleType = market.oracle_type
const oraclePrice = await indexerGrpcOracleApi.fetchOraclePriceNoThrow({
baseSymbol,
diff --git a/.gitbook/querying/querying-api/querying-indexer-portfolio.md b/.gitbook/querying/querying-api/querying-indexer-portfolio.md
index 992f262fd..f4dbc93b7 100644
--- a/.gitbook/querying/querying-api/querying-indexer-portfolio.md
+++ b/.gitbook/querying/querying-api/querying-indexer-portfolio.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for portfolio module related data.
### Using gRPC
-* Get a portfolio based on injective address, such as bank balances and subaccount balances
+#### Fetch portfolio based on injective address, such as bank balances and subaccount balances
import { IndexerGrpcAccountPortfolioApi } from '@injectivelabs/sdk-ts'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
diff --git a/.gitbook/querying/querying-api/querying-indexer-spot.md b/.gitbook/querying/querying-api/querying-indexer-spot.md
index 90f918c79..f65144f02 100644
--- a/.gitbook/querying/querying-api/querying-indexer-spot.md
+++ b/.gitbook/querying/querying-api/querying-indexer-spot.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for spot market module related data.
### Using gRPC
-- Get markets
+#### Fetch markets
```ts
import { IndexerGrpcSpotApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const markets = await indexerGrpcSpotApi.fetchMarkets()
console.log(markets)
```
-- Get market based on market id
+#### Fetch market based on market id
```ts
import { IndexerGrpcSpotApi } from '@injectivelabs/sdk-ts'
@@ -34,7 +34,7 @@ const market = await indexerGrpcSpotApi.fetchMarket(marketId)
console.log(market)
```
-- fetch a market's orders
+#### Fetch market's orders
```ts
import { PaginationOption, IndexerGrpcSpotApi } from '@injectivelabs/sdk-ts'
@@ -59,7 +59,7 @@ const orders = await indexerGrpcSpotApi.fetchOrders({
console.log(orders)
```
-- fetch a market's order history
+#### Fetch market's order history
```ts
import {
@@ -93,7 +93,7 @@ const orderHistory = await indexerGrpcSpotApi.fetchOrderHistory({
console.log(orderHistory)
```
-- fetch a market's trades
+#### Fetch market's trades
```ts
import {
@@ -124,7 +124,7 @@ const trades = await indexerGrpcSpotApi.fetchTrades({
console.log(trades)
```
-- get a list of subaccount orders
+#### Fetch list of subaccount orders
```ts
import {
@@ -149,7 +149,7 @@ const subaccountOrders = await indexerGrpcSpotApi.fetchSubaccountOrdersList({
console.log(subaccountOrders)
```
-- get a list of subaccount trades
+#### Fetch list of subaccount trades
```ts
import {
@@ -180,7 +180,7 @@ const subaccountTrades = await indexerGrpcSpotApi.fetchSubaccountTradesList({
console.log(subaccountTrades)
```
-- get orderbooks for multiple markets
+#### Fetch orderbooks for multiple markets
```ts
import { IndexerGrpcSpotApi } from '@injectivelabs/sdk-ts'
@@ -196,7 +196,7 @@ const orderbooks = await indexerGrpcSpotApi.fetchOrderbooksV2(marketIds)
console.log(orderbooks)
```
-- get orderbook for a market
+#### Fetch orderbook for a market
```ts
import { IndexerGrpcSpotApi } from '@injectivelabs/sdk-ts'
@@ -214,7 +214,7 @@ console.log(orderbook)
### Using HTTP REST
-- get market summary, such as a history of prices and 24 hr volume
+#### Fetch market summary, such as a history of prices and 24 hr volume
```ts
import { IndexerRestSpotChronosApi } from '@injectivelabs/sdk-ts'
@@ -234,7 +234,7 @@ const marketSummary = await indexerRestSpotChronosApi.fetchMarketSummary(
console.log(marketSummary)
```
-- get all markets' summaries, such as a history of prices and 24 hr volume
+#### Fetch all markets summaries, such as a history of prices and 24 hr volume
```ts
import { IndexerRestSpotChronosApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/querying-indexer-transaction.md b/.gitbook/querying/querying-api/querying-indexer-transaction.md
index 1a1a20428..28549ba2c 100644
--- a/.gitbook/querying/querying-api/querying-indexer-transaction.md
+++ b/.gitbook/querying/querying-api/querying-indexer-transaction.md
@@ -1,10 +1,10 @@
-# Transaction
+# Web3Gw Transactions
-Example code snippets to query the indexer for transaction module related data.
+Example code snippets to query the indexer for transaction module related data. Used only when interacting with the [Web3Gateway](../../transactions/web3-gateway.md)
### Using gRPC
-- Get a response for preparing a tx
+#### Fetch response for preparing a transaction
```ts
import { Msgs, IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
@@ -29,7 +29,7 @@ const prepareTxResponse = await indexerGrpcTransactionApi.prepareTxRequest({
console.log(prepareTxResponse)
```
-- Get a response for preparing a cosmos tx
+#### Fetch response for preparing a cosmos transaction
```ts
import { IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
@@ -49,32 +49,11 @@ const prepareCosmosTxResponse = await indexerGrpcTransactionApi.prepareCosmosTxR
console.log(prepareCosmosTxResponse)
```
-- get a response for preparing a tsx on Injective exchange module
+#### Fetch response for broadcasting transactions using the Web3Gateway
-```ts
-import { Msgs, IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { EthereumChainId } from '@injectivelabs/ts-types'
-
-const endpoints = getNetworkEndpoints(Network.Testnet)
-const indexerGrpcTransactionApi = new IndexerGrpcTransactionApi(endpoints.indexer)
-
-const address = '0x...' /* ethereum address */
-const chainId = EthereumChainId.Goerli
-const message = { ... } as Msgs
-const memo = '...' /* optional param */
-
-const prepareTxResponse = await indexerGrpcTransactionApi.prepareExchangeTxRequest({
- address,
- chainId,
- message,
- memo
-})
-
-console.log(prepareTxResponse)
-```
+Use `MsgBroadcasterWithPk` to broadcast transactions within a node/CLI environment, which can be found in `@injectivelabs/sdk-ts`.
-- get a response for broadcasting a tsx from desktop while using an ethereum wallet extension. Use `MsgBroadcasterWithPk` to broadcast a tsx for node app, which can be found in `@injectivelabs/sdk-ts`. Check out `@injectivelabs/wallet-ts`'s `MsgBroadcaster` class for more details on broadcasting a tsx
+Use `@injectivelabs/wallet-ts`'s `MsgBroadcaster` class for more details on broadcasting a transactions in a browser environment.
```ts
import { Msgs, IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
@@ -126,7 +105,7 @@ const broadcastTxResponse = await indexerGrpcTransactionApi.broadcastTxRequest({
console.log(broadcastTxResponse)
```
-- get a response for broadcasting a cosmos tsx. Check out `@injectivelabs/wallet-ts`'s `MsgBroadcaster` class for more details on broadcasting a cosmos tsx
+#### Fetch response for broadcasting a cosmos transactions.
```ts
import { IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
@@ -154,7 +133,7 @@ const broadcastCosmosTxResponse = await indexerGrpcTransactionApi.broadcastCosmo
console.log(broadcastCosmosTxResponse)
```
-- get the fee payer
+#### Fetch Web3Gateway Fee Payer
```ts
import { IndexerGrpcTransactionApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-account.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-account.md
index d38d9a234..88bf9ef9a 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-account.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-account.md
@@ -4,7 +4,7 @@ Example code snippets to stream from the indexer for subaccount related data.
### Using gRPC stream
-- Stream a subaccount balance
+#### Stream subaccount balance
```ts
import { IndexerGrpcAccountStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-auction.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-auction.md
index 9087991fa..20ea622da 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-auction.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-auction.md
@@ -4,7 +4,7 @@ Example code snippets to stream from the indexer for auction module related data
### Using gRPC Stream
-- stream auction bids
+#### Stream auction bids
```ts
import { IndexerGrpcAuctionStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-derivatives.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-derivatives.md
index b9fda7107..b0a35cf44 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-derivatives.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-derivatives.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for derivative module related data.
### Using gRPC Stream
-- stream the derivatives orderbook
+#### Stream derivatives orderbook
```ts
import { IndexerGrpcDerivativesStream } from '@injectivelabs/sdk-ts'
@@ -33,7 +33,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream derivative orders
+#### Stream derivative orders
```ts
import { IndexerGrpcDerivativesStream } from '@injectivelabs/sdk-ts'
@@ -67,7 +67,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream derivative order history
+#### Stream derivative order history
```ts
import {
@@ -109,7 +109,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream derivative trades
+#### Stream derivative trades
```ts
import {
@@ -145,7 +145,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream derivative positions
+#### Stream derivative positions
```ts
import { IndexerGrpcDerivativesStream } from '@injectivelabs/sdk-ts'
@@ -176,7 +176,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream markets
+#### Stream markets
```ts
import { IndexerGrpcDerivativesStream } from '@injectivelabs/sdk-ts'
@@ -205,7 +205,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream orderbook updates
+#### Stream orderbook updates
```ts
import { IndexerGrpcDerivativesStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-explorer.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-explorer.md
index ce4aa6634..53f3f1f8a 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-explorer.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-explorer.md
@@ -4,7 +4,7 @@ Example code snippets to stream from the indexer for explorer module related dat
### Using gRPC Stream
-- stream blocks
+#### Stream blocks
```ts
import { IndexerGrpcExplorerStream } from '@injectivelabs/sdk-ts'
@@ -30,7 +30,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream blocks with transactions
+#### Stream blocks with transactions
```ts
import { IndexerGrpcExplorerStream } from '@injectivelabs/sdk-ts'
@@ -56,7 +56,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream transactions
+#### Stream transactions
```ts
import { IndexerGrpcExplorerStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-oracle.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-oracle.md
index 39451b52d..67e5eb6db 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-oracle.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-oracle.md
@@ -4,7 +4,7 @@ Example code snippets to query the indexer for oracle module related data.
### Using gRPC Stream
-- stream oracle prices
+#### Stream oracle prices
```ts
import { IndexerGrpcOracleStream } from '@injectivelabs/sdk-ts'
@@ -28,7 +28,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream oracle prices by market
+#### Stream oracle prices by market
```ts
import { IndexerGrpcOracleStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-portfolio.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-portfolio.md
index 104dc86ea..2b9c82bac 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-portfolio.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-portfolio.md
@@ -4,7 +4,7 @@ Example code snippets to stream from the indexer for portfolio module related da
### Using gRPC Stream
-- stream an account's portfolio
+#### Stream an account's portfolio
```ts
import { IndexerGrpcAccountPortfolioStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-api/streaming/streaming-indexer-spot.md b/.gitbook/querying/querying-api/streaming/streaming-indexer-spot.md
index d9dfbb4f5..30d37e17b 100644
--- a/.gitbook/querying/querying-api/streaming/streaming-indexer-spot.md
+++ b/.gitbook/querying/querying-api/streaming/streaming-indexer-spot.md
@@ -4,7 +4,7 @@ Example code snippets to stream from the indexer for spot market module related
### Using gRPC Stream
-- stream the spot orderbook
+#### Stream the spot orderbook
```ts
import { IndexerGrpcSpotStream } from '@injectivelabs/sdk-ts'
@@ -31,7 +31,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream spot orders
+#### Stream spot orders
```ts
import { IndexerGrpcSpotsStream } from '@injectivelabs/sdk-ts'
@@ -63,7 +63,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream spot order history
+#### Stream spot order history
```ts
import {
@@ -103,7 +103,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream spot trades
+#### Stream spot trades
```ts
import {
@@ -139,7 +139,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream markets
+#### Stream markets
```ts
import { IndexerGrpcSpotStream } from '@injectivelabs/sdk-ts'
@@ -166,7 +166,7 @@ const streamFnArgs = {
streamFn(streamFnArgs)
```
-- stream orderbook updates
+#### Stream orderbook updates
```ts
import { IndexerGrpcSpotStream } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-auction-module.md b/.gitbook/querying/querying-chain/querying-chain-auction-module.md
index 98f3bcccc..b4bf81b94 100644
--- a/.gitbook/querying/querying-chain/querying-chain-auction-module.md
+++ b/.gitbook/querying/querying-chain/querying-chain-auction-module.md
@@ -1,10 +1,10 @@
-# Auction Module
+# Auction
Example code snippets to query the auction module on the chain.
### Using gRPC
-- Fetch module params such as the auction period
+#### Fetch module params such as the auction period
```ts
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcAuctionApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the state of the current auction, such as the latest round
+#### Fetch the state of the current auction, such as the latest round
```ts
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
@@ -32,7 +32,7 @@ const latestAuctionModuleState = await auctionApi.fetchModuleState()
console.log(latestAuctionModuleState)
```
-- Fetch the current auction basket and get info such as the highest bidder and amount
+#### Fetch the current auction basket and get info such as the highest bidder and amount
```ts
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-auth-module.md b/.gitbook/querying/querying-chain/querying-chain-auth-module.md
index 0d1562b9b..8560be098 100644
--- a/.gitbook/querying/querying-chain/querying-chain-auth-module.md
+++ b/.gitbook/querying/querying-chain/querying-chain-auth-module.md
@@ -1,10 +1,10 @@
-# Querying Chain - Auth Module
+# Auth
Example code snippets to query the auth module on the chain.
### Using gRPC
-- Get parameters such as max memo characters or tsx signature limit
+#### Fetch parameters such as max memo characters or tsx signature limit
```ts
import { ChainGrpcAuthApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcAuthApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get account details associated with an injective address such as the account's address, sequence, or pub_key
+#### Fetch ccount details associated with an injective address such as the account's address, sequence, or pub\_key
```ts
import { ChainGrpcAuthApi } from '@injectivelabs/sdk-ts'
@@ -35,7 +35,7 @@ const accountDetailsResponse = await chainGrpcAuthApi.fetchAccount(
console.log(accountDetailsResponse)
```
-- Get a list of accounts on chain
+#### Fetch list of accounts on chain
```ts
import { PaginationOption, ChainGrpcAuthApi } from '@injectivelabs/sdk-ts'
@@ -53,7 +53,7 @@ console.log(accounts)
### Using HTTP REST
-- Get account details associated with an injective address such as the account's address, sequence, or pub_key
+#### Fetch account details associated with an injective address such as the account's address, sequence, or pub\_key
```ts
import { ChainRestAuthApi } from '@injectivelabs/sdk-ts'
@@ -70,7 +70,7 @@ const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
console.log(accountDetailsResponse)
```
-- Get cosmos address from an injective address
+#### Fetch cosmos address from an injective address
```ts
import { ChainRestAuthApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-bank-module.md b/.gitbook/querying/querying-chain/querying-chain-bank-module.md
index 640080e90..535fe3c5f 100644
--- a/.gitbook/querying/querying-chain/querying-chain-bank-module.md
+++ b/.gitbook/querying/querying-chain/querying-chain-bank-module.md
@@ -2,9 +2,9 @@
Example code snippets to query the chain for bank module related data.
-### Using gRPC
+## Using gRPC
-* Get bank module params
+#### Fetch bank module params
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
@@ -17,7 +17,7 @@ const moduleParams = await chainGrpcBankApi.fetchModuleParams()
console.log(moduleParams)
-* Fetching injective address's balances
+#### Fetching injective address's balances
```ts
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
@@ -33,7 +33,7 @@ const balances = await chainGrpcBankApi.fetchBalances(injectiveAddress)
console.log(balances)
```
-* Fetching cosmos address' balances per base denom
+#### Fetching cosmos address' balances per base denom
```ts
import { ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
@@ -53,7 +53,7 @@ const balance = await chainGrpcBankApi.fetchBalance({
console.log(balance)
```
-* Fetching total supply on chain
+#### Fetching total supply on chain
```ts
import { PaginationOption, ChainGrpcBankApi } from '@injectivelabs/sdk-ts'
@@ -71,9 +71,9 @@ const totalSupply = await chainGrpcBankApi.fetchTotalSupply(
console.log(totalSupply)
```
-### Using HTTP REST
+## Using HTTP REST
-* Fetching address's balances
+#### Fetching address's balances
```ts
import { ChainRestBankApi } from '@injectivelabs/sdk-ts'
@@ -89,7 +89,7 @@ const balances = await chainGrpcBankApi.fetchBalances(injectiveAddress)
console.log(balances)
```
-* Fetching cosmos address' balances per base denom
+#### Fetching cosmos address' balances per base denom
```ts
import { ChainRestBankApi } from '@injectivelabs/sdk-ts'
@@ -101,7 +101,7 @@ const chainRestBankApi = new ChainRestBankApi(endpoints.rest)
const cosmosAddress = 'cosmos...' /* example is using Cosmos Hub */
const denom = 'uatom'
-const balance = await chainGrpcBankApi.fetchBalance(cosmosAddress, denom)
+const balance = await chainRestBankApi.fetchBalance(cosmosAddress, denom)
console.log(balance)
```
diff --git a/.gitbook/querying/querying-chain/querying-chain-distribution.md b/.gitbook/querying/querying-chain/querying-chain-distribution.md
index e648dbd5c..4c2318f60 100644
--- a/.gitbook/querying/querying-chain/querying-chain-distribution.md
+++ b/.gitbook/querying/querying-chain/querying-chain-distribution.md
@@ -1,10 +1,10 @@
-# Querying Chain: Distribution
+# Distribution
Example code snippets to query data related to delegating to validators from the chain.
### Using gRPC
-- Get parameters such as the base and bonus proposer reward
+#### Fetch parameters such as the base and bonus proposer reward
```ts
import { ChainGrpcDistributionApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcDistributionApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the amount and denom of rewards for a delegator delagating to a specific validator
+#### Fetch the amount and denom of rewards for a delegator delagating to a specific validator
```ts
import { ChainGrpcDistributionApi } from '@injectivelabs/sdk-ts'
@@ -39,7 +39,7 @@ const delegatorRewardsFromValidator =
console.log(delegatorRewardsFromValidator)
```
-- Get the amount and denom of all rewards for a delegator
+#### Fetch the amount and denom of all rewards for a delegator
```ts
import { ChainGrpcDistributionApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-exchange.md b/.gitbook/querying/querying-chain/querying-chain-exchange.md
index bf5297257..d62d424d3 100644
--- a/.gitbook/querying/querying-chain/querying-chain-exchange.md
+++ b/.gitbook/querying/querying-chain/querying-chain-exchange.md
@@ -1,10 +1,10 @@
-# Querying Chain: Exchange
+# Exchange
Example code snippets to query the exchange module on the chain.
### Using gRPC
-- Get parameters such as the default spot and derivatives fees/trading rewards
+#### Fetch parameters such as the default spot and derivatives fees/trading rewards
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcExchangeApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the fee discounts schedule
+#### Fetch the fee discount schedules
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -33,7 +33,7 @@ const feeDiscountSchedule =
console.log(feeDiscountSchedule)
```
-- Get the fee discounts associated with an injective address
+#### Fetch the fee discounts associated with an injective address
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -50,7 +50,7 @@ const feeDiscountAccountInfo =
console.log(feeDiscountAccountInfo)
```
-- Get the details regarding the trading reward campaign, such as the total rewards points
+#### Fetch the details regarding the trading reward campaign, such as the total reward points
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -65,7 +65,7 @@ const tradingRewardsCampaign =
console.log(tradingRewardsCampaign)
```
-- Get the trading rewards points for an injective address
+#### Fetch the trading rewards points for an injective address
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -83,7 +83,7 @@ const tradeRewardsPoints = await chainGrpcExchangeApi.fetchTradeRewardsPoints(
console.log(tradeRewardsPoints)
```
-- Get the pending trading rewards points for injective addresses
+#### Fetch the pending trading rewards points for injective addresses
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -100,7 +100,7 @@ const pendingTradeRewardsPoints =
console.log(pendingTradeRewardsPoints)
```
-- Get the current positions, such as subaccountId, marketId, and position
+#### Fetch the current positions, such as subaccountId, marketId, and position
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
@@ -114,7 +114,7 @@ const positions = await chainGrpcExchangeApi.fetchPositions(injectiveAddresses)
console.log(positions)
```
-- Get the subaccount trade nonce
+#### Fetch the subaccount trade nonce
```ts
import { ChainGrpcExchangeApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-governance.md b/.gitbook/querying/querying-chain/querying-chain-governance.md
index db04a2872..bb0cad4ed 100644
--- a/.gitbook/querying/querying-chain/querying-chain-governance.md
+++ b/.gitbook/querying/querying-chain/querying-chain-governance.md
@@ -1,10 +1,10 @@
-# Querying Chain: Governance
+# Governance
Example code snippets to query the governance module on the chain.
### Using gRPC
-- Get parameters such as the voting period, max depositing period, or tallying details
+#### Fetch parameters such as the voting period, max depositing period, or tallying details
```ts
import { ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcGovApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get a list of proposals based on the status
+#### Fetch proposals based on the status
```ts
import { PaginationOption, ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -39,7 +39,7 @@ const proposals = await chainGrpcGovApi.fetchProposals({
console.log(proposals)
```
-- Get proposal details based on a proposals' id
+#### Fetch proposal details based on a proposal's id
```ts
import { ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -55,7 +55,7 @@ const proposalDetails = await chainGrpcGovApi.fetchProposal(proposalId)
console.log(proposalDetails)
```
-- Get proposal deposits based on a proposals' id.
+#### Fetch proposal deposits based on a proposal's id.
```ts
import { PaginationOption, ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -75,7 +75,7 @@ const proposalDeposits = await chainGrpcGovApi.fetchProposalDeposits({
console.log(proposalDeposits)
```
-- Get proposal details based on a proposals' id
+#### Fetch proposal details based on a proposal's id
```ts
import { ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -91,7 +91,7 @@ const proposalDetails = await chainGrpcGovApi.fetchProposal(proposalId)
console.log(proposalDetails)
```
-- Get proposal deposits based on a proposals' id
+#### Fetch proposal deposits based on a proposal's id
```ts
import { PaginationOption, ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -111,7 +111,7 @@ const proposalDeposits = await chainGrpcGovApi.fetchProposalDeposits({
console.log(proposalDeposits)
```
-- Get proposal votes based on a proposals' id
+#### Fetch proposal votes based on a proposal's id
```ts
import { PaginationOption, ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
@@ -130,7 +130,7 @@ const proposalVotes = await chainGrpcGovApi.fetchProposalVotes({
console.log(proposalVotes)
```
-- Get proposal tally based on a proposals' id
+#### Fetch proposal tally based on a proposal's id
```ts
import { PaginationOption, ChainGrpcGovApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-ibc.md b/.gitbook/querying/querying-chain/querying-chain-ibc.md
index edab853a4..9e0917dc3 100644
--- a/.gitbook/querying/querying-chain/querying-chain-ibc.md
+++ b/.gitbook/querying/querying-chain/querying-chain-ibc.md
@@ -1,10 +1,10 @@
-# Querying Chain: IBC
+# IBC
Example code snippets to query the chain for IBC related data.
### Using gRPC
-- Get the denom trace from the IBC hash
+#### Fetch denom trace from the IBC hash
```ts
import { ChainGrpcIbcApi } from '@injectivelabs/sdk-ts'
@@ -19,7 +19,7 @@ const denomTrace = await chainGrpcIbcApi.fetchDenomTrace(hash)
console.log(denomTrace)
```
-- Get a list of denom traces
+#### Fetch list of denom traces
```ts
import { ChainGrpcIbcApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-insurance-funds.md b/.gitbook/querying/querying-chain/querying-chain-insurance-funds.md
index 6a5d5747b..1b2b0108b 100644
--- a/.gitbook/querying/querying-chain/querying-chain-insurance-funds.md
+++ b/.gitbook/querying/querying-chain/querying-chain-insurance-funds.md
@@ -1,10 +1,10 @@
-# Querying Chain: Insurance Funds
+# Insurance Funds
Example code snippets to query data related to the insurance fund on chain.
### Using gRPC
-- Get the default redemption notice period duration
+#### Fetch default redemption notice period duration
```ts
import { ChainGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcInsuranceFundApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the list insurance funds and associated metadata
+#### Fetch insurance funds and associated metadata
```ts
import { ChainGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
@@ -32,7 +32,7 @@ const insuranceFunds = await chainGrpcInsuranceFundApi.fetchInsuranceFunds()
console.log(insuranceFunds)
```
-- Get the insurance fund and associated metadata based on the market ID
+#### Fetch insurance fund and associated metadata based on the market ID
```ts
import { ChainGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
@@ -49,7 +49,7 @@ const insuranceFund = await chainGrpcInsuranceFundApi.fetchInsuranceFund(
console.log(insuranceFund)
```
-- Get the estimated redemptions for a given injective address for a market
+#### Fetch estimated redemptions for a given injective address for a market
```ts
import { ChainGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
@@ -70,7 +70,7 @@ const estimatedRedemptions =
console.log(estimatedRedemptions)
```
-- Get the pending redemptions for a given injective address for a market
+#### Fetch pending redemptions for a given injective address for a market
```ts
import { ChainGrpcInsuranceFundApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-mint.md b/.gitbook/querying/querying-chain/querying-chain-mint.md
index fb2a8b199..b1df17dbf 100644
--- a/.gitbook/querying/querying-chain/querying-chain-mint.md
+++ b/.gitbook/querying/querying-chain/querying-chain-mint.md
@@ -1,10 +1,10 @@
-# Querying Chain: Mint
+# Mint
Example code snippets to query the mint module on the chain.
### Using gRPC
-- Get parameters related to the mint module
+#### Fetch parameters related to the mint module
```ts
import { ChainGrpcMintApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcMintApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the inflation
+#### Fetch inflation
```ts
import { ChainGrpcMintApi } from '@injectivelabs/sdk-ts'
@@ -32,7 +32,7 @@ const inflation = await chainGrpcMintApi.fetchInflation()
console.log(inflation)
```
-- Get the annual provisions
+#### Fetch the annual provisions
```ts
import { ChainGrpcMintApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-oracle.md b/.gitbook/querying/querying-chain/querying-chain-oracle.md
index c1020af97..663728525 100644
--- a/.gitbook/querying/querying-chain/querying-chain-oracle.md
+++ b/.gitbook/querying/querying-chain/querying-chain-oracle.md
@@ -1,10 +1,10 @@
-# Querying Chain: Oracle
+# Oracle
Example code snippets to query the chain via the oracle api.
### Using gRPC
-- Get parameters related to the oracle
+#### Fetch parameters related to the oracle
```ts
import { ChainGrpcOracleApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-peggy.md b/.gitbook/querying/querying-chain/querying-chain-peggy.md
index 3a3858c98..179024455 100644
--- a/.gitbook/querying/querying-chain/querying-chain-peggy.md
+++ b/.gitbook/querying/querying-chain/querying-chain-peggy.md
@@ -1,10 +1,10 @@
-# Querying Chain: Peggy
+# Peggy
Example code snippets to query the chain via the peggy api.
### Using gRPC
-- Get parameters related to peggy
+#### Fetch parameters related to peggy
```ts
import { ChainGrpcPeggyApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-staking.md b/.gitbook/querying/querying-chain/querying-chain-staking.md
index 452c9ef35..9d1657f79 100644
--- a/.gitbook/querying/querying-chain/querying-chain-staking.md
+++ b/.gitbook/querying/querying-chain/querying-chain-staking.md
@@ -1,10 +1,10 @@
-# Querying Chain: Staking
+# Staking
Example code snippets to query the chain's staking module
### Using gRPC
-- Get parameters related to the staking module such as the unbonding time or bond denom
+#### Fetch parameters related to the staking module such as the unbonding time or bond denom
```ts
import { ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcStakingApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the unbonded and bonded tokens for a pool
+#### Fetch unbonded and bonded tokens for a pool
```ts
import { ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -32,7 +32,7 @@ const pool = await chainGrpcStakingApi.fetchPool()
console.log(pool)
```
-- Get the list of validators and associated metadata
+#### Fetch validators and associated metadata
```ts
import { ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -46,7 +46,7 @@ const validators = await chainGrpcStakingApi.fetchValidators()
console.log(validators)
```
-- Get the validator and associated metadata from a validator address
+#### Fetch validator and associated metadata from a validator address
```ts
import { ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -62,7 +62,7 @@ const validator = await chainGrpcStakingApi.fetchValidator(validatorAddress)
console.log(validator)
```
-- Get the delegations associated with a validator
+#### Fetch delegations associated with a validator
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -82,7 +82,7 @@ const delegations = await chainGrpcStakingApi.fetchValidatorDelegationsNoThrow({
console.log(delegations)
```
-- Get the unbonding delegations associated with a validator
+#### Fetch unbonding delegations associated with a validator
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -102,7 +102,7 @@ const unbondingDelegations = await chainGrpcStakingApi.fetchValidatorUnbondingDe
console.log(unbondingDelegations)
```
-- Get the delegations associated with an injective address for a specific validator
+#### Fetch delegations associated with an injective address for a specific validator
```ts
import { ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -122,7 +122,7 @@ const delegation = await chainGrpcStakingApi.fetchDelegation({
console.log(delegation)
```
-- Get all delegations for an injective address
+#### Fetch delegations for an injective address
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -142,7 +142,7 @@ const delegations = await chainGrpcStakingApi.fetchDelegationsNoThrow({
console.log(delegations)
```
-- Get all delegators for a validator
+#### Fetch delegators for a validator
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -162,7 +162,7 @@ const delegators = await chainGrpcStakingApi.fetchDelegatorsNoThrow({
console.log(delegators)
```
-- Get all the unbonding delegations for an injective address
+#### Fetch unbonding delegations for an injective address
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
@@ -182,7 +182,7 @@ const unbondingDelegations = await chainGrpcStakingApi.fetchUnbondingDelegations
console.log(unbondingDelegations)
```
-- Get all the redelegations for an injective address
+#### Fetch redelegations for an injective address
```ts
import { PaginationOption, ChainGrpcStakingApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-tendermint.md b/.gitbook/querying/querying-chain/querying-chain-tendermint.md
index dbbf75c16..2ca35b3ee 100644
--- a/.gitbook/querying/querying-chain/querying-chain-tendermint.md
+++ b/.gitbook/querying/querying-chain/querying-chain-tendermint.md
@@ -1,10 +1,10 @@
-# Querying Chain: Tendermint
+# Tendermint
Example code snippets to query for chain node related data.
### Using HTTP REST
-- get latest block info
+#### Fetch the latest block info
```ts
import { ChainRestTendermintApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const latestBlock = await chainRestTendermintApi.fetchLatestBlock()
console.log(latestBlock)
```
-- get chain node info
+#### Fetch chain node info
```ts
import { ChainRestTendermintApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-wasm.md b/.gitbook/querying/querying-chain/querying-chain-wasm.md
index 27ac78a2c..f03c0e006 100644
--- a/.gitbook/querying/querying-chain/querying-chain-wasm.md
+++ b/.gitbook/querying/querying-chain/querying-chain-wasm.md
@@ -4,7 +4,7 @@ Example code snippets to query the wasm module on chain
### Using gRPC
-* Get a contacts' account balance Note that pagination parameters can be passed to obtain additional accounts.
+#### Fetch contacts' account balance Note that pagination parameters can be passed to obtain additional accounts.
```ts
import { ChainGrpcWasmApi, PaginationOption } from '@injectivelabs/sdk-ts'
@@ -24,7 +24,7 @@ const contractAccountsBalance = await chainGrpcWasmApi.fetchContractAccountsBala
console.log(contractAccountsBalance)
```
-* Get info related to a contract
+#### Fetch info related to a contract
```ts
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
@@ -40,7 +40,7 @@ const contractInfo = await chainGrpcWasmApi.fetchContractInfo(contractAddress)
console.log(contractInfo)
```
-* Get contract history
+#### Fetch contract history
```ts
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
@@ -58,7 +58,7 @@ const contractHistory = await chainGrpcWasmApi.fetchContractHistory(
console.log(contractHistory)
```
-* Get the state of a smart contract
+#### Fetch the state of a smart contract
```ts
import { ChainGrpcWasmApi, toBase64 } from '@injectivelabs/sdk-ts'
@@ -79,7 +79,7 @@ const contractState = await chainGrpcWasmApi.fetchSmartContractState({
console.log(contractState)
```
-* Get the raw state of a smart contract
+#### Fetch the raw state of a smart contract
```ts
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
@@ -100,7 +100,7 @@ const rawContractState = await chainGrpcWasmApi.fetchRawContractState({
console.log(rawContractState)
```
-* Get the codes associated with a contract
+#### Fetch the codes associated with a contract
```ts
import { PaginationOption, ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
@@ -119,7 +119,7 @@ pagination /* optional pagination options */
console.log(rawContractState)
```
-* Get info associated with a contract code
+#### Fetch info associated with a contract code
```ts
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
@@ -135,7 +135,7 @@ const codeDetails = await chainGrpcWasmApi.fetchContractCode(codeId)
console.log(codeDetails)
```
-* Get the contracts associated with a code
+#### Fetch the contracts associated with a code
```ts
import { PaginationOption, ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/querying-chain-wasmx.md b/.gitbook/querying/querying-chain/querying-chain-wasmx.md
index bb114c870..fa45b0d26 100644
--- a/.gitbook/querying/querying-chain/querying-chain-wasmx.md
+++ b/.gitbook/querying/querying-chain/querying-chain-wasmx.md
@@ -1,10 +1,10 @@
-# Querying Chain: WasmX
+# WasmX
Example code snippets to query the wasmX module on chain
### Using gRPC
-- Get parameters related to the wasmX module
+#### Fetch parameters related to the wasmX module
```ts
import { ChainGrpcWasmXApi } from '@injectivelabs/sdk-ts'
@@ -18,7 +18,7 @@ const moduleParams = await chainGrpcWasmXApi.fetchModuleParams()
console.log(moduleParams)
```
-- Get the wasmX module state
+#### Fetch the wasmX module state
```ts
import { ChainGrpcWasmXApi } from '@injectivelabs/sdk-ts'
diff --git a/.gitbook/querying/querying-chain/token-factory.md b/.gitbook/querying/querying-chain/token-factory.md
index 517a40632..8677e2533 100644
--- a/.gitbook/querying/querying-chain/token-factory.md
+++ b/.gitbook/querying/querying-chain/token-factory.md
@@ -4,7 +4,7 @@ Example code snippets to query the chain for token factory module related data.
### Using gRPC
-* Fetch all denoms created by _creator_
+#### Fetch all denoms created by _creator_
import { ChainGrpcTokenFactoryApi } from '@injectivelabs/sdk-ts'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
@@ -18,7 +18,7 @@ const denoms = await chainGrpcTokenFactoryApi.fetchDenomsFromCreator(creator)
console.log(denoms)
-* Fetch denom authority metadata (i.e fetch admin of a token)
+#### Fetch denom authority metadata (i.e fetch admin of a token)
```ts
import { ChainGrpcTokenFactoryApi } from '@injectivelabs/sdk-ts'
@@ -29,7 +29,10 @@ const chainGrpcTokenFactoryApi = new ChainGrpcTokenFactoryApi(endpoints.grpc)
const creator = 'inj...'
const subdenom = 'NINJA'
-const metadata = await chainGrpcTokenFactoryApi.fetchDenomAuthorityMetadata(creator, subdenom)
+const metadata = await chainGrpcTokenFactoryApi.fetchDenomAuthorityMetadata(
+ creator,
+ subdenom,
+)
console.log(metadata)
```
diff --git a/.gitbook/querying/querying-ethereum.md b/.gitbook/querying/querying-ethereum.md
index 579349d91..b9f3c6407 100644
--- a/.gitbook/querying/querying-ethereum.md
+++ b/.gitbook/querying/querying-ethereum.md
@@ -1,20 +1,21 @@
-# Querying: Ethereum
-
-### Querying Ethereum
+# Ethereum (GraphQL)
Example code snippets to query data from Ethereum.
### Using GraphQL
-- Get the user's deposits on ethereum chain
+#### Fetch user's deposits on Ethereum chain
```ts
import { ApolloConsumer } from '@injectivelabs/sdk-ts'
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { peggyGraphQlEndpointForNetwork } from '@injectivelabs/sdk-ui-ts'
+import {
+ Network,
+ getNetworkEndpoints,
+ getPeggyGraphQlEndpointForNetwork,
+} from '@injectivelabs/networks'
const apolloConsumer = new ApolloConsumer(
- peggyGraphQlEndpointForNetwork(Network.Testnet),
+ getPeggyGraphQlEndpointForNetwork(Network.Testnet),
)
const ethereumAddress = '0x...'
@@ -24,15 +25,18 @@ const userDeposits = apolloConsumer.fetchUserDeposits(ethereumAddress)
console.log(userDeposits)
```
-- Get the user's deposits on ethereum chain at a specific time
+#### Fetch user's deposits on Ethereum chain at a specific time
```ts
import { ApolloConsumer } from '@injectivelabs/sdk-ts'
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { peggyGraphQlEndpointForNetwork } from '@injectivelabs/sdk-ui-ts'
+import {
+ Network,
+ getNetworkEndpoints,
+ getPeggyGraphQlEndpointForNetwork,
+} from '@injectivelabs/networks'
const apolloConsumer = new ApolloConsumer(
- peggyGraphQlEndpointForNetwork(Network.Testnet),
+ getPeggyGraphQlEndpointForNetwork(Network.Testnet),
)
const ethereumAddress = '0x...'
diff --git a/.gitbook/readme/token-metadata/README.md b/.gitbook/readme/assets/README.md
similarity index 56%
rename from .gitbook/readme/token-metadata/README.md
rename to .gitbook/readme/assets/README.md
index ff9b6e507..ce1748f4f 100644
--- a/.gitbook/readme/token-metadata/README.md
+++ b/.gitbook/readme/assets/README.md
@@ -6,57 +6,36 @@ A denom is how assets are represented within the Bank module of Injective. These
Depending on the origin of the denom and how it was created on Injective we have different types of denoms:
-* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
-* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
-* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
-* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. They have the following format `share{id}`
-* **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{OWNER}/{SUBDENOM}` where the `OWNER` is the owner who created the factory denom. One example is the CW20 token factory denom `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
+- **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
+- **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
+- **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
+- **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. They have the following format `share{id}`
+- **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{OWNER}/{SUBDENOM}` where the `OWNER` is the owner who created the factory denom. One example is the CW20 token factory denom `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
#### Token
-Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. The metadata of the denom is quite important for a dApp developer as information on the chain is stored in its raw form (for example `1inj` on the chain is represented as `1*10^18inj`) so we need to have a way to show the user human-readable information (numbers, logo, symbol, etc). To convert a denom to a Token, we’ve built an abstraction class within the `sdk-ts` which uses the `token-metadata` package to convert known denoms to a Token representation.
+Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. The metadata of the denom is quite important for a dApp developer as information on the chain is stored in its raw form (for example `1inj` on the chain is represented as `1*10^18inj`) so we need to have a way to show the user human-readable information (numbers, logo, symbol, etc).
## Token Metadata
-Assets on Injective are represented as denoms. Denoms (and the amounts) are not human readable and this is why we need to have a way to "attach" token metadata information for a particular denom. This is achievable using the `@injectivelabs/token-metadata` package.
+Assets on Injective are represented as denoms. Denoms (and the amounts) are not human readable and this is why we need to have a way to "attach" token metadata information for a particular denom.
Let's recap the types of denoms we have in the Getting Started section:
-* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
-* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
-* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
-* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. The have the following format `share{id}`
-* **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
+- **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
+- **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
+- **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
+- **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. The have the following format `share{id}`
+- **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
-We maintain our own token metadata list off-chain for faster access on the `@injectivelabs/token-metadata` package. Within this package, token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. It has the following interface (more details can be found in [types.ts](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/src/types.ts))
-
-```ts
-export interface Token {
- denom: string
-
- name: string
- logo: string
- symbol: string
- decimals: number
- tokenType?: TokenType
- coinGeckoId: string
-
- ibc?: IbcTokenMeta
- evm?: EvmTokenMeta
- spl?: SplTokenMeta
- cw20?: Cw20TokenMeta
- cw20s?: Cw20TokenMetaWithSource[] // When there are multiple variations of the same CW20 token
- erc20?: Erc20TokenMeta
-}
-```
-
-There are other ways to define a token metadata for a denom on Injective and we'll explain more in the next page.
+We maintain our own token metadata list off-chain for faster access on the [injective-list](https://github.com/InjectiveLabs/injective-list) repository.
### Token Verification
Verifying your token's metadata can be done in a couple of ways. Here are the verification levels and what they mean:
-* **Verified** -> Your asset metadata has been added to the `@injectivelabs/token-metadata` package. You can find a tutorial on how to add your token's metadata to the package [here](../../../packages/token-metadata/CONTRIBUTING.md).
-* **Internal** -> Your asset's metadata has been verified on-chain using the `MsgSetDenomMetadata` message, as explained [here](https://docs.ts.injective.network/core-modules/token-factory#msgsetdenommetadata).
-* **External** -> Your asset's metadata has been verified on some external source like from Ethereum's contract details, etc.
-* **Unverified** -> Your asset's metadata has not been provided anywhere.
+- **Verified** -> Your asset metadata has been **submitted and verified** to the `@injectivelabs/token-metadata` package. You can find a tutorial on how to add your token's metadata to the package [here](../../../deprecated/token-metadata/CONTRIBUTING.md).
+- **Submitted** -> Your asset metadata has been **submitted** to the `@injectivelabs/token-metadata` package. You can find a tutorial on how to add your token's metadata to the package [here](../../../deprecated/token-metadata/CONTRIBUTING.md).
+- **Internal** -> Your asset's metadata has been verified on-chain using the `MsgSetDenomMetadata` message, as explained [here](https://docs.ts.injective.network/core-modules/token-factory#msgsetdenommetadata).
+- **External** -> Your asset's metadata has been verified on some external source like from Ethereum's contract details, etc.
+- **Unverified** -> Your asset's metadata has not been provided anywhere.
diff --git a/.gitbook/readme/token-metadata/creating-tokens.md b/.gitbook/readme/assets/creating-tokens.md
similarity index 72%
rename from .gitbook/readme/token-metadata/creating-tokens.md
rename to .gitbook/readme/assets/creating-tokens.md
index 87d614329..0c238e683 100644
--- a/.gitbook/readme/token-metadata/creating-tokens.md
+++ b/.gitbook/readme/assets/creating-tokens.md
@@ -10,4 +10,10 @@ A single account can create multiple denoms, by providing a unique subdenom for
* Change the admin. In the future, more admin capabilities may be added. Admins can choose to share admin privileges with other accounts using the authz module. The ChangeAdmin functionality allows changing the master admin account, or even setting it to the zero address `inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49`, meaning no account has admin privileges over the asset.
* Set their token metadata on chain
+{% hint style="info" %}
+One special use case for the factory denoms is the `CW20_ADAPTER`. Using this adapter, assets represented as CW20 can be converted to a bank denom which then can be used to launch a market, send easily on chain, etc.
+
+The denom for a CW20 asset is always in the `factory/{CW20_ADAPTER_CONTRACT_ADDRESS}/{CW20_ASSET_ADDRESS}` where `CW20_ADAPTER_CONTRACT_ADDRESS=inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk` for mainnet.
+{% endhint %}
+
To start creating your denoms, head to our [TokenFactory Core Module page ](../../core-modules/token-factory.md)to see examples.
diff --git a/.gitbook/readme/token-metadata/denom-client.md b/.gitbook/readme/assets/denom-client.md
similarity index 50%
rename from .gitbook/readme/token-metadata/denom-client.md
rename to .gitbook/readme/assets/denom-client.md
index 92f1ec025..f981dfed2 100644
--- a/.gitbook/readme/token-metadata/denom-client.md
+++ b/.gitbook/readme/assets/denom-client.md
@@ -1,6 +1,8 @@
-# Denom Client
+# Denom Client (deprecated)
-The easiest way to get the token metadata information for a particular denom is to utilize the `TokenFactory` class and use its methods:
+This is deprecated, refer to the [injective-list](readme/token-metadata/injective-list.md) guide instead.
+
+The easiest way to get the token metadata information for a particular denom is to utilize the `TokenFactory` class and use its methods:
```ts
import { TokenFactory } from '@injectivelabs/token-metadata'
@@ -16,23 +18,26 @@ const token = tokenFactory.toToken(denom)
console.log(token)
```
+
There are few edge cases that we have to consider while using the `TokenFactory`:
-* If you are trying to query token metadata for a denom that doesn't exist in the [list of tokens](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/src/tokens/tokens/tokens.ts) the `TokenFactory` will return undefined. If so, you should follow our [CONTRIBUTION guide](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/CONTRIBUTING.md) to add the token metadata information in the package.
-* **IMPORTANT** `TokenFactory` does not have the logic to query a denom trace for an IBC denom. Instead, we have a list of pre-defined IBC hashes which we use to get metadata from. We'll explore how to have this possibility as well below.
+- If you are trying to query token metadata for a denom that doesn't exist in the [list of tokens](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/src/tokens/tokens/tokens.ts) the `TokenFactory` will return undefined. If so, you should follow our [CONTRIBUTION guide](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/CONTRIBUTING.md) to add the token metadata information in the package.
+- **IMPORTANT** `TokenFactory` does not have the logic to query a denom trace for an IBC denom. Instead, we have a list of pre-defined IBC hashes which we use to get metadata from. We'll explore how to have this possibility as well below.
+
-#### DenomClientAsync
+#### DenomClientAsync (deprecated)
-As part of the `@injectivelabs/sdk-ui-ts` package we have an abstraction class [DenomClientAsync](../../../packages/sdk-ui-ts/src/denom/DenomClientAsync.ts) which uses the `TokenFactory` class under the hood, has a caching mechanism for IBC hashes, fetches token metadata from the chain, ERC20 contract details, CW20 contract details, etc. With it, you can ensure that you get all of the `Token` information for the denoms used within your application.
+As part of the `@injectivelabs/sdk-ui-ts` package we have an abstraction class [DenomClientAsync](../../../packages/sdk-ui-ts/src/denom/DenomClientAsync.ts) which uses the `TokenFactory` class under the hood, has a caching mechanism for IBC hashes, fetches token metadata from the chain, ERC20 contract details, CW20 contract details, etc. With it, you can ensure that you get all of the `Token` information for the denoms used within your application.
The usage is pretty simple, here is an example:
+
```ts
import { DenomClientAsync } from '@injectivelabs/sdk-ui-ts'
import { Network } from '@injectivelabs/networks'
const network = Network.Mainnet
-const denomClient = new DenomClientAsync(network) // you can omit the network argument if you want to have the TokenFactory for mainnet
+const denomClient = new DenomClientAsync(network) // you can omit the network argument if you want to have the TokenFactory for mainnet
// After instantiating, we can start using it in our dApp
const denom = 'peggy0x...'
diff --git a/.gitbook/readme/assets/injective-list.md b/.gitbook/readme/assets/injective-list.md
new file mode 100644
index 000000000..d340cdb2c
--- /dev/null
+++ b/.gitbook/readme/assets/injective-list.md
@@ -0,0 +1,33 @@
+# Injective list
+
+We have moved the on-chain denoms token metadata to the [injective-list](https://github.com/InjectiveLabs/injective-lists) repository. This repository will aggregate data from several sources and produce a comprehensive token metadata master list.
+
+Here is an example of how to integrate injective-list with the TokenFactoryStatic class:
+
+1. Download the injective list json file from github:
+ https://github.com/InjectiveLabs/injective-lists?tab=readme-ov-file#-usage
+
+2. Use the `TokenFactoryStatic` class from the `sdk-ts` package
+
+```ts
+import {
+ TokenType,
+ TokenStatic,
+ TokenFactoryStatic,
+} from '@injectivelabs/sdk-ts'
+import { tokens } from '../data/tokens.json' // json file downloaded from step 1
+
+export const tokenFactoryStatic = new TokenFactoryStatic(
+ tokens as TokenStatic[],
+)
+
+// After instantiating, we can start using it in our dApp
+const denom = 'peggy0x...'
+const token = tokenFactoryStatic.toToken(denom)
+
+console.log(token)
+```
+
+There are few edge cases that we have to consider while using the `TokenFactory`:
+
+- If you are trying to query token metadata for a denom that doesn't exist in the [list of tokens](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/src/tokens/tokens/tokens.ts) the `TokenFactory` will return undefined. If so, you should follow our [CONTRIBUTION guide](https://github.com/InjectiveLabs/injective-lists/blob/master/CONTRIBUTING.md) to add the token metadata information in the package.
diff --git a/packages/sdk-ui-ts/src/client/types/cosmos.ts b/.gitbook/readme/assets/token-price.md
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/cosmos.ts
rename to .gitbook/readme/assets/token-price.md
diff --git a/.gitbook/readme/denoms-(tokens)/README.md b/.gitbook/readme/denoms-(tokens)/README.md
index 69617444c..dff6688f4 100644
--- a/.gitbook/readme/denoms-(tokens)/README.md
+++ b/.gitbook/readme/denoms-(tokens)/README.md
@@ -4,30 +4,29 @@ A denom is how assets are represented within the Bank module of Injective. These
Depending on the origin of the denom and how it was created on Injective we have different types of denoms:
-* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
-* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
-* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
-* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. They have the following format `share{id}`
-* **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{OWNER}/{SUBDENOM}` where the `OWNER` is the owner who created the factory denom. One example is the CW20 token factory denom `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
+- **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
+- **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
+- **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
+- **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. They have the following format `share{id}`
+- **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{OWNER}/{SUBDENOM}` where the `OWNER` is the owner who created the factory denom. One example is the CW20 token factory denom `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
### Token
Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. The metadata of the denom is quite important for a dApp developer as information on the chain is stored in its raw form (for example `1inj` on the chain is represented as `1*10^18inj`) so we need to have a way to show the user human-readable information (numbers, logo, symbol, etc). To convert a denom to a Token, we’ve built an abstraction class within the `sdk-ts` which uses the `token-metadata` package to convert known denoms to a Token representation.
-
# Token Metadata
Assets on Injective are represented as denoms. Denoms (and the amounts) are not humanly readable and this is why we need to have a way to "attach" token metadata information for a particular denom. This is achievable using the `@injectivelabs/token-metadata` package.
Let's recap the types of denoms we have in the Getting Started section:
-* **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
-* **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
-* **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
-* **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. The have the following format `share{id}`
-* **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
+- **Native denoms** - there is only one denom of this type, the `inj` denom which represented the native coin of Injective,
+- **Peggy denoms** - these denoms represent assets bridged over from Ethereum to Injective using the Peggy bridge. They have the following format `peggy{ERC20_CONTRACT_ADDRESS}`
+- **IBC denoms** - these denoms represent assets bridged over from other Cosmos chains through IBC. They have the following format `ibc/{hash}`.
+- **Insurance Fund Denoms** - these denoms represent token shares of the insurance funds created on Injective. The have the following format `share{id}`
+- **Factory Denoms** - these denoms are a representation of a CW20 token from Cosmwasm on the Injective native bank module. They have the following format `factory/{CW20_ADAPTER_CONTRACT}/{CW20_CONTRACT_ADDRESS}` where the `CW20_ADAPTER_CONTRACT` is the adapter contract address which does the conversion between CW20 and the native Bank module.
-Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. It has the following interface (more details can be found in [types.ts](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/src/types.ts))
+Token is simply a denom on the Injective chain with some meta information. The metadata includes information like symbol, name, decimals, logo for the particular denom, etc. It has the following interface (more details can be found in [types.ts](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/src/types.ts))
```ts
export interface Token {
diff --git a/.gitbook/readme/denoms-(tokens)/denom-client.md b/.gitbook/readme/denoms-(tokens)/denom-client.md
index 236c5a0a3..b246447d9 100644
--- a/.gitbook/readme/denoms-(tokens)/denom-client.md
+++ b/.gitbook/readme/denoms-(tokens)/denom-client.md
@@ -1,4 +1,6 @@
-The easiest way to get the token metadata information for a particular denom is to utilize the `TokenFactory` class and use its methods:
+This is deprecated, refer to the [injective-list](readme/token-metadata/injective-list.md) guide instead.
+
+The easiest way to get the token metadata information for a particular denom is to utilize the `TokenFactory` class and use its methods:
```ts
import { TokenFactory } from '@injectivelabs/token-metadata'
@@ -14,23 +16,26 @@ const token = tokenFactory.toToken(denom)
console.log(token)
```
+
There are few edge cases that we have to consider while using the `TokenFactory`:
-* If you are trying to query token metadata for a denom that doesn't exist in the [list of tokens](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/src/tokens/tokens/tokens.ts) the `TokenFactory` will return undefined. If this is the case, you should follow our [CONTRIBUTION guide](https://github.com/InjectiveLabs/injective-ts/blob/master/packages/token-metadata/CONTRIBUTING.md) to add the token metadata information in the package.
-* **IMPORTANT** `TokenFactory` does not have the logic to query a denom trace for an IBC denom. Instead, we have a list of pre-defined IBC hashes which we use to get metadata from. We'll explore how to have this possibility as well below.
+- If you are trying to query token metadata for a denom that doesn't exist in the [list of tokens](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/src/tokens/tokens/tokens.ts) the `TokenFactory` will return undefined. If this is the case, you should follow our [CONTRIBUTION guide](https://github.com/InjectiveLabs/injective-ts/blob/master/deprecated/token-metadata/CONTRIBUTING.md) to add the token metadata information in the package.
+- **IMPORTANT** `TokenFactory` does not have the logic to query a denom trace for an IBC denom. Instead, we have a list of pre-defined IBC hashes which we use to get metadata from. We'll explore how to have this possibility as well below.
-### DenomClientAsync
+### DenomClientAsync (deprecated)
+
As part of the `@injectivelabs/sdk-ui-ts` package we have an abstraction class [DenomClientAsync](https://github.com/InjectiveLabs/injective-ts/blob/dev/packages/sdk-ui-ts/src/denom/DenomClientAsync.ts) which uses the `TokenFactory` class under the hood, has a caching mechanism for IBC hashes, fetches token metadata from the chain, ERC20 contract details, CW20 contract details, etc. With it, you can ensure that you get all of the `Token` information for the denoms used within your application.
The usage is pretty simple, here is an example:
+
```ts
import { DenomClientAsync } from '@injectivelabs/sdk-ui-ts'
import { Network } from '@injectivelabs/networks'
const network = Network.Mainnet
-const denomClient = new DenomClientAsync(network) // you can omit the network argument if you want to have the TokenFactory for mainnet
+const denomClient = new DenomClientAsync(network) // you can omit the network argument if you want to have the TokenFactory for mainnet
// After instantiating, we can start using it in our dApp
const denom = 'peggy0x...'
diff --git a/.gitbook/readme/networks.md b/.gitbook/readme/networks.md
index 79df11d12..bb24077f3 100644
--- a/.gitbook/readme/networks.md
+++ b/.gitbook/readme/networks.md
@@ -1,6 +1,12 @@
# Networks
-Building dApps on Injective requires being able to tap into different environments and networks where you can test your dApp with ease. As part of the `injective-ts` monorepo, we have the `@injectivelabs/networks` package which allows developers to easily access pre-defined environments to connect to different pieces of Injective.
+{% hint style="warning" %}
+Up-to-date public Endpoints can be found [here](https://docs.injective.network/develop/public-endpoints/#mainnet). We **do not recommend** using them in production for applications having high usage/traffic. There are thousands of developers using the public infrastructure and we cannot promise 100% uptime and reliability. \
+\
+If you still opt to use the **public** networks, you can use the `Network.{Mainnet|Testnet}Sentry` from the `@injectivelabs/networks` package.
+{% endhint %}
+
+Building dApps on Injective requires tapping into different environments and networks where you can easily test your dApp. As part of the `injective-ts` monorepo, we have the `@injectivelabs/networks` package allows developers to easily access pre-defined environments to connect to different pieces of Injective.
There are two key functions exported from this package:
@@ -8,7 +14,7 @@ There are two key functions exported from this package:
* `export function getEndpointsForNetwork(network: Network): OldNetworkEndpoints`
* `export function getNetworkInfo(network: Network): ChainInfo`
-The first one, `getNetworkEndpoints` returns a pre-defined set of endpoints that can be used by the developers - depending on their need. Here is the interface that gets returned from this function:
+The first one, `getNetworkEndpoints` returns a pre-defined set of endpoints that can be used by the developers - depending on their needs. Here is the interface that gets returned from this function:
```ts
export type NetworkEndpoints = {
@@ -30,11 +36,15 @@ export type OldNetworkEndpoints = {
}
```
-Lets explain these endpoints, and what do they mean:
+Let's explain these endpoints, and what they mean:
-* `indexer` is the grpc-web endpoint that we can use to connect to the `exchange/indexer` service which listens for events from the chain, processes the events and stores the data into a mongoDB so its easier and much more performant to serve that data than querying it straight from the chain itself,
-* `grpc` is the grpc-web endpoint that we can use to connect to a sentry node. A Sentry node is basically a read (and light) only version of the chain that we can use to query data directly from the chain.
+* `indexer` is the [**grpc-web**](https://github.com/grpc/grpc-web) endpoint that we can use to connect to the `exchange/indexer` service which listens for events from the chain, processes the events, and stores the data into a MongoDB so it's easier and much more performant to serve that data than querying it straight from the chain itself,
+* `grpc` is the [**grpc-web**](https://github.com/grpc/grpc-web) endpoint that we can use to connect to a sentry node. A Sentry node is a read (and light) only version of the chain that we can use to query data directly from the chain.
* `rest` is the REST endpoint that we can use to connect to a sentry node.
* `rpc` is the REST endpoint that we can use to connect to the Tendermint RPC,
The `getNetworkInfo` exports these endpoints plus the `chainId` and the default `fee` for the `Network` we want.
+
+{% hint style="info" %}
+Using the TypeScript SDK with your infrastructure (endpoints) means you have to set up a `grpc-web` proxy in your server. To learn more about it, please reference [this documentation](https://github.com/grpc/grpc-web?tab=readme-ov-file#2-run-the-server-and-proxy).
+{% endhint %}
diff --git a/.gitbook/transactions/msgbroadcaster.md b/.gitbook/transactions/msgbroadcaster.md
index 217d6656a..46620e750 100644
--- a/.gitbook/transactions/msgbroadcaster.md
+++ b/.gitbook/transactions/msgbroadcaster.md
@@ -1,10 +1,12 @@
# MsgBroadcaster
-The `MsgBroadcast`er abstraction class is a way to broadcast transactions on Injective with ease. With it, you can just pass a Message that you want to be packed in a transaction and the signer address and the transaction will be prepared, signed and broadcasted.
+The `MsgBroadcast`er abstraction class is a way to broadcast transactions on Injective with ease. With it, you can pass a Message that you want to be packed in a transaction and the signer's address and the transaction will be prepared, signed, and broadcasted.
+
+An example of usage can be found on our [Helix demo repo](https://github.com/InjectiveLabs/injective-helix-demo). As for the messages that you can pass to the `broadcast` methods, you can find examples in the [Core Modules](../core-modules/) section of the docs.
### MsgBroadcaster + Wallet Strategy
-This MsgBroadcaster is used alongside the Wallet Strategy class for building decentralized applications.
+This MsgBroadcaster is used alongside the Wallet Strategy class for building decentralized applications.
To instantiate (and use) the `MsgBroadcaster` class, you can use the following code snippet
@@ -39,9 +41,55 @@ export const msgBroadcastClient = new MsgBroadcaster({
})()
```
+#### Constructor/Broadcast Options
+
+We allow to override some of the options passed to the constructor of `MsgBroadcaster` as well as when broadcasting the transaction. Here is the interface and the meaning of each field
+
+````typescript
+import { Msgs } from '@injectivelabs/sdk-ts'
+import { ChainId, EthereumChainId } from '@injectivelabs/ts-types'
+import { Network, NetworkEndpoints } from '@injectivelabs/networks'
+import type { WalletStrategy } from '../strategies'
+
+export interface MsgBroadcasterOptions {
+ network: Network /** network configuration (chainId, fees, etc) - Network.MainnetSentry for mainnet or Network.TestnetSentry for testnet */
+ endpoints?: NetworkEndpoints /** optional - overriding the endpoints taken from the `network` param **/
+ feePayerPubKey?: string /** optional - if you are using the fee delegation service, you can set the fee payer so you don't do an extra query to the Web3Gateway */
+ simulateTx?: boolean /** simulate the transaction before broadcasting + get gas fees needed for the transaction */
+ txTimeout?: number /** optional - blocks to wait for tx to be included in a block **/
+ walletStrategy: WalletStrategy
+ gasBufferCoefficient?: number /** optional - as gas buffer to add to the simulated/hardcoded gas to ensure the transaction is included in a block */
+}
+
+
+export interface MsgBroadcasterTxOptions {
+ memo?: string /** MEMO added to the transaction **/
+ injectiveAddress: string /** the signer of the transaction **/
+ msgs: Msgs | Msgs[] /** the messages to pack into a transaction **/
+
+ /*
+ *** overriding the hardcoded gas/simulation -
+ *** depending on the simulateTx parameter in
+ *** the MsgBroadcaster constructor
+ */
+ gas?: {
+ gasPrice?: string
+ gas?: number /** gas limit */
+ feePayer?: string
+ granter?: string
+ }
+}
+
+```
+````
+
+{% hint style="info" %}
+To override the `endpoints` and use your infrastructure (which is something we recommend), please read more on the [Networks](../readme/networks.md) page on the endpoints you need to provide and how to set them up.
+{% endhint %}
+
### MsgBroadcaster with Private Key
-This MsgBroadcaster is used by passing a private key (mostly used for CLI environments).
+This MsgBroadcaster is used with a private key (mostly used for CLI environments). Constructor/broadcast options are quite similar as for the `MsgBroadcaster`.
```ts
import { MsgBroadcasterWithPk } from '@injectivelabs/wallet-ts'
diff --git a/.gitbook/transactions/transactions-cosmos/README.md b/.gitbook/transactions/transactions-cosmos/README.md
index 1d7a2fad8..6b3ed8e70 100644
--- a/.gitbook/transactions/transactions-cosmos/README.md
+++ b/.gitbook/transactions/transactions-cosmos/README.md
@@ -16,63 +16,60 @@ Getting a private key from cosmos wallets is usually done by taking the current
import {
MsgSend,
BaseAccount,
- DEFAULT_STD_FEE,
ChainRestAuthApi,
createTransaction,
ChainRestTendermintApi,
-} from '@injectivelabs/sdk-ts'
-import {
- DEFAULT_STD_FEE,
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
-} from '@injectivelabs/utils'
-import { ChainId } from '@injectivelabs/ts-types'
-import { Network, getNetworkEndpoints } from '@injectivelabs/networks'
-
-const injectiveAddress = 'inj1'
-const chainId = 'injective-1' /* ChainId.Mainnet */
-const restEndpoint =
- 'https://lcd.injective.network' /* getNetworkEndpoints(Network.Mainnet).rest */
-const amount = {
- amount: new BigNumberInBase(0.01).toWei().toFixed(),
- denom: 'inj',
-}
+} from "@injectivelabs/sdk-ts";
+import { BigNumberInBase } from "@injectivelabs/utils";
+import { getStdFee, DEFAULT_BLOCK_TIMEOUT_HEIGHT } from "@injectivelabs/utils";
+
+(async () => {
+ const injectiveAddress = "inj1";
+ const chainId = "injective-1"; /* ChainId.Mainnet */
+ const restEndpoint =
+ "https://sentry.lcd.injective.network"; /* getNetworkEndpoints(Network.MainnetSentry).rest */
+ const amount = {
+ amount: new BigNumberInBase(0.01).toWei().toFixed(),
+ denom: "inj",
+ };
+
+ /** Account Details **/
+ const chainRestAuthApi = new ChainRestAuthApi(restEndpoint);
+ const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
+ injectiveAddress
+ );
+ const baseAccount = BaseAccount.fromRestApi(accountDetailsResponse);
+
+ /** Block Details */
+ const chainRestTendermintApi = new ChainRestTendermintApi(restEndpoint);
+ const latestBlock = await chainRestTendermintApi.fetchLatestBlock();
+ const latestHeight = latestBlock.header.height;
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT
+ );
+
+ /** Preparing the transaction */
+ const msg = MsgSend.fromJSON({
+ amount,
+ srcInjectiveAddress: injectiveAddress,
+ dstInjectiveAddress: injectiveAddress,
+ });
+
+ /** Get the PubKey of the Signer from the Wallet/Private Key */
+ const pubKey = await getPubKey();
+
+ /** Prepare the Transaction **/
+ const { txRaw, signDoc } = createTransaction({
+ pubKey,
+ chainId,
+ fee: getStdFee({}),
+ message: msg,
+ sequence: baseAccount.sequence,
+ timeoutHeight: timeoutHeight.toNumber(),
+ accountNumber: baseAccount.accountNumber,
+ });
+})();
-/** Account Details **/
-const chainRestAuthApi = new ChainRestAuthApi(restEndpoint)
-const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
- injectiveAddress,
-)
-const baseAccount = BaseAccount.fromRestApi(accountDetailsResponse)
-const accountDetails = baseAccount.toAccountDetails()
-
-/** Block Details */
-const chainRestTendermintApi = new ChainRestTendermintApi(restEndpoint)
-const latestBlock = await chainRestTendermintApi.fetchLatestBlock()
-const latestHeight = latestBlock.header.height
-const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
-)
-
-/** Preparing the transaction */
-const msg = MsgSend.fromJSON({
- amount,
- srcInjectiveAddress: injectiveAddress,
- dstInjectiveAddress: injectiveAddress,
-})
-
-/** Get the PubKey of the Signer from the Wallet/Private Key */
-const pubKey = await getPubKey()
-
-/** Prepare the Transaction **/
-const { txRaw, signDoc } = createTransaction({
- pubKey,
- chainId,
- fee: DEFAULT_STD_FEE,
- message: msgs,
- sequence: baseAccount.sequence,
- timeoutHeight: timeoutHeight.toNumber(),
- accountNumber: baseAccount.accountNumber,
-})
```
### Signing a transaction
@@ -81,8 +78,9 @@ Once we have prepared the transaction, we proceed to signing. Once you get the `
```ts
import { ChainId } from '@injectivelabs/ts-types'
+import { SignDoc } from '@keplr-wallet/types'
-const getKeplr = async (chainId) => {
+const getKeplr = async (chainId: string) => {
await window.keplr.enable(chainId);
const offlineSigner = window.keplr.getOfflineSigner(chainId);
@@ -92,29 +90,30 @@ const getKeplr = async (chainId) => {
return { offlineSigner, accounts, key }
}
-const { offlineSigner, accounts, key } = await getKeplr(ChainId.Mainnet)
+const { offlineSigner } = await getKeplr(ChainId.Mainnet)
/* Sign the Transaction */
-const address = 'inj1'
+const address = 'inj1...'
const signDoc = /* From the previous step */
-const directSignResponse = await offlineSigner.signDirect(address, signDoc)
+const directSignResponse = await offlineSigner.signDirect(address, signDoc as SignDoc)
```
-You can also use our `@injectivelabs/wallet-ts` package to get out-of-the-box wallet provides that will give you abstracted methods which you can use to sign transaction. Refer to the documentation of the package, its really simple to setup and use. **This is the recommended way as you have access to more than one wallet to use in your dApp. The `WalletStrategy` provides more than just signing transaction abstractions.**
+You can also use our `@injectivelabs/wallet-ts` package to get out-of-the-box wallet provides that will give you abstracted methods that you can use to sign transactions. Refer to the documentation of the package, its straightforward to setup and use. **This is the recommended way as you have access to more than one wallet to use in your dApp. The `WalletStrategy` provides more than just signing transaction abstractions.**
### Broadcasting a transaction
-Once we have the signature ready, we need to broadcast the transaction to the Injective chain itself. After getting the signature from the second step, we need to include that signature in the signed transaction and broadcast it to the chain.
+Once we have the signature ready, we need to broadcast the transaction to the Injective chain itself. After getting the signature from the second step, we need to include it in the signed transaction and broadcast it to the chain.
```ts
import { ChainId } from '@injectivelabs/ts-types'
import {
- BroadcastModeKeplr,
+ TxRestClient,
CosmosTxV1Beta1Tx,
+ BroadcastModeKeplr,
getTxRawFromTxRawOrDirectSignResponse,
- TxRestClient
+ TxRaw,
} from '@injectivelabs/sdk-ts'
-import { Network, getNetworkEndpoints } from '@injectivelabs/networks'
+import { TransactionException } from '@injectivelabs/exceptions'
/**
* IMPORTANT NOTE:
@@ -128,11 +127,11 @@ import { Network, getNetworkEndpoints } from '@injectivelabs/networks'
* transaction (i.e change gas limit or gas prices) and the transaction
* that get's signed and the one that gets broadcasted are not the same.
*/
-const directSignResponse = /* From the second step above */
+const directSignResponse = /* From the second step above */;
const txRaw = getTxRawFromTxRawOrDirectSignResponse(directSignResponse)
-const broadcastTx = async (chainId, txRaw) => {
- const getKeplr = async (chainId) => {
+const broadcastTx = async (chainId: String, txRaw: TxRaw) => {
+ const getKeplr = async (chainId: string) => {
await window.keplr.enable(chainId);
return window.keplr
@@ -163,7 +162,7 @@ const txHash = await broadcastTx(ChainId.Mainnet, txRaw)
* it can happen that it's still in the mempool so we need to query
* the chain to see when the transaction will be included
*/
-const restEndpoint = 'https://lcd.injective.network' /* getNetworkEndpoints(Network.Mainnet).rest */
+const restEndpoint = 'https://sentry.lcd.injective.network' /* getNetworkEndpoints(Network.MainnetSentry).rest */
const txRestClient = new TxRestClient(restEndpoint)
/** This will poll querying the transaction and await for it's inclusion in the block */
@@ -176,102 +175,106 @@ Let's have a look at the whole flow (using Keplr as a signing wallet)
```ts
import {
+ TxRaw,
MsgSend,
BaseAccount,
- DEFAULT_STD_FEE,
+ TxRestClient,
ChainRestAuthApi,
createTransaction,
CosmosTxV1Beta1Tx,
BroadcastModeKeplr,
ChainRestTendermintApi,
-} from '@injectivelabs/sdk-ts'
-import {
- DEFAULT_STD_FEE,
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
-} from '@injectivelabs/utils'
-import { ChainId } from '@injectivelabs/ts-types'
-import { Network, getNetworkEndpoints } from '@injectivelabs/networks'
-
-const getKeplr = async (chainId) => {
- await window.keplr.enable(chainId)
+ getTxRawFromTxRawOrDirectSignResponse,
+} from "@injectivelabs/sdk-ts";
+import { getStdFee, DEFAULT_BLOCK_TIMEOUT_HEIGHT } from "@injectivelabs/utils";
+import { ChainId } from "@injectivelabs/ts-types";
+import { BigNumberInBase } from "@injectivelabs/utils";
+import { TransactionException } from "@injectivelabs/exceptions";
+import { SignDoc } from "@keplr-wallet/types";
+
+const getKeplr = async (chainId: string) => {
+ await window.keplr.enable(chainId);
- const offlineSigner = window.keplr.getOfflineSigner(chainId)
- const accounts = await offlineSigner.getAccounts()
- const key = await window.keplr.getKey(chainId)
+ const offlineSigner = window.keplr.getOfflineSigner(chainId);
+ const accounts = await offlineSigner.getAccounts();
+ const key = await window.keplr.getKey(chainId);
- return { offlineSigner, accounts, key }
-}
+ return { offlineSigner, accounts, key };
+};
-const broadcastTx = async (chainId, txRaw) => {
- const keplr = await getKeplr(ChainId.Mainnet)
+const broadcastTx = async (chainId: string, txRaw: TxRaw) => {
+ const keplr = await getKeplr(ChainId.Mainnet);
const result = await keplr.sendTx(
chainId,
CosmosTxV1Beta1Tx.TxRaw.encode(txRaw).finish(),
- BroadcastModeKeplr.Sync,
- )
+ BroadcastModeKeplr.Sync
+ );
if (!result || result.length === 0) {
throw new TransactionException(
- new Error('Transaction failed to be broadcasted'),
- { contextModule: 'Keplr' },
- )
+ new Error("Transaction failed to be broadcasted"),
+ { contextModule: "Keplr" }
+ );
}
- return Buffer.from(result).toString('hex')
-}
-
-const chainId = 'injective-1' /* ChainId.Mainnet */
-const { key } = await getKeplr(chainId)
-const pubKey = Buffer.from(key.pubKey).toString('base64')
-const injectiveAddress = key.bech32Address
-const restEndpoint =
- 'https://lcd.injective.network' /* getNetworkEndpoints(Network.Mainnet).rest */
-const amount = {
- amount: new BigNumberInBase(0.01).toWei().toFixed(),
- denom: 'inj',
-}
-
-/** Account Details **/
-const chainRestAuthApi = new ChainRestAuthApi(restEndpoint)
-const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
- injectiveAddress,
-)
-const baseAccount = BaseAccount.fromRestApi(accountDetailsResponse)
-const accountDetails = baseAccount.toAccountDetails()
-
-/** Block Details */
-const chainRestTendermintApi = new ChainRestTendermintApi(restEndpoint)
-const latestBlock = await chainRestTendermintApi.fetchLatestBlock()
-const latestHeight = latestBlock.header.height
-const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
-)
-
-/** Preparing the transaction */
-const msg = MsgSend.fromJSON({
- amount,
- srcInjectiveAddress: injectiveAddress,
- dstInjectiveAddress: injectiveAddress,
-})
-
-/** Prepare the Transaction **/
-const { txRaw, signDoc } = createTransaction({
- pubKey,
- chainId,
- fee: DEFAULT_STD_FEE,
- message: msgs,
- sequence: baseAccount.sequence,
- timeoutHeight: timeoutHeight.toNumber(),
- accountNumber: baseAccount.accountNumber,
-})
-
-const directSignResponse = await offlineSigner.signDirect(
- injectiveAddress,
- signDoc,
-)
-const txRaw = getTxRawFromTxRawOrDirectSignResponse(directSignResponse)
-const txHash = await broadcastTx(ChainId.Mainnet, txRaw)
-const response = await new TxRestClient(restEndpoint).fetchTxPoll(txHash)
+ return Buffer.from(result).toString("hex");
+};
+
+(async () => {
+ const chainId = "injective-1"; /* ChainId.Mainnet */
+ const { key, offlineSigner } = await getKeplr(chainId);
+ const pubKey = Buffer.from(key.pubKey).toString("base64");
+ const injectiveAddress = key.bech32Address;
+ const restEndpoint =
+ "https://sentry.lcd.injective.network"; /* getNetworkEndpoints(Network.MainnetSentry).rest */
+ const amount = {
+ amount: new BigNumberInBase(0.01).toWei().toFixed(),
+ denom: "inj",
+ };
+
+ /** Account Details **/
+ const chainRestAuthApi = new ChainRestAuthApi(restEndpoint);
+ const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
+ injectiveAddress
+ );
+ const baseAccount = BaseAccount.fromRestApi(accountDetailsResponse);
+
+ /** Block Details */
+ const chainRestTendermintApi = new ChainRestTendermintApi(restEndpoint);
+ const latestBlock = await chainRestTendermintApi.fetchLatestBlock();
+ const latestHeight = latestBlock.header.height;
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT
+ );
+
+ /** Preparing the transaction */
+ const msg = MsgSend.fromJSON({
+ amount,
+ srcInjectiveAddress: injectiveAddress,
+ dstInjectiveAddress: injectiveAddress,
+ });
+
+ /** Prepare the Transaction **/
+ const { signDoc } = createTransaction({
+ pubKey,
+ chainId,
+ fee: getStdFee({}),
+ message: msg,
+ sequence: baseAccount.sequence,
+ timeoutHeight: timeoutHeight.toNumber(),
+ accountNumber: baseAccount.accountNumber,
+ });
+
+ const directSignResponse = await offlineSigner.signDirect(
+ injectiveAddress,
+ signDoc as SignDoc
+ );
+ const txRaw = getTxRawFromTxRawOrDirectSignResponse(directSignResponse);
+ const txHash = await broadcastTx(ChainId.Mainnet, txRaw);
+ const response = await new TxRestClient(restEndpoint).fetchTxPoll(txHash);
+
+ console.log(response);
+})();
```
### Example with WalletStrategy (Prepare + Sign + Broadcast)
diff --git a/.gitbook/transactions/web3-gateway.md b/.gitbook/transactions/web3-gateway.md
index 686288e86..dc8ba846e 100644
--- a/.gitbook/transactions/web3-gateway.md
+++ b/.gitbook/transactions/web3-gateway.md
@@ -4,34 +4,34 @@ _Pre-requisite reading #1:_ [Transaction Lifecycle](https://docs.cosmos.network/
_Pre-requisite reading #2:_ Transactions on Injective
-The Web3Gateway microservice exposes an API to the end user with the main purpose of providing fee delegation for transactions that happen on Injective. This allows users to enjoy a gasless environment while interacting with Injective as the gas is being paid by the runner of the Web3Gateway service.
+The Web3Gateway microservice exposes an API to the end user with the main purpose of providing fee delegation for transactions that happen on Injective. This allows users to enjoy a gasless environment while interacting with Injective as the gas is paid for by the runner of the Web3Gateway service.
-Alongside fee delegation support, Web3Gateway allows developers to convert Messages to EIP712 typed data. After converting the Message te EIP712 data, it can be signed by any Ethereum native wallet and then broadcasted to Injective.
+Alongside fee delegation support, Web3Gateway allows developers to convert Messages to EIP712 typed data. After converting the Message the EIP712 data, it can be signed by any Ethereum native wallet and then broadcasted to Injective.
### Fee Delegation
-As said before, fee delegation allows users to interact with Injective (submit transactions) without having to pay for gas. As a part of the _Transaction Lifecycle_ of every Cosmos-SDK powered chain, we have \_AnteHandler\_s, which, among other things perform signature verification, gas calculation and fee deduction.
+As said before, fee delegation allows users to interact with Injective (submit transactions) without having to pay for gas. As a part of the _Transaction Lifecycle_ of every Cosmos-SDK powered chain, we have `AnteHandler`'s, which, among other things perform a signature verification, gas calculation, and fee deduction.
-There are couple of things that we need to know:
+There are a couple of things that we need to know:
* Transactions can have multiple signers (i.e we can include multiple signatures within a transaction),
* Gas Fee for the transaction is deducted from the `authInfo.fee.feePayer` value and the signature that gets verified against the `feePayer` is the first signature within the signatures list of the Transaction ([reference](https://github.com/cosmos/cosmos-sdk/blob/e2d6cbdeb55555893ffde3f2ae0ed6db7179fd0d/x/auth/ante/fee.go#L15-L24)),
* The rest of the signatures are being verified against the actual sender of the transaction.
-Knowing this, to achieve fee delegation, we have to sign the transaction using the private key of the Web3Gateway microservice, include the address of that privateKey as a `feePayer`, sign this transaction using the privateKey that we actually want to interact with Injective from and broadcast that transaction.
+Knowing this, to achieve fee delegation, we have to sign the transaction using the private key of the Web3Gateway microservice, including the address of that `privateKey` as a `feePayer`, sign this transaction using the privateKey that we want to interact with Injective from, and broadcast that transaction.
### Web3Gateway API
-Everyone can run the Web3Gateway microservice and provide fee delegation services to their users. As an example usage, developers who build exchange dApps on top of Injective can run this microservice to offer gasless trading environment to their traders.
+Everyone can run the Web3Gateway microservice and provide fee delegation services to their users. An example usage can be developers who build exchange dApps on top of Injective run this microservice to offer a gasless trading environment to their traders.
This microservice exposes an API containing two core methods:
-* `PrepareTx`
-* `BroadcastTx`
+* `PrepareTx`(and `PrepareCosmosTx`)
+* `BroadcastTx` (and `BroadcastCosmosTx`)
### PrepareTx
-The `PrepareTx` method accepts a Message(s) including context for the transaction the user wants to execute (`chainId`, `signerAddress`, `timeoutHeight`, etc), and returns an EIP712 typed data of the particular message which includes the `feePayer` and its signature within the EIP712 typed data. We can use this EIP712 typed data to sign it using any Ethereum native wallet and get the signature for the user that wants to interact with Injective.
+The `PrepareTx` method accepts a Message(s) including context for the transaction the user wants to execute (`chainId`, `signerAddress`, `timeoutHeight`, etc), and returns an EIP712 typed data of the particular message, including its signature within the EIP712 typed data. We can use this EIP712 typed data to sign it using any Ethereum native wallet and get the signature for users who want to interact with Injective.
The EIP712 typed data is generated from the proto definition of the Message we pass to the `PrepareTx` method.
@@ -39,10 +39,14 @@ The EIP712 typed data is generated from the proto definition of the Message we p
The `BroadcastTx` method is responsible for broadcasting the transaction to the node. Alongside the full response of the `PrepareTx` API call, we pass in the signature of the EIP712 typed data. Then, the `BroadcastTx` packs the Message into a native Cosmos transaction, prepares the transaction (including its context) and broadcasts it to Injective. As a result, the transaction hash is being returned to the user.
+### Prepare/BroadcastCosmosTx
+The above methods are used when we use **Ethereum Native wallets** to sign and broadcast transactions as we sign an EIP712 transaction representation.
-🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧
+If we want support fee delegation on Cosmos native wallets using the Web3Gateway, we can omit the PrepareCosmosTx call (or call it if we need the Web3Gateway signer's `publicKey`), prepare the transaction on the client side, sign it using a Cosmos wallet, and broadcast it using the `BroadcastCosmosTx` method.
-This wiki page is currently under work in progress.
+The way this works is we add the `publicKey` of the `Web3Gateway`'s signer to the `authInfo` object in the `TxRaw` and then sign the transaction using the `privateKey` on the API side when we broadcast
-🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧 🚧
+{% hint style="info" %}
+The difference with the previous EIP712 approach is that we need to sign the transaction using the `Web3Gateway`'s signer in advance i.e when we generate the EIP712 -> meaning that we need to use `PrepareTx` and can't generate the transaction on the client side.).
+{% endhint %}
diff --git a/.gitbook/wallet/README.md b/.gitbook/wallet/README.md
index 2a43104ea..ee7e6443e 100644
--- a/.gitbook/wallet/README.md
+++ b/.gitbook/wallet/README.md
@@ -19,8 +19,9 @@ With the explanation above, we can understand that once you have your **PublicKe
### Topics
-| Topic | Description |
-| -------------------------------------------- | ----------------------------------------------------------- |
-| [Accounts on Injective](wallet-accounts.md) | Accounts/Wallets definition on Injective |
-| [Wallet Connections](wallet-connections.md) | Connecting directly using Metamask or Keplr |
-| [Wallet Strategy](wallet-wallet-strategy.md) | Using the WalletStrategy to connect using different wallets |
+| Topic | Description |
+| ------------------------------------------------------- | --------------------------------------------------------------- |
+| [Accounts on Injective](wallet-accounts.md) | Accounts/Wallets definition on Injective |
+| [Wallet Connections](wallet-connections.md) | Connecting directly using Metamask or Keplr |
+| [Wallet Strategy](wallet-wallet-strategy.md) | Using the WalletStrategy to connect using different wallets |
+| [Offchain (Arbitrary) Data](offchain-arbitrary-data.md) | Signing and verifying data offchain using the ADR-036 by Cosmos |
diff --git a/.gitbook/wallet/offchain-arbitrary-data.md b/.gitbook/wallet/offchain-arbitrary-data.md
new file mode 100644
index 000000000..29339417b
--- /dev/null
+++ b/.gitbook/wallet/offchain-arbitrary-data.md
@@ -0,0 +1,60 @@
+# Offchain (Arbitrary) Data
+
+On this page, we'll provide an example of how to sign and verify arbitrary data as per the [ADR-036](https://docs.cosmos.network/main/build/architecture/adr-036-arbitrary-signature) specification on Cosmos.
+
+{% hint style="info" %}
+You can use the `generateArbitrarySignDoc` function from `@injectivelabs/sdk-ts` to generate ADR-36 compatible `signDoc`. You can then use it to sign/verify using a browser wallet or in a CLI environment. Make sure you are using the latest package versions.
+{% endhint %}
+
+#### Sign and verify using a browser wallet like Keplr
+
+```typescript
+
+(async () => {
+ const message = "Offline Sign Message Example";
+ const signer = 'inj1...'
+ const chainId = 'injective-1'
+
+ // Sign Arbitrary Data
+ const signature = await window.keplr.signArbitrary(chainId, signer, message)
+
+ // Verify Arbitrary Data
+ const result = await window.keplr.verifyArbitrary(chainId, signer, message, signature)
+
+ if (result) {
+ console.log("Signature is valid");
+ }
+})();
+```
+
+#### Sign and verify using PrivateKey in a CLI environment
+
+```typescript
+import { config } from "dotenv";
+import { PrivateKey, generateArbitrarySignDoc } from "@injectivelabs/sdk-ts";
+
+config();
+
+(async () => {
+ const { privateKey } = PrivateKey.generate();
+ const injectiveAddress = privateKey.toBech32();
+ const publicKey = privateKey.toPublicKey();
+
+ const message = "Offline Sign Message Example";
+ const { signDocBuff } = generateArbitrarySignDoc(message, injectiveAddress);
+
+ const signature = await privateKey.sign(signDocBuff);
+ const signatureInHex = Buffer.from(signature).toString("hex");
+
+ if (
+ PrivateKey.verifyArbitrarySignature({
+ signature: signatureInHex,
+ signDoc: signDocBuff,
+ publicKey: publicKey.toHex(),
+ })
+ ) {
+ console.log("Signature is valid");
+ }
+})();
+
+```
diff --git a/.gitbook/wallet/wallet-wallet-strategy.md b/.gitbook/wallet/wallet-wallet-strategy.md
index 5879dad39..c665ae10e 100644
--- a/.gitbook/wallet/wallet-wallet-strategy.md
+++ b/.gitbook/wallet/wallet-wallet-strategy.md
@@ -51,7 +51,8 @@ _Note:_ When we wanna use the `sendTransaction` on Ethereum native wallets along
```ts
import { WalletStrategy } from '@injectivelabs/wallet-ts'
import { EthereumChainId, ChainId } from '@injectivelabs/ts-types'
-import { CHAIN_ID, ETHEREUM_CHAIN_ID, IS_TESTNET } from '~/app/utils/constants'
+import { TxRaw } from '@injectivelabs/sdk-ts'
+import { Web3Exception } from '@injectivelabs/exceptions'
export const alchemyRpcEndpoint = `https://eth-mainnet.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`
@@ -68,7 +69,7 @@ export const getAddresses = async (): Promise => {
const addresses = await walletStrategy.getAddresses()
if (addresses.length === 0) {
- throw new Web3Exception('There are no addresses linked in this wallet.')
+ throw new Web3Exception(new Error('There are no addresses linked in this wallet.'))
}
return addresses
@@ -77,17 +78,17 @@ export const getAddresses = async (): Promise => {
// Sign an Injective transaction
export const signTransaction = async (tx: TxRaw): Promise => {
const response = await walletStrategy.signCosmosTransaction(
- transaction: { txRaw: tx; accountNumber: /* */; chainId: 'injective-1' },
- address: 'inj1...',
+ /*transaction:*/ { txRaw: tx, accountNumber: /* */, chainId: 'injective-1' },
+ /*address: */ 'inj1...',
)
return response
}
// Send an Injective transaction
-export const signTransaction = async (tx: TxRaw): Promise => {
+export const sendTransaction = async (tx: TxRaw): Promise => {
const response = await walletStrategy.sendTransaction(
- txRaw,
+ tx,
// `sentryEndpoint` needed if Ethereum wallets are used
{address: 'inj1...', chainId: 'injective-1', sentryEndpoint: 'https://grpc.injective.network' }
)
diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml
index 25d3fa81b..d986c9065 100644
--- a/.github/workflows/canary.yml
+++ b/.github/workflows/canary.yml
@@ -40,10 +40,6 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: 'Commit ibcTokenMetadata.json if changed'
- run: |
- git diff --exit-code -- packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json || (git add packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json && git commit -m "Automatically update ibcTokenMetadata.json")
-
- name: Version and publish
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
diff --git a/.github/workflows/dev.yaml b/.github/workflows/dev.yaml
index 2e1a6d374..bdc491aea 100644
--- a/.github/workflows/dev.yaml
+++ b/.github/workflows/dev.yaml
@@ -10,18 +10,20 @@ jobs:
if: true
runs-on: ubuntu-latest
+ permissions: write-all
+
steps:
- - name: 'Checkout' # Download code from the repository
+ - name: Checkout # Download code from the repository
uses: actions/checkout@v2 # Public action
with:
fetch-depth: 0 # Checkout all branches and tags
- - name: 'Use NodeJS 16' # Setup node using version 14
+ - name: 'Use NodeJS 18' # Setup node using version 14
uses: actions/setup-node@v2 # Public action
with:
- node-version: '16.18.1'
+ node-version: '18.17.0'
- - name: 'Setup lerna@6.6.1'
+ - name: Setup lerna@6.6.1
run: yarn global add lerna@6.6.1 --ignore-engines
- name: Set up Git user
@@ -31,27 +33,29 @@ jobs:
- name: Build dependencies
run: |
+ lerna clean --yes
node etc/bootstrapEnv
yarn install --ignore-engines
yarn build
- - name: 'Setup npm'
- run: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
+ - name: Setup npm
+ run: |
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
+ npm whoami
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: 'Commit ibcTokenMetadata.json if changed'
- run: |
- git diff --exit-code -- packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json || (git add packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json && git commit -m "Automatically update ibcTokenMetadata.json")
-
- name: Version and publish
- env:
- GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
lerna version prerelease --preid beta --force-git-tag --no-changelog --yes
lerna publish from-git --force-git-tag --dist-tag next --yes --summary-file
- - name: 'Broadcast published versions on Slack'
+ env:
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
+
+ - name: Broadcast published versions on Slack
run: node etc/slack --api=$SLACK_API --actor=$GIT_ACTOR --commit-message=$GIT_LATEST_COMMIT_MESSAGE
env:
GIT_ACTOR: ${{ github.actor }}
diff --git a/.github/workflows/stable.yaml b/.github/workflows/stable.yaml
index 3b88f41ae..6d0d2e55d 100644
--- a/.github/workflows/stable.yaml
+++ b/.github/workflows/stable.yaml
@@ -10,6 +10,8 @@ jobs:
if: true
runs-on: ubuntu-latest
+ permissions: write-all
+
steps:
- name: 'Checkout' # Download code from the repository
uses: actions/checkout@v2 # Public action
@@ -17,10 +19,10 @@ jobs:
fetch-depth: 0 # Checkout all branches and tags
persist-credentials: false
- - name: 'Use NodeJS 16' # Setup node using version 14
+ - name: 'Use NodeJS 18' # Setup node using version 14
uses: actions/setup-node@v2 # Public action
with:
- node-version: '16.18.1'
+ node-version: '18.17.0'
- name: 'Setup lerna@6.6.1'
run: yarn global add lerna@6.6.1 --ignore-engines
@@ -41,10 +43,6 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: 'Commit ibcTokenMetadata.json if changed'
- run: |
- git diff --exit-code -- packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json || (git add packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json && git commit -m "Automatically update ibcTokenMetadata.json")
-
- name: Version and publish
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
diff --git a/packages/bridge-ts/.npmignore b/deprecated/bridge-ts/.npmignore
similarity index 100%
rename from packages/bridge-ts/.npmignore
rename to deprecated/bridge-ts/.npmignore
diff --git a/packages/bridge-ts/CHANGELOG.md b/deprecated/bridge-ts/CHANGELOG.md
similarity index 99%
rename from packages/bridge-ts/CHANGELOG.md
rename to deprecated/bridge-ts/CHANGELOG.md
index e03fe770c..faa55d833 100644
--- a/packages/bridge-ts/CHANGELOG.md
+++ b/deprecated/bridge-ts/CHANGELOG.md
@@ -3,46 +3,50 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.5-beta.69...@injectivelabs/bridge-ts@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.11-beta.89...@injectivelabs/bridge-ts@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.8...@injectivelabs/bridge-ts@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.8](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.7...@injectivelabs/bridge-ts@1.14.8) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.4-beta.3...@injectivelabs/bridge-ts@1.14.4) (2023-11-20)
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.7-beta.2...@injectivelabs/bridge-ts@1.14.7) (2024-03-03)
**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.7-beta.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.7-beta.0...@injectivelabs/bridge-ts@1.14.7-beta.1) (2024-03-02)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.6-beta.59...@injectivelabs/bridge-ts@1.14.6) (2024-03-01)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.3-beta.23...@injectivelabs/bridge-ts@1.14.3) (2023-11-17)
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.5-beta.69...@injectivelabs/bridge-ts@1.14.5) (2024-01-11)
**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.4-beta.3...@injectivelabs/bridge-ts@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.3-beta.23...@injectivelabs/bridge-ts@1.14.3) (2023-11-17)
+**Note:** Version bump only for package @injectivelabs/bridge-ts
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.2-beta.13...@injectivelabs/bridge-ts@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/bridge-ts
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.1-beta.24...@injectivelabs/bridge-ts@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/bridge-ts
-
-
-
-
## [1.14.1-beta.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/bridge-ts@1.14.1-beta.1...@injectivelabs/bridge-ts@1.14.1-beta.2) (2023-09-24)
**Note:** Version bump only for package @injectivelabs/bridge-ts
diff --git a/packages/bridge-ts/LICENSE b/deprecated/bridge-ts/LICENSE
similarity index 100%
rename from packages/bridge-ts/LICENSE
rename to deprecated/bridge-ts/LICENSE
diff --git a/packages/bridge-ts/README.md b/deprecated/bridge-ts/README.md
similarity index 100%
rename from packages/bridge-ts/README.md
rename to deprecated/bridge-ts/README.md
diff --git a/packages/bridge-ts/jest.config.js b/deprecated/bridge-ts/jest.config.js
similarity index 100%
rename from packages/bridge-ts/jest.config.js
rename to deprecated/bridge-ts/jest.config.js
diff --git a/packages/bridge-ts/package.json b/deprecated/bridge-ts/package.json
similarity index 63%
rename from packages/bridge-ts/package.json
rename to deprecated/bridge-ts/package.json
index c989c088f..c1b4fc971 100644
--- a/packages/bridge-ts/package.json
+++ b/deprecated/bridge-ts/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/bridge-ts",
"description": "Bridge utilities and abstractions in TypeScript to be used in Injective products",
- "version": "1.14.5",
+ "version": "1.14.12-beta.2",
"sideEffects": false,
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,20 +28,21 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
"@axelar-network/axelarjs-sdk": "0.13.6",
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/sdk-ts": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
- "@injectivelabs/wormhole-sdk": "^1.12.0-beta.0",
- "@solana/spl-token": "^0.3.6",
- "@solana/wallet-adapter-base": "^0.9.18",
- "@solana/web3.js": "^1.66.2",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/sdk-ts": "^1.14.12-beta.2",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
+ "@injectivelabs/wormhole-sdk": "1.14.7",
+ "@solana/spl-token": "^0.4.0",
+ "@solana/wallet-adapter-base": "^0.9.23",
+ "@solana/web3.js": "^1.89.1",
+ "@wormhole-foundation/sdk": "^0.5.0-beta.0",
"bech32": "^2.0.0",
"ethers": "^5.7.2",
"js-base64": "^3.7.5",
diff --git a/packages/bridge-ts/src/axelar/AxelarApi.ts b/deprecated/bridge-ts/src/axelar/AxelarApi.ts
similarity index 100%
rename from packages/bridge-ts/src/axelar/AxelarApi.ts
rename to deprecated/bridge-ts/src/axelar/AxelarApi.ts
diff --git a/packages/bridge-ts/src/axelar/README.md b/deprecated/bridge-ts/src/axelar/README.md
similarity index 100%
rename from packages/bridge-ts/src/axelar/README.md
rename to deprecated/bridge-ts/src/axelar/README.md
diff --git a/packages/bridge-ts/src/axelar/constants.ts b/deprecated/bridge-ts/src/axelar/constants.ts
similarity index 100%
rename from packages/bridge-ts/src/axelar/constants.ts
rename to deprecated/bridge-ts/src/axelar/constants.ts
diff --git a/packages/bridge-ts/src/axelar/erc20Abi.ts b/deprecated/bridge-ts/src/axelar/erc20Abi.ts
similarity index 100%
rename from packages/bridge-ts/src/axelar/erc20Abi.ts
rename to deprecated/bridge-ts/src/axelar/erc20Abi.ts
diff --git a/packages/bridge-ts/src/axelar/index.ts b/deprecated/bridge-ts/src/axelar/index.ts
similarity index 100%
rename from packages/bridge-ts/src/axelar/index.ts
rename to deprecated/bridge-ts/src/axelar/index.ts
diff --git a/packages/bridge-ts/src/index.ts b/deprecated/bridge-ts/src/index.ts
similarity index 100%
rename from packages/bridge-ts/src/index.ts
rename to deprecated/bridge-ts/src/index.ts
diff --git a/packages/bridge-ts/src/wormhole/README.md b/deprecated/bridge-ts/src/wormhole/README.md
similarity index 100%
rename from packages/bridge-ts/src/wormhole/README.md
rename to deprecated/bridge-ts/src/wormhole/README.md
diff --git a/packages/bridge-ts/src/wormhole/WormholeClient.ts b/deprecated/bridge-ts/src/wormhole/WormholeClient.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/WormholeClient.ts
rename to deprecated/bridge-ts/src/wormhole/WormholeClient.ts
diff --git a/packages/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts b/deprecated/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts
similarity index 97%
rename from packages/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts
rename to deprecated/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts
index 16b0a5a4f..ffd43533e 100644
--- a/packages/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts
+++ b/deprecated/bridge-ts/src/wormhole/clients/EvmWormholeClient.ts
@@ -8,8 +8,6 @@ import {
redeemOnEth,
getSignedVAA,
transferFromEth,
- hexToUint8Array,
- uint8ArrayToHex,
redeemOnEthNative,
getEmitterAddressEth,
getSignedVAAWithRetry,
@@ -372,7 +370,7 @@ export class EvmWormholeClient
).toString()
}
- private async transferToken(args: TransferMsgArgs) {
+ protected async transferToken(args: TransferMsgArgs) {
const { network, wormholeRpcUrl, wormholeRestUrl, wormholeSource } = this
const { amount, recipient, tokenAddress } = args
@@ -416,9 +414,7 @@ export class EvmWormholeClient
tokenAddress,
amount,
WORMHOLE_CHAINS.injective,
- hexToUint8Array(
- uint8ArrayToHex(zeroPad(cosmos.canonicalAddress(recipient), 32)),
- ),
+ zeroPad(cosmos.canonicalAddress(recipient), 32),
)
if (!transferReceipt) {
@@ -435,7 +431,7 @@ export class EvmWormholeClient
}
}
- private async transferNative(args: TransferMsgArgs) {
+ protected async transferNative(args: TransferMsgArgs) {
const { network, wormholeRpcUrl, wormholeRestUrl, wormholeSource } = this
const { amount, recipient } = args
@@ -461,9 +457,7 @@ export class EvmWormholeClient
signer,
amount,
WORMHOLE_CHAINS.injective,
- hexToUint8Array(
- uint8ArrayToHex(zeroPad(cosmos.canonicalAddress(recipient), 32)),
- ),
+ zeroPad(cosmos.canonicalAddress(recipient), 32),
)
if (!transferReceipt) {
@@ -480,7 +474,7 @@ export class EvmWormholeClient
}
}
- private async getProvider() {
+ protected async getProvider() {
const { provider } = this
if (this.singletonProvider) {
@@ -493,7 +487,7 @@ export class EvmWormholeClient
return this.singletonProvider
}
- private async getProviderAndChainIdCheck() {
+ protected async getProviderAndChainIdCheck() {
const provider = await this.getProvider()
const signer = provider.getSigner()
const chainId = await signer.getChainId()
diff --git a/packages/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts b/deprecated/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts
similarity index 96%
rename from packages/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts
rename to deprecated/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts
index 62c99dce3..c71294c34 100644
--- a/packages/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts
+++ b/deprecated/bridge-ts/src/wormhole/clients/InjectiveWormholeClient.ts
@@ -3,10 +3,10 @@ import {
TxResponse,
getGrpcTransport,
ChainGrpcWasmApi,
- MsgExecuteContractCompat,
ChainGrpcBankApi,
- IndexerRestExplorerApi,
getInjectiveAddress,
+ MsgExecuteContractCompat,
+ IndexerRestExplorerApi,
} from '@injectivelabs/sdk-ts'
import { GeneralException } from '@injectivelabs/exceptions'
import {
@@ -40,7 +40,6 @@ interface WalletStrategy {
interface MsgBroadcaster {
broadcast: (params: any) => Promise
- broadcastOld: (params: any) => Promise
}
interface Provider {
@@ -98,14 +97,7 @@ export class InjectiveWormholeClient
async transfer(
args: TransferMsgArgs & {
- /**
- * Additional messages that we run before the bridge, an example
- * could be redeeming from the token factory to CW20
- */
additionalMsgs?: MsgExecuteContractCompat[]
- /**
- * The destination chain where we transfer to
- */
destination?: WormholeSource
},
) {
@@ -161,7 +153,7 @@ export class InjectiveWormholeClient
tryNativeToUint8Array(recipient, associatedChain),
)
- const txResponse = (await provider.msgBroadcaster.broadcastOld({
+ const txResponse = (await provider.msgBroadcaster.broadcast({
msgs: [...additionalMsgs, ...messages],
injectiveAddress: signer,
})) as TxResponse
diff --git a/packages/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts b/deprecated/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts
similarity index 80%
rename from packages/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts
rename to deprecated/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts
index a3cae9b75..eb985760f 100644
--- a/packages/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts
+++ b/deprecated/bridge-ts/src/wormhole/clients/SolanaWormholeClient.ts
@@ -1,48 +1,59 @@
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
-import { getGrpcTransport, ChainGrpcWasmApi } from '@injectivelabs/sdk-ts'
+import {
+ Network,
+ NetworkEndpoints,
+ getNetworkEndpoints,
+} from '@injectivelabs/networks'
+import { ChainGrpcWasmApi, getGrpcTransport } from '@injectivelabs/sdk-ts'
import { GeneralException } from '@injectivelabs/exceptions'
import {
cosmos,
+ ChainId,
getSignedVAA,
redeemOnSolana,
- hexToUint8Array,
- uint8ArrayToHex,
transferNativeSol,
transferFromSolana,
- tryNativeToHexString,
- parseSequenceFromLogSolana,
- getEmitterAddressSolana,
getSignedVAAWithRetry,
+ tryNativeToUint8Array,
+ getForeignAssetSolana,
postVaaSolanaWithRetry,
redeemAndUnwrapOnSolana,
+ getEmitterAddressSolana,
+ parseSequenceFromLogSolana,
getIsTransferCompletedSolana,
- tryNativeToUint8Array,
- ChainId,
- getForeignAssetSolana,
} from '@injectivelabs/wormhole-sdk'
import {
getAssociatedTokenAddress,
createAssociatedTokenAccountInstruction,
+ TOKEN_PROGRAM_ID,
+ ASSOCIATED_TOKEN_PROGRAM_ID,
} from '@solana/spl-token'
-import {
- getForeignAssetInjective,
- getOriginalAssetInjective,
-} from '../injective'
import {
PublicKey,
Connection,
Transaction,
+ SignatureResult,
TransactionResponse,
+ TransactionSignature,
+ RpcResponseAndContext,
} from '@solana/web3.js'
import { BaseMessageSignerWalletAdapter } from '@solana/wallet-adapter-base'
-import { TransactionSignatureAndResponse } from '@injectivelabs/wormhole-sdk/lib/cjs/solana'
import { zeroPad } from 'ethers/lib/utils'
import { sleep } from '@injectivelabs/utils'
import { WORMHOLE_CHAINS } from '../constants'
import { TransferMsgArgs, WormholeClient, WormholeSource } from '../types'
-import { getContractAddresses, getSolanaTransactionInfo } from '../utils'
+import { getContractAddresses } from '../utils'
import { BaseWormholeClient } from '../WormholeClient'
import { PhantomWalletAdapter } from '@solana/wallet-adapter-wallets'
+import { getOriginalAssetInjective } from '../injective'
+import {
+ getSolanaTransactionInfo,
+ signSendAndConfirmTransaction,
+} from '../solana'
+
+export interface TransactionSignatureAndResponse {
+ signature: TransactionSignature
+ response: RpcResponseAndContext
+}
const TIMEOUT_BETWEEN_RETRIES = 5000
@@ -127,9 +138,7 @@ export class SolanaWormholeClient
const { network, wormholeRpcUrl } = this
if (!wormholeRpcUrl) {
- throw new GeneralException(
- new Error(`Please provide wormholeRpcUrl`),
- )
+ throw new GeneralException(new Error(`Please provide wormholeRpcUrl`))
}
const { associatedChainContractAddresses } = getContractAddresses(network)
@@ -166,9 +175,7 @@ export class SolanaWormholeClient
const { network, wormholeRpcUrl } = this
if (!wormholeRpcUrl) {
- throw new GeneralException(
- new Error(`Please provide wormholeRpcUrl`),
- )
+ throw new GeneralException(new Error(`Please provide wormholeRpcUrl`))
}
const { associatedChainContractAddresses } = getContractAddresses(network)
@@ -308,6 +315,18 @@ export class SolanaWormholeClient
return targetAsset || ''
}
+ async getAssociatedTokenAddress(splAddress: string, solanaPubKey: string) {
+ const address = await getAssociatedTokenAddress(
+ new PublicKey(splAddress),
+ new PublicKey(solanaPubKey),
+ undefined,
+ TOKEN_PROGRAM_ID,
+ ASSOCIATED_TOKEN_PROGRAM_ID,
+ )
+
+ return address.toString()
+ }
+
async postVAAWithRetry({
solanaPubKey,
signedVAA,
@@ -337,23 +356,26 @@ export class SolanaWormholeClient
)
}
- async createAssociatedTokenAddress(tokenAddress: string) {
+ async createAssociatedTokenAddress(
+ tokenAddress: string,
+ networkEndpoints?: NetworkEndpoints,
+ ) {
const { solanaHostUrl, network } = this
- const endpoints = getNetworkEndpoints(network)
if (!solanaHostUrl) {
throw new GeneralException(new Error(`Please provide solanaHostUrl`))
}
+ const endpoints = networkEndpoints || getNetworkEndpoints(network)
const provider = await this.getProvider()
- const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)
const connection = new Connection(solanaHostUrl, 'confirmed')
const solanaPublicKey = new PublicKey(provider.publicKey || '')
const originalAsset = await getOriginalAssetInjective(
tokenAddress,
- chainGrpcWasmApi,
+ new ChainGrpcWasmApi(endpoints.grpc),
)
+
const solanaMintKey = new PublicKey(originalAsset.assetAddress)
const recipient = await getAssociatedTokenAddress(
solanaMintKey,
@@ -398,35 +420,7 @@ export class SolanaWormholeClient
return recipient.toString()
}
- async signSendAndConfirmTransaction(transaction: Transaction) {
- const { solanaHostUrl } = this
-
- if (!solanaHostUrl) {
- throw new GeneralException(new Error(`Please provide solanaHostUrl`))
- }
-
- const provider = await this.getProvider()
- const connection = new Connection(solanaHostUrl, 'confirmed')
-
- const signed = await provider.signTransaction(transaction)
- const transactionId = await connection.sendRawTransaction(
- signed.serialize(),
- )
-
- const txResponse = await getSolanaTransactionInfo(transactionId, connection)
-
- if (!txResponse) {
- throw new GeneralException(
- new Error('An error occurred while fetching the transaction info'),
- )
- }
-
- return { txHash: transactionId, ...txResponse } as TransactionResponse & {
- txHash: string
- }
- }
-
- private async getNativeTokenBalance(address: string | PublicKey) {
+ protected async getNativeTokenBalance(address: string | PublicKey) {
const { solanaHostUrl } = this
const connection = new Connection(solanaHostUrl || '')
@@ -441,7 +435,7 @@ export class SolanaWormholeClient
}
}
- private async getSplTokenBalance(
+ protected async getSplTokenBalance(
address: string | PublicKey,
tokenAddress: string,
) {
@@ -469,10 +463,9 @@ export class SolanaWormholeClient
}
}
- private async transferToken(args: TransferMsgArgs) {
+ protected async transferToken(args: TransferMsgArgs) {
const { network, solanaHostUrl, wormholeRestUrl, wormholeRpcUrl } = this
const { amount, recipient, signer } = args
- const endpoints = getNetworkEndpoints(network)
const provider = await this.getProvider()
const pubKey = provider.publicKey || new PublicKey(signer || '')
@@ -494,26 +487,7 @@ export class SolanaWormholeClient
throw new GeneralException(new Error(`Please provide signerPubKey`))
}
- const { injectiveContractAddresses, associatedChainContractAddresses } =
- getContractAddresses(network)
-
- const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)
-
- const originAssetHex = tryNativeToHexString(
- args.tokenAddress,
- WORMHOLE_CHAINS.solana,
- )
- const foreignAsset = await getForeignAssetInjective(
- injectiveContractAddresses.token_bridge,
- // @ts-ignore
- chainGrpcWasmApi,
- WORMHOLE_CHAINS.solana,
- hexToUint8Array(originAssetHex),
- )
-
- if (!foreignAsset) {
- throw new GeneralException(new Error(`Foreign Injective asset not found`))
- }
+ const { associatedChainContractAddresses } = getContractAddresses(network)
const connection = new Connection(solanaHostUrl, 'confirmed')
const fromAddress = (
@@ -528,31 +502,18 @@ export class SolanaWormholeClient
fromAddress,
args.tokenAddress,
BigInt(amount),
- hexToUint8Array(
- uint8ArrayToHex(zeroPad(cosmos.canonicalAddress(recipient), 32)),
- ),
+ zeroPad(cosmos.canonicalAddress(recipient), 32),
WORMHOLE_CHAINS.injective,
)
- const signed = await provider.signTransaction(transaction)
- const transactionId = await connection.sendRawTransaction(
- signed.serialize(),
- )
-
- const txResponse = await getSolanaTransactionInfo(transactionId, connection)
+ const txResponse = await this.signSendAndConfirmTransaction(transaction)
- if (!txResponse) {
- throw new GeneralException(
- new Error('An error occurred while fetching the transaction info'),
- )
- }
-
- return { txHash: transactionId, ...txResponse } as TransactionResponse & {
+ return txResponse as TransactionResponse & {
txHash: string
}
}
- private async transferNative(args: TransferMsgArgs) {
+ protected async transferNative(args: TransferMsgArgs) {
const { network, solanaHostUrl, wormholeRestUrl, wormholeRpcUrl } = this
const { amount, recipient, signer } = args
@@ -581,31 +542,18 @@ export class SolanaWormholeClient
associatedChainContractAddresses.token_bridge,
pubKey,
BigInt(amount),
- hexToUint8Array(
- uint8ArrayToHex(zeroPad(cosmos.canonicalAddress(recipient), 32)),
- ),
+ zeroPad(cosmos.canonicalAddress(recipient), 32),
WORMHOLE_CHAINS.injective,
)
- const signed = await provider.signTransaction(transaction)
- const transactionId = await connection.sendRawTransaction(
- signed.serialize(),
- )
-
- const txResponse = await getSolanaTransactionInfo(transactionId, connection)
-
- if (!txResponse) {
- throw new GeneralException(
- new Error('An error occurred while fetching the transaction info'),
- )
- }
+ const txResponse = await this.signSendAndConfirmTransaction(transaction)
- return { txHash: transactionId, ...txResponse } as TransactionResponse & {
+ return txResponse as TransactionResponse & {
txHash: string
}
}
- private async getProvider(): Promise<
+ protected async getProvider(): Promise<
BaseMessageSignerWalletAdapter<'Phantom'>
> {
try {
@@ -624,4 +572,20 @@ export class SolanaWormholeClient
throw new GeneralException(new Error(e as any))
}
}
+
+ async signSendAndConfirmTransaction(transaction: Transaction) {
+ const { solanaHostUrl } = this
+
+ if (!solanaHostUrl) {
+ throw new GeneralException(new Error(`Please provide solanaHostUrl`))
+ }
+
+ const provider = await this.getProvider()
+
+ return await signSendAndConfirmTransaction({
+ provider,
+ solanaHostUrl,
+ transaction,
+ })
+ }
}
diff --git a/packages/bridge-ts/src/wormhole/clients/index.ts b/deprecated/bridge-ts/src/wormhole/clients/index.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/clients/index.ts
rename to deprecated/bridge-ts/src/wormhole/clients/index.ts
diff --git a/packages/bridge-ts/src/wormhole/constants.ts b/deprecated/bridge-ts/src/wormhole/constants.ts
similarity index 80%
rename from packages/bridge-ts/src/wormhole/constants.ts
rename to deprecated/bridge-ts/src/wormhole/constants.ts
index cca9dae4d..b5aed1fbc 100644
--- a/packages/bridge-ts/src/wormhole/constants.ts
+++ b/deprecated/bridge-ts/src/wormhole/constants.ts
@@ -66,6 +66,24 @@ export const WORMHOLE_APTOS_CONTRACT_BY_NETWORK = (network: Network) => {
return CONTRACTS.MAINNET.aptos
}
+export const WORMHOLE_WORMCHAIN_CONTRACT_BY_NETWORK = (network: Network) => {
+ if (isTestnet(network) || isDevnet(network)) {
+ return CONTRACTS.TESTNET.wormchain
+ }
+
+ return CONTRACTS.MAINNET.wormchain
+}
+
+export const WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK = (
+ network: Network,
+) => {
+ if (isTestnet(network) || isDevnet(network)) {
+ return 'wormhole1ctnjk7an90lz5wjfvr3cf6x984a8cjnv8dpmztmlpcq4xteaa2xs9pwmzk'
+ }
+
+ return 'wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx'
+}
+
export const WORMHOLE_CHAINS = CHAINS
export const WORMHOLE_CONTRACTS = CONTRACTS
diff --git a/deprecated/bridge-ts/src/wormhole/gateway-clients/EvmWormholeGatewayClient.ts b/deprecated/bridge-ts/src/wormhole/gateway-clients/EvmWormholeGatewayClient.ts
new file mode 100644
index 000000000..bc00002a7
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/gateway-clients/EvmWormholeGatewayClient.ts
@@ -0,0 +1,156 @@
+import { GeneralException } from '@injectivelabs/exceptions'
+import {
+ cosmos,
+ approveEth,
+ transferFromEth,
+ transferFromEthNative,
+} from '@injectivelabs/wormhole-sdk'
+import { BigNumber } from '@injectivelabs/utils'
+import { ethers } from 'ethers'
+import { zeroPad } from 'ethers/lib/utils'
+import {
+ WORMHOLE_CHAINS,
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK,
+} from '../constants'
+import { WormholeClient, TransferMsgArgs } from '../types'
+import { getContractAddresses } from '../utils'
+import {
+ EvmWormholeClient,
+ isNativeTokenAddress,
+} from '../clients/EvmWormholeClient'
+import { getTransferDetailsUint8Array } from '../injective'
+
+export class EvmWormholeGatewayClient
+ extends EvmWormholeClient
+ implements
+ WormholeClient<
+ ethers.ContractReceipt & { txHash: string },
+ ethers.providers.TransactionReceipt
+ >
+{
+ async transfer(args: TransferMsgArgs) {
+ return args.tokenAddress && !isNativeTokenAddress(args.tokenAddress)
+ ? this.transferToken(args)
+ : this.transferNative(args)
+ }
+
+ protected async transferToken(args: TransferMsgArgs) {
+ const { network, wormholeRpcUrl, wormholeRestUrl, wormholeSource } = this
+ const { amount, recipient, tokenAddress } = args
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+
+ if (!tokenAddress) {
+ throw new GeneralException(new Error(`Please provide tokenAddress`))
+ }
+
+ if (!recipient) {
+ throw new GeneralException(new Error(`Please provide recipient`))
+ }
+
+ const signer = await this.getProviderAndChainIdCheck()
+ const { associatedChainContractAddresses } = getContractAddresses(
+ network,
+ wormholeSource,
+ )
+
+ const allowance = await this.getTokenAllowance({
+ address: await signer.getAddress(),
+ tokenAddress,
+ })
+
+ if (new BigNumber(allowance).lt(amount)) {
+ await approveEth(
+ associatedChainContractAddresses.token_bridge,
+ tokenAddress,
+ signer,
+ new BigNumber(2).pow(256).minus(1).toFixed(),
+ )
+ }
+
+ const transferReceipt = await transferFromEth(
+ associatedChainContractAddresses.token_bridge,
+ signer,
+ tokenAddress,
+ amount,
+ WORMHOLE_CHAINS.wormchain,
+ zeroPad(
+ cosmos.canonicalAddress(
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ ),
+ 32,
+ ),
+ undefined,
+ undefined,
+ getTransferDetailsUint8Array(recipient),
+ )
+
+ if (!transferReceipt) {
+ throw new GeneralException(
+ new Error('An error occurred while fetching the transaction info'),
+ )
+ }
+
+ return {
+ txHash: transferReceipt.transactionHash,
+ ...transferReceipt,
+ } as ethers.ContractReceipt & {
+ txHash: string
+ }
+ }
+
+ protected async transferNative(args: TransferMsgArgs) {
+ const { network, wormholeRpcUrl, wormholeRestUrl, wormholeSource } = this
+ const { amount, recipient } = args
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+
+ if (!recipient) {
+ throw new GeneralException(new Error(`Please provide recipient`))
+ }
+
+ const signer = await this.getProviderAndChainIdCheck()
+
+ const { associatedChainContractAddresses } = getContractAddresses(
+ network,
+ wormholeSource,
+ )
+
+ const transferReceipt = await transferFromEthNative(
+ associatedChainContractAddresses.token_bridge,
+ signer,
+ amount,
+ WORMHOLE_CHAINS.wormchain,
+ zeroPad(
+ cosmos.canonicalAddress(
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ ),
+ 32,
+ ),
+ undefined,
+ undefined,
+ getTransferDetailsUint8Array(recipient),
+ )
+
+ if (!transferReceipt) {
+ throw new GeneralException(
+ new Error('An error occurred while fetching the transaction info'),
+ )
+ }
+
+ return {
+ txHash: transferReceipt.transactionHash,
+ ...transferReceipt,
+ } as ethers.ContractReceipt & {
+ txHash: string
+ }
+ }
+}
diff --git a/deprecated/bridge-ts/src/wormhole/gateway-clients/InjectiveWormholeGatewayClient.ts b/deprecated/bridge-ts/src/wormhole/gateway-clients/InjectiveWormholeGatewayClient.ts
new file mode 100644
index 000000000..0cc4396bb
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/gateway-clients/InjectiveWormholeGatewayClient.ts
@@ -0,0 +1,247 @@
+import { TxResponse, MsgExecuteContractCompat } from '@injectivelabs/sdk-ts'
+import { GeneralException } from '@injectivelabs/exceptions'
+import { cosmos } from '@injectivelabs/wormhole-sdk'
+import {
+ getTransferDetailsUint8Array,
+ transferFromInjective,
+ transferFromInjectiveUsingIbc,
+} from '../injective'
+import { TransferMsgArgs, WormholeClient, WormholeSource } from '../types'
+import {
+ getAssociatedChain,
+ getContractAddresses,
+ getAssociatedChainSigner,
+ getAssociatedChainRecipientIbc,
+} from '../utils'
+import { InjectiveWormholeClient } from '../clients/InjectiveWormholeClient'
+import {
+ WORMHOLE_CHAINS,
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK,
+} from '../constants'
+import { zeroPad } from 'ethers/lib/utils'
+import { cosmwasm } from '@wormhole-foundation/sdk/cosmwasm'
+import { evm } from '@wormhole-foundation/sdk/evm'
+import { solana } from '@wormhole-foundation/sdk/solana'
+import { Wormhole, GatewayTransfer } from '@wormhole-foundation/sdk'
+import { Provider } from '../clients'
+import { PhantomWalletAdapter } from '@solana/wallet-adapter-wallets'
+
+export class InjectiveWormholeGatewayClient
+ extends InjectiveWormholeClient
+ implements WormholeClient
+{
+ async transfer(
+ args: TransferMsgArgs & {
+ destination?: WormholeSource
+ channelId?: string
+ destinationSigner?: string
+ destinationProvider?: Provider | PhantomWalletAdapter
+ destinationRpc?: string
+ wormchainRpc?: string
+ },
+ ) {
+ const { network, wormholeRpcUrl, wormholeRestUrl, provider } = this
+ const {
+ amount,
+ signer,
+ recipient,
+ wormchainRpc,
+ destinationRpc,
+ destinationSigner,
+ destinationProvider,
+ destination = WormholeSource.Solana,
+ } = args
+
+ if (!destinationProvider) {
+ throw new GeneralException(
+ new Error(`Please provide destinationProvider`),
+ )
+ }
+
+ if (!wormchainRpc) {
+ throw new GeneralException(new Error(`Please provide wormchainRpc`))
+ }
+
+ if (!destinationRpc) {
+ throw new GeneralException(new Error(`Please provide destinationRpc`))
+ }
+
+ if (!destinationSigner) {
+ throw new GeneralException(new Error(`Please provide destinationSigner`))
+ }
+
+ if (!recipient) {
+ throw new GeneralException(new Error(`Please provide recipient`))
+ }
+
+ const whConfig = {
+ chains: {
+ Wormchain: {
+ rpc: wormchainRpc,
+ },
+ ...(destination === WormholeSource.Solana && {
+ Solana: {
+ rpc: args.destinationRpc,
+ },
+ }),
+ },
+ }
+ const wh = new Wormhole(
+ 'Mainnet',
+ [evm.Platform, solana.Platform, cosmwasm.Platform],
+ whConfig,
+ )
+ const injective = wh.getChain('Injective')
+
+ const associatedRecipient = getAssociatedChainRecipientIbc(recipient)
+ const associatedChain = getAssociatedChain(destination)
+ const associatedChainSigner = await getAssociatedChainSigner({
+ source: destination,
+ provider: destinationProvider,
+ address: destinationSigner,
+ rpc: destinationRpc,
+ })
+
+ if (!args.tokenAddress) {
+ throw new GeneralException(new Error(`Please provide tokenAddress`))
+ }
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+
+ if (!provider) {
+ throw new GeneralException(
+ new Error(`Please provide Injective wallet provider`),
+ )
+ }
+
+ if (!signer) {
+ throw new GeneralException(new Error(`Please provide signer`))
+ }
+
+ const associatedChainBlock = {
+ header: {
+ height: 9_999_999_999_999,
+ version: {
+ block: 11,
+ },
+ },
+ }
+
+ const messages = await transferFromInjectiveUsingIbc(
+ args.channelId || 'channel-183',
+ associatedChain,
+ signer,
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ args.tokenAddress,
+ amount,
+ Buffer.from(associatedRecipient).toString('base64'),
+ associatedChainBlock,
+ )
+
+ const txResponse = (await provider.msgBroadcaster.broadcast({
+ msgs: messages,
+ injectiveAddress: signer,
+ })) as TxResponse
+
+ if (!txResponse) {
+ throw new GeneralException(new Error('Transaction can not be found!'))
+ }
+
+ const result = await GatewayTransfer.from(
+ wh,
+ {
+ chain: injective.chain,
+ txid: txResponse.txHash,
+ },
+ 600_000,
+ )
+
+ await result.fetchAttestation(600_000)
+ await result.completeTransfer(associatedChainSigner)
+
+ return txResponse
+ }
+
+ /**
+ * Used to migrate existing
+ * tokens from Injective to
+ * Wormhole Gateway thought IBC
+ */
+ async migrate(
+ args: TransferMsgArgs & {
+ /**
+ * Additional messages that we run before the bridge, an example
+ * could be redeeming from the token factory to CW20
+ */
+ additionalMsgs?: MsgExecuteContractCompat[]
+ /**
+ * The destination chain where we transfer to
+ */
+ destination?: WormholeSource
+ },
+ ) {
+ const { network, wormholeRpcUrl, wormholeRestUrl, provider } = this
+ const {
+ amount,
+ signer,
+ additionalMsgs = [],
+ destination = WormholeSource.Wormchain,
+ } = args
+
+ if (!args.tokenAddress) {
+ throw new GeneralException(new Error(`Please provide tokenAddress`))
+ }
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+
+ if (!provider) {
+ throw new GeneralException(
+ new Error(`Please provide Injective wallet provider`),
+ )
+ }
+
+ if (!signer) {
+ throw new GeneralException(new Error(`Please provide signer`))
+ }
+
+ const { injectiveContractAddresses } = getContractAddresses(
+ network,
+ destination,
+ )
+
+ const messages = await transferFromInjective(
+ signer,
+ injectiveContractAddresses.token_bridge,
+ args.tokenAddress,
+ amount,
+ WORMHOLE_CHAINS.wormchain,
+ zeroPad(
+ cosmos.canonicalAddress(
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ ),
+ 32,
+ ),
+ '0',
+ getTransferDetailsUint8Array(signer),
+ )
+
+ const txResponse = (await provider.msgBroadcaster.broadcast({
+ msgs: [...additionalMsgs, ...messages],
+ injectiveAddress: signer,
+ })) as TxResponse
+
+ if (!txResponse) {
+ throw new GeneralException(new Error('Transaction can not be found!'))
+ }
+
+ return txResponse
+ }
+}
diff --git a/deprecated/bridge-ts/src/wormhole/gateway-clients/SolanaWormholeGatewayClient.ts b/deprecated/bridge-ts/src/wormhole/gateway-clients/SolanaWormholeGatewayClient.ts
new file mode 100644
index 000000000..448ae8c04
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/gateway-clients/SolanaWormholeGatewayClient.ts
@@ -0,0 +1,140 @@
+import { GeneralException } from '@injectivelabs/exceptions'
+import {
+ cosmos,
+ transferNativeSol,
+ transferFromSolana,
+} from '@injectivelabs/wormhole-sdk'
+import { getAssociatedTokenAddress } from '@solana/spl-token'
+import {
+ PublicKey,
+ Connection,
+ Transaction,
+ TransactionResponse,
+} from '@solana/web3.js'
+import { zeroPad } from 'ethers/lib/utils'
+import {
+ WORMHOLE_CHAINS,
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK,
+} from '../constants'
+import { TransferMsgArgs, WormholeClient } from '../types'
+import { getContractAddresses } from '../utils'
+import { SolanaWormholeClient } from '../clients/SolanaWormholeClient'
+import { getTransferDetailsUint8Array } from '../injective'
+
+export class SolanaWormholeGatewayClient
+ extends SolanaWormholeClient
+ implements WormholeClient
+{
+ async transfer(args: TransferMsgArgs) {
+ return args.tokenAddress
+ ? this.transferToken(args)
+ : this.transferNative(args)
+ }
+
+ protected async transferToken(args: TransferMsgArgs) {
+ const { network, solanaHostUrl, wormholeRestUrl, wormholeRpcUrl } = this
+ const { amount, recipient, signer } = args
+
+ const provider = await this.getProvider()
+ const pubKey = provider.publicKey || new PublicKey(signer || '')
+
+ if (!solanaHostUrl) {
+ throw new GeneralException(new Error(`Please provide solanaHostUrl`))
+ }
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+ if (!args.tokenAddress) {
+ throw new GeneralException(new Error(`Please provide tokenAddress`))
+ }
+
+ if (pubKey.toBuffer().length === 0) {
+ throw new GeneralException(new Error(`Please provide signerPubKey`))
+ }
+
+ const { associatedChainContractAddresses } = getContractAddresses(network)
+
+ const connection = new Connection(solanaHostUrl, 'confirmed')
+ const fromAddress = (
+ await getAssociatedTokenAddress(new PublicKey(args.tokenAddress), pubKey)
+ ).toString()
+
+ const transaction = await transferFromSolana(
+ connection,
+ associatedChainContractAddresses.core,
+ associatedChainContractAddresses.token_bridge,
+ pubKey,
+ fromAddress,
+ args.tokenAddress,
+ BigInt(amount),
+ zeroPad(
+ cosmos.canonicalAddress(
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ ),
+ 32,
+ ),
+ WORMHOLE_CHAINS.wormchain,
+ undefined,
+ undefined,
+ undefined,
+ undefined,
+ getTransferDetailsUint8Array(recipient),
+ )
+
+ const txResponse = await this.signSendAndConfirmTransaction(transaction)
+
+ return txResponse as TransactionResponse & {
+ txHash: string
+ }
+ }
+
+ protected async transferNative(args: TransferMsgArgs) {
+ const { network, solanaHostUrl, wormholeRestUrl, wormholeRpcUrl } = this
+ const { amount, recipient, signer } = args
+
+ const provider = await this.getProvider()
+ const pubKey = provider.publicKey || new PublicKey(signer || '')
+
+ if (!solanaHostUrl) {
+ throw new GeneralException(new Error(`Please provide solanaHostUrl`))
+ }
+
+ if (pubKey.toBuffer().length === 0) {
+ throw new GeneralException(new Error(`Please provide signerPubKey`))
+ }
+
+ if (!wormholeRpcUrl && !wormholeRestUrl) {
+ throw new GeneralException(
+ new Error(`Please provide wormholeRpcUrl | wormholeRestUrl`),
+ )
+ }
+ const { associatedChainContractAddresses } = getContractAddresses(network)
+
+ const connection = new Connection(solanaHostUrl, 'confirmed')
+ const transaction = await transferNativeSol(
+ connection,
+ associatedChainContractAddresses.core,
+ associatedChainContractAddresses.token_bridge,
+ pubKey,
+ BigInt(amount),
+ zeroPad(
+ cosmos.canonicalAddress(
+ WORMHOLE_WORMCHAIN_IBC_TRANSLATOR_BY_NETWORK(network),
+ ),
+ 32,
+ ),
+ WORMHOLE_CHAINS.wormchain,
+ undefined,
+ getTransferDetailsUint8Array(recipient),
+ )
+
+ const txResponse = await this.signSendAndConfirmTransaction(transaction)
+
+ return txResponse as TransactionResponse & {
+ txHash: string
+ }
+ }
+}
diff --git a/deprecated/bridge-ts/src/wormhole/gateway-clients/index.ts b/deprecated/bridge-ts/src/wormhole/gateway-clients/index.ts
new file mode 100644
index 000000000..520de977b
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/gateway-clients/index.ts
@@ -0,0 +1,3 @@
+export * from './EvmWormholeGatewayClient'
+export * from './SolanaWormholeGatewayClient'
+export * from './InjectiveWormholeGatewayClient'
diff --git a/packages/bridge-ts/src/wormhole/index.ts b/deprecated/bridge-ts/src/wormhole/index.ts
similarity index 79%
rename from packages/bridge-ts/src/wormhole/index.ts
rename to deprecated/bridge-ts/src/wormhole/index.ts
index 40e9f4914..3aa8550e9 100644
--- a/packages/bridge-ts/src/wormhole/index.ts
+++ b/deprecated/bridge-ts/src/wormhole/index.ts
@@ -1,4 +1,5 @@
export * from './clients'
+export * from './gateway-clients'
export * from './injective'
export * from './strategy'
export * from './constants'
diff --git a/packages/bridge-ts/src/wormhole/injective/asset.ts b/deprecated/bridge-ts/src/wormhole/injective/asset.ts
similarity index 99%
rename from packages/bridge-ts/src/wormhole/injective/asset.ts
rename to deprecated/bridge-ts/src/wormhole/injective/asset.ts
index 860f1a05e..54dd22de0 100644
--- a/packages/bridge-ts/src/wormhole/injective/asset.ts
+++ b/deprecated/bridge-ts/src/wormhole/injective/asset.ts
@@ -104,6 +104,7 @@ export async function getOriginalAssetInjective(
).toString('base64'),
)
const parsed = parseSmartContractStateResponse(response)
+
return {
isWrapped: true,
chainId: parsed.asset_chain,
diff --git a/packages/bridge-ts/src/wormhole/injective/attest.ts b/deprecated/bridge-ts/src/wormhole/injective/attest.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/injective/attest.ts
rename to deprecated/bridge-ts/src/wormhole/injective/attest.ts
diff --git a/packages/bridge-ts/src/wormhole/injective/index.ts b/deprecated/bridge-ts/src/wormhole/injective/index.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/injective/index.ts
rename to deprecated/bridge-ts/src/wormhole/injective/index.ts
diff --git a/packages/bridge-ts/src/wormhole/injective/transfer.ts b/deprecated/bridge-ts/src/wormhole/injective/transfer.ts
similarity index 79%
rename from packages/bridge-ts/src/wormhole/injective/transfer.ts
rename to deprecated/bridge-ts/src/wormhole/injective/transfer.ts
index b287e6992..adc630ecc 100644
--- a/packages/bridge-ts/src/wormhole/injective/transfer.ts
+++ b/deprecated/bridge-ts/src/wormhole/injective/transfer.ts
@@ -1,8 +1,10 @@
import {
ChainGrpcWasmApi,
MsgExecuteContractCompat,
+ MsgTransfer,
+ makeTimeoutTimestampInNs,
} from '@injectivelabs/sdk-ts'
-import { parseSmartContractStateResponse } from './utils'
+import { getIbcTransferDetails, parseSmartContractStateResponse } from './utils'
import {
ChainId,
ChainName,
@@ -10,6 +12,7 @@ import {
isNativeDenomInjective,
} from '@injectivelabs/wormhole-sdk'
import { fromUint8Array } from 'js-base64'
+import { BigNumberInBase } from '@injectivelabs/utils'
/**
* Return if the VAA has been redeemed or not
@@ -106,7 +109,7 @@ export async function transferFromInjective(
recipient: Buffer.from(recipientAddress).toString('base64'),
fee: relayerFee,
nonce,
- payload,
+ payload: Buffer.from(payload).toString('base64'),
}
: {
asset: {
@@ -168,3 +171,43 @@ export async function transferFromInjective(
}),
]
}
+
+export async function transferFromInjectiveUsingIbc(
+ channelId: string,
+ associatedChain: ChainId,
+ walletAddress: string,
+ ibcTranslatorAddress: string,
+ denom: string,
+ amount: string,
+ recipientAddress: string /* in base 64 */,
+ destinationLatestBlock: any,
+) {
+ const memo = JSON.stringify({
+ gateway_ibc_token_bridge_payload: getIbcTransferDetails(
+ recipientAddress,
+ associatedChain,
+ ),
+ })
+ const timeoutTimestamp = makeTimeoutTimestampInNs()
+
+ return MsgTransfer.fromJSON({
+ port: 'transfer',
+ memo: memo,
+ sender: walletAddress,
+ receiver: ibcTranslatorAddress,
+ channelId: channelId,
+ timeout: timeoutTimestamp,
+ height: {
+ revisionHeight: new BigNumberInBase(destinationLatestBlock.header.height)
+ .plus(100)
+ .toNumber(),
+ revisionNumber: new BigNumberInBase(
+ destinationLatestBlock.header.version.block,
+ ).toNumber(),
+ },
+ amount: {
+ denom,
+ amount,
+ },
+ })
+}
diff --git a/packages/bridge-ts/src/wormhole/injective/utils.ts b/deprecated/bridge-ts/src/wormhole/injective/utils.ts
similarity index 56%
rename from packages/bridge-ts/src/wormhole/injective/utils.ts
rename to deprecated/bridge-ts/src/wormhole/injective/utils.ts
index 5db844f2e..02de262f3 100644
--- a/packages/bridge-ts/src/wormhole/injective/utils.ts
+++ b/deprecated/bridge-ts/src/wormhole/injective/utils.ts
@@ -2,6 +2,8 @@ import { CosmwasmWasmV1Query } from '@injectivelabs/core-proto-ts'
import { zeroPad } from 'ethers/lib/utils'
import { bech32 } from 'bech32'
import { toUtf8 } from '@injectivelabs/sdk-ts'
+import { WORMHOLE_CHAINS } from '../constants'
+import { ChainId } from '@injectivelabs/wormhole-sdk'
export const parseSmartContractStateResponse: any = (
response: CosmwasmWasmV1Query.QuerySmartContractStateResponse,
@@ -43,3 +45,42 @@ export async function getEmitterAddressInjective(programAddress: string) {
zeroPad(bech32.fromWords(bech32.decode(programAddress).words), 32),
).toString('hex')
}
+
+export const getTransferDetails = (
+ recipient: string,
+ chainId: ChainId = WORMHOLE_CHAINS.injective,
+) => {
+ return {
+ gateway_transfer: {
+ chain: chainId,
+ recipient: Buffer.from(toUtf8(recipient)).toString('base64'),
+ fee: '0',
+ nonce: 0,
+ },
+ }
+}
+
+export const getIbcTransferDetails = (
+ recipient: string,
+ chainId: ChainId = WORMHOLE_CHAINS.injective,
+) => {
+ const nonce = Math.round(Math.random() * 10000)
+
+ return {
+ gateway_transfer: {
+ chain: chainId,
+ nonce: nonce,
+ recipient: recipient /** already encoded to base64 */,
+ fee: '0',
+ },
+ }
+}
+
+export const getTransferDetailsUint8Array = (
+ recipient: string,
+ chainId: ChainId = WORMHOLE_CHAINS.injective,
+) => {
+ return new Uint8Array(
+ Buffer.from(JSON.stringify(getTransferDetails(recipient, chainId))),
+ )
+}
diff --git a/deprecated/bridge-ts/src/wormhole/solana.ts b/deprecated/bridge-ts/src/wormhole/solana.ts
new file mode 100644
index 000000000..f3566f7ac
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/solana.ts
@@ -0,0 +1,171 @@
+import {
+ Connection,
+ Transaction,
+ TransactionResponse,
+ TransactionExpiredTimeoutError,
+ TransactionExpiredBlockheightExceededError,
+ ComputeBudgetProgram,
+} from '@solana/web3.js'
+import { GeneralException } from '@injectivelabs/exceptions'
+import { BaseMessageSignerWalletAdapter } from '@solana/wallet-adapter-base'
+import { UnsignedTransaction } from '@wormhole-foundation/sdk'
+
+export const getSolanaTransactionInfo = async (
+ transactionId: string,
+ connection: Connection,
+) => {
+ const POLL_INTERVAL = 5000
+ const timeout = 60000
+
+ for (let i = 0; i <= timeout / POLL_INTERVAL; i += 1) {
+ try {
+ const txResponse = await connection.getTransaction(transactionId)
+
+ if (txResponse) {
+ return txResponse
+ }
+ } catch (error: any) {}
+
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))
+ }
+
+ return null
+}
+
+export const signSendAndConfirmTransaction = async ({
+ transaction,
+ provider,
+ solanaHostUrl,
+}: {
+ transaction: Transaction
+ provider: BaseMessageSignerWalletAdapter<'Phantom'>
+ solanaHostUrl: string
+}) => {
+ const connection = new Connection(solanaHostUrl, 'confirmed')
+
+ try {
+ const signed = await provider.signTransaction(transaction)
+ const transactionId = await connection.sendRawTransaction(
+ signed.serialize(),
+ )
+
+ const result = await connection.confirmTransaction(transactionId)
+
+ if (result.value.err) {
+ throw new TransactionExpiredBlockheightExceededError(
+ result.value.err.toString(),
+ )
+ }
+
+ const txResponse = await getSolanaTransactionInfo(transactionId, connection)
+
+ if (!txResponse) {
+ throw new GeneralException(
+ new Error('An error occurred while fetching the transaction info'),
+ )
+ }
+
+ return { txHash: transactionId, ...txResponse } as TransactionResponse & {
+ txHash: string
+ }
+ } catch (e) {
+ if (e instanceof TransactionExpiredBlockheightExceededError) {
+ throw new GeneralException(
+ new Error(
+ 'Transaction was not included in a block before expiration. Please retry.',
+ ),
+ )
+ }
+
+ if (e instanceof TransactionExpiredTimeoutError) {
+ throw new GeneralException(
+ new Error(
+ 'Transaction was not included in a block before expiration. Please retry.',
+ ),
+ )
+ }
+
+ throw e
+ }
+}
+
+export const signSendAndConfirmTransactionUnsigned = async ({
+ transaction,
+ provider,
+ solanaHostUrl,
+}: {
+ transaction: UnsignedTransaction
+ provider: BaseMessageSignerWalletAdapter<'Phantom'>
+ solanaHostUrl: string
+}) => {
+ const connection = new Connection(solanaHostUrl, 'confirmed')
+
+ transaction.transaction.transaction.add(
+ ComputeBudgetProgram.setComputeUnitPrice({
+ microLamports: BigInt(100_000),
+ }),
+ )
+
+ transaction.transaction.transaction.add(
+ ComputeBudgetProgram.setComputeUnitLimit({
+ units: Number(500_000),
+ }),
+ )
+
+ if (!transaction.transaction.transaction.recentBlockhash) {
+ const blockhash = await (
+ await connection.getLatestBlockhash('finalized')
+ ).blockhash
+ const signers = transaction.transaction.signers ?? []
+
+ if (signers.length > 0) {
+ transaction.transaction.transaction.recentBlockhash = blockhash
+ transaction.transaction.transaction.partialSign(...signers)
+ }
+ }
+
+ try {
+ const transactionId = await provider.sendTransaction(
+ transaction.transaction.transaction,
+ connection,
+ )
+
+ const result = await connection.confirmTransaction(transactionId)
+
+ if (result.value.err) {
+ throw new TransactionExpiredBlockheightExceededError(
+ result.value.err.toString(),
+ )
+ }
+
+ const txResponse = await getSolanaTransactionInfo(transactionId, connection)
+
+ if (!txResponse) {
+ throw new GeneralException(
+ new Error('An error occurred while fetching the transaction info'),
+ )
+ }
+
+ return { txHash: transactionId, ...txResponse } as TransactionResponse & {
+ txHash: string
+ }
+ } catch (e) {
+ if (e instanceof TransactionExpiredBlockheightExceededError) {
+ throw new GeneralException(
+ new Error(
+ 'Transaction was not included in a block before expiration. Please retry.',
+ ),
+ )
+ }
+
+ if (e instanceof TransactionExpiredTimeoutError) {
+ throw new GeneralException(
+ new Error(
+ 'Transaction was not included in a block before expiration. Please retry.',
+ ),
+ )
+ }
+
+ throw e
+ }
+}
diff --git a/packages/bridge-ts/src/wormhole/strategy/EvmWormholeClientStrategy.ts b/deprecated/bridge-ts/src/wormhole/strategy/EvmWormholeClientStrategy.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/strategy/EvmWormholeClientStrategy.ts
rename to deprecated/bridge-ts/src/wormhole/strategy/EvmWormholeClientStrategy.ts
diff --git a/deprecated/bridge-ts/src/wormhole/strategy/EvmWormholeGatewayClientStrategy.ts b/deprecated/bridge-ts/src/wormhole/strategy/EvmWormholeGatewayClientStrategy.ts
new file mode 100644
index 000000000..77162896d
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/strategy/EvmWormholeGatewayClientStrategy.ts
@@ -0,0 +1,44 @@
+import { Network } from '@injectivelabs/networks'
+import { EvmWormholeGatewayClient } from '../gateway-clients/EvmWormholeGatewayClient'
+import { Provider, WormholeClient, WormholeSource } from '..'
+import { ethers } from 'ethers'
+import { EvmWormholeClientStrategy } from './EvmWormholeClientStrategy'
+
+export class EvmWormholeGatewayClientStrategy
+ extends EvmWormholeClientStrategy
+ implements
+ WormholeClient<
+ ethers.ContractReceipt & { txHash: string },
+ ethers.providers.TransactionReceipt
+ >
+{
+ public wormholeSource: WormholeSource = WormholeSource.Ethereum
+
+ public strategies: { [key in WormholeSource]?: EvmWormholeGatewayClient }
+
+ constructor(args: {
+ network: Network
+ wormholeRpcUrl?: string
+ wormholeRestUrl?: string
+ provider: Provider
+ wormholeSource?: WormholeSource
+ }) {
+ super(args)
+
+ this.wormholeSource = args.wormholeSource || WormholeSource.Ethereum
+ this.strategies = {
+ [WormholeSource.Ethereum]: new EvmWormholeGatewayClient({
+ ...args,
+ wormholeSource: WormholeSource.Ethereum,
+ }),
+ [WormholeSource.Polygon]: new EvmWormholeGatewayClient({
+ ...args,
+ wormholeSource: WormholeSource.Polygon,
+ }),
+ [WormholeSource.Arbitrum]: new EvmWormholeGatewayClient({
+ ...args,
+ wormholeSource: WormholeSource.Arbitrum,
+ }),
+ }
+ }
+}
diff --git a/deprecated/bridge-ts/src/wormhole/strategy/index.ts b/deprecated/bridge-ts/src/wormhole/strategy/index.ts
new file mode 100644
index 000000000..d076f7e66
--- /dev/null
+++ b/deprecated/bridge-ts/src/wormhole/strategy/index.ts
@@ -0,0 +1,2 @@
+export * from './EvmWormholeClientStrategy'
+export * from './EvmWormholeGatewayClientStrategy'
diff --git a/packages/bridge-ts/src/wormhole/types.ts b/deprecated/bridge-ts/src/wormhole/types.ts
similarity index 94%
rename from packages/bridge-ts/src/wormhole/types.ts
rename to deprecated/bridge-ts/src/wormhole/types.ts
index 7cc4ead00..520ca09f5 100644
--- a/packages/bridge-ts/src/wormhole/types.ts
+++ b/deprecated/bridge-ts/src/wormhole/types.ts
@@ -14,6 +14,8 @@ export interface TransferMsgArgs {
}
export type WormholeContractAddresses = typeof CONTRACTS.MAINNET.injective
+export type WormholeWormchainContractAddresses =
+ typeof CONTRACTS.MAINNET.wormchain
export type WormholeSolanaContractAddresses = typeof CONTRACTS.MAINNET.solana
export type WormholeArbitrumContractAddresses =
typeof CONTRACTS.MAINNET.arbitrum
@@ -32,6 +34,8 @@ export enum WormholeSource {
Sui = 'sui',
Klaytn = 'klaytn',
Aptos = 'aptos',
+ Wormchain = 'wormchain',
+ Injective = 'injective',
}
export interface WormholeClient<
diff --git a/packages/bridge-ts/src/wormhole/utils.ts b/deprecated/bridge-ts/src/wormhole/utils.ts
similarity index 71%
rename from packages/bridge-ts/src/wormhole/utils.ts
rename to deprecated/bridge-ts/src/wormhole/utils.ts
index 555e08912..2caeae985 100644
--- a/packages/bridge-ts/src/wormhole/utils.ts
+++ b/deprecated/bridge-ts/src/wormhole/utils.ts
@@ -1,5 +1,5 @@
import { Network } from '@injectivelabs/networks'
-import { Connection, PublicKey as SolanaPublicKey } from '@solana/web3.js'
+import { PublicKey as SolanaPublicKey } from '@solana/web3.js'
import { GeneralException } from '@injectivelabs/exceptions'
import {
WormholeSource,
@@ -10,42 +10,28 @@ import {
WormholeSolanaContractAddresses,
WormholeArbitrumContractAddresses,
WormholeEthereumContractAddresses,
+ WormholeWormchainContractAddresses,
WormholePolygonContractAddresses,
} from './types'
import {
WORMHOLE_CHAINS,
WORMHOLE_CONTRACT_BY_NETWORK,
+ WORMHOLE_NATIVE_WRAPPED_ADDRESS,
WORMHOLE_SUI_CONTRACT_BY_NETWORK,
WORMHOLE_APTOS_CONTRACT_BY_NETWORK,
WORMHOLE_SOLANA_CONTRACT_BY_NETWORK,
WORMHOLE_KLAYTN_CONTRACT_BY_NETWORK,
WORMHOLE_POLYGON_CONTRACT_BY_NETWORK,
WORMHOLE_ARBITRUM_CONTRACT_BY_NETWORK,
+ WORMHOLE_WORMCHAIN_CONTRACT_BY_NETWORK,
WORMHOLE_ETHEREUM_CONTRACT_BY_NETWORK,
- WORMHOLE_NATIVE_WRAPPED_ADDRESS,
} from './constants'
-
-export const getSolanaTransactionInfo = async (
- transactionId: string,
- connection: Connection,
-) => {
- const POLL_INTERVAL = 5000
- const timeout = 30000
-
- for (let i = 0; i <= timeout / POLL_INTERVAL; i += 1) {
- try {
- const txResponse = await connection.getTransaction(transactionId)
-
- if (txResponse) {
- return txResponse
- }
- } catch (error: any) {}
-
- await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))
- }
-
- return null
-}
+import { arrayify, zeroPad } from 'ethers/lib/utils'
+import { Provider } from './clients'
+import { PhantomWalletAdapter } from '@solana/wallet-adapter-wallets'
+import { Signer } from '@wormhole-foundation/sdk'
+import { evm } from '@wormhole-foundation/sdk/evm'
+import { signSendAndConfirmTransactionUnsigned } from './solana'
export const getEthereumContractAddresses = (network: Network) => {
const associatedChainContractAddresses =
@@ -315,6 +301,45 @@ export const getAptosContractAddresses = (network: Network) => {
}
}
+export const getWormchainContractAddresses = (network: Network) => {
+ const associatedChainContractAddresses =
+ WORMHOLE_WORMCHAIN_CONTRACT_BY_NETWORK(
+ network,
+ ) as WormholeWormchainContractAddresses
+ const injectiveContractAddresses = WORMHOLE_CONTRACT_BY_NETWORK(
+ network,
+ ) as WormholeContractAddresses
+
+ if (!injectiveContractAddresses) {
+ throw new GeneralException(
+ new Error(`Contracts for ${network} on Injective not found`),
+ )
+ }
+
+ if (!associatedChainContractAddresses) {
+ throw new GeneralException(
+ new Error(`Contracts for ${network} on Wormchain not found`),
+ )
+ }
+
+ if (!injectiveContractAddresses.token_bridge) {
+ throw new GeneralException(
+ new Error(`Token Bridge Address for ${network} on Injective not found`),
+ )
+ }
+
+ if (!associatedChainContractAddresses.token_bridge) {
+ throw new GeneralException(
+ new Error(`Token Bridge Address for ${network} on Wormchain not found`),
+ )
+ }
+
+ return {
+ injectiveContractAddresses,
+ associatedChainContractAddresses,
+ }
+}
+
export const getContractAddresses = (
network: Network,
source: WormholeSource = WormholeSource.Solana,
@@ -334,6 +359,8 @@ export const getContractAddresses = (
return getKlaytnContractAddresses(network)
case WormholeSource.Aptos:
return getAptosContractAddresses(network)
+ case WormholeSource.Wormchain:
+ return getWormchainContractAddresses(network)
default:
return getSolanaContractAddresses(network)
}
@@ -357,11 +384,30 @@ export const getAssociatedChain = (
return WORMHOLE_CHAINS.klaytn
case WormholeSource.Aptos:
return WORMHOLE_CHAINS.aptos
+ case WormholeSource.Wormchain:
+ return WORMHOLE_CHAINS.wormchain
default:
return WORMHOLE_CHAINS.solana
}
}
+export const getAssociatedChainName = (
+ source: WormholeSource = WormholeSource.Solana,
+) => {
+ switch (source) {
+ case WormholeSource.Solana:
+ return 'Solana'
+ case WormholeSource.Ethereum:
+ return 'Ethereum'
+ case WormholeSource.Arbitrum:
+ return 'Arbitrum'
+ case WormholeSource.Polygon:
+ return 'Polygon'
+ default:
+ return 'Solana'
+ }
+}
+
export const getAssociatedChainRecipient = (
recipient: string,
source: WormholeSource = WormholeSource.Solana,
@@ -381,11 +427,45 @@ export const getAssociatedChainRecipient = (
throw Error('Aptos not yet implemented')
case WormholeSource.Sui:
throw Error('Sui not yet implemented')
+ case WormholeSource.Wormchain:
+ return Buffer.from(recipient).toString('base64')
default:
return new SolanaPublicKey(recipient).toString()
}
}
+export const getAssociatedChainRecipientIbc = (
+ recipient: string,
+ source: WormholeSource = WormholeSource.Solana,
+) => {
+ switch (source) {
+ case WormholeSource.Solana:
+ const addr =
+ typeof recipient === 'string' && recipient.startsWith('0x')
+ ? arrayify(recipient)
+ : recipient
+
+ return arrayify(zeroPad(new SolanaPublicKey(addr).toBytes(), 32))
+
+ case WormholeSource.Ethereum:
+ return arrayify(Buffer.from(zeroPad(recipient, 32)))
+ case WormholeSource.Arbitrum:
+ return arrayify(Buffer.from(zeroPad(recipient, 32)))
+ case WormholeSource.Polygon:
+ return arrayify(Buffer.from(zeroPad(recipient, 32)))
+ case WormholeSource.Klaytn:
+ return arrayify(Buffer.from(zeroPad(recipient, 32)))
+ case WormholeSource.Aptos:
+ throw Error('Aptos not yet implemented')
+ case WormholeSource.Sui:
+ throw Error('Sui not yet implemented')
+ case WormholeSource.Wormchain:
+ return arrayify(Buffer.from(recipient))
+ default:
+ throw Error('Default Not yet implemented')
+ }
+}
+
export const getEvmNativeAddress = (
network: Network,
source: WormholeSource = WormholeSource.Ethereum,
@@ -429,3 +509,58 @@ export const getEvmChainName = (chainId: number) => {
return 'Ethereum'
}
}
+
+export const getAssociatedChainSigner = async ({
+ source = WormholeSource.Solana,
+ provider,
+ address,
+ rpc,
+}: {
+ source: WormholeSource
+ provider: Provider | PhantomWalletAdapter
+ address: string
+ rpc: string
+}): Promise<
+ Signer<
+ 'Mainnet',
+ 'Solana' | 'Ethereum' | 'Polygon' | 'Arbitrum' | 'Injective'
+ >
+> => {
+ if (source === WormholeSource.Solana) {
+ const actualProvider = provider as PhantomWalletAdapter
+
+ return {
+ address: () => {
+ return address
+ },
+ chain: () => {
+ return 'Solana'
+ },
+ signAndSend: async (transactions) => {
+ const txHashes = []
+
+ for (const transaction of transactions) {
+ const response = await signSendAndConfirmTransactionUnsigned({
+ provider: actualProvider,
+ transaction: transaction,
+ solanaHostUrl: rpc,
+ })
+
+ txHashes.push(response.txHash)
+ }
+
+ return txHashes
+ },
+ }
+ }
+
+ const chainName = getAssociatedChainName(source)
+ const actualProvider = await (provider as Provider)()
+ const signer = actualProvider.getSigner() as any
+ const evmSigner = await evm.getEvmSignerForSigner(chainName as any, signer)
+
+ return evmSigner as Signer<
+ 'Mainnet',
+ 'Solana' | 'Ethereum' | 'Polygon' | 'Arbitrum'
+ >
+}
diff --git a/packages/bridge-ts/src/wormhole/vaa.spec.ts b/deprecated/bridge-ts/src/wormhole/vaa.spec.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/vaa.spec.ts
rename to deprecated/bridge-ts/src/wormhole/vaa.spec.ts
diff --git a/packages/bridge-ts/src/wormhole/vaa.ts b/deprecated/bridge-ts/src/wormhole/vaa.ts
similarity index 100%
rename from packages/bridge-ts/src/wormhole/vaa.ts
rename to deprecated/bridge-ts/src/wormhole/vaa.ts
diff --git a/packages/bridge-ts/tsconfig.build.esm.json b/deprecated/bridge-ts/tsconfig.build.esm.json
similarity index 100%
rename from packages/bridge-ts/tsconfig.build.esm.json
rename to deprecated/bridge-ts/tsconfig.build.esm.json
diff --git a/packages/bridge-ts/tsconfig.build.json b/deprecated/bridge-ts/tsconfig.build.json
similarity index 100%
rename from packages/bridge-ts/tsconfig.build.json
rename to deprecated/bridge-ts/tsconfig.build.json
diff --git a/packages/bridge-ts/tsconfig.json b/deprecated/bridge-ts/tsconfig.json
similarity index 100%
rename from packages/bridge-ts/tsconfig.json
rename to deprecated/bridge-ts/tsconfig.json
diff --git a/packages/contracts/.npmignore b/deprecated/contracts/.npmignore
similarity index 100%
rename from packages/contracts/.npmignore
rename to deprecated/contracts/.npmignore
diff --git a/packages/contracts/CHANGELOG.md b/deprecated/contracts/CHANGELOG.md
similarity index 99%
rename from packages/contracts/CHANGELOG.md
rename to deprecated/contracts/CHANGELOG.md
index 4ea736a2c..702bbf334 100644
--- a/packages/contracts/CHANGELOG.md
+++ b/deprecated/contracts/CHANGELOG.md
@@ -3,46 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.5-beta.9...@injectivelabs/contracts@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.11-beta.14...@injectivelabs/contracts@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/contracts
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.7...@injectivelabs/contracts@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/contracts
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.6...@injectivelabs/contracts@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/contracts
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.4-beta.0...@injectivelabs/contracts@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.6-beta.13...@injectivelabs/contracts@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/contracts
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.5-beta.9...@injectivelabs/contracts@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/contracts
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.4-beta.0...@injectivelabs/contracts@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/contracts
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.3-beta.4...@injectivelabs/contracts@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/contracts
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.2-beta.2...@injectivelabs/contracts@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/contracts
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.1-beta.8...@injectivelabs/contracts@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/contracts
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/contracts@1.14.0-beta.1...@injectivelabs/contracts@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/contracts
diff --git a/packages/contracts/LICENSE b/deprecated/contracts/LICENSE
similarity index 100%
rename from packages/contracts/LICENSE
rename to deprecated/contracts/LICENSE
diff --git a/packages/contracts/README.md b/deprecated/contracts/README.md
similarity index 100%
rename from packages/contracts/README.md
rename to deprecated/contracts/README.md
diff --git a/packages/contracts/jest.config.js b/deprecated/contracts/jest.config.js
similarity index 100%
rename from packages/contracts/jest.config.js
rename to deprecated/contracts/jest.config.js
diff --git a/packages/contracts/package.json b/deprecated/contracts/package.json
similarity index 70%
rename from packages/contracts/package.json
rename to deprecated/contracts/package.json
index 4aa36d857..eb570e91c 100644
--- a/packages/contracts/package.json
+++ b/deprecated/contracts/package.json
@@ -1,15 +1,16 @@
{
"name": "@injectivelabs/contracts",
"description": "Contracts wrapper that can be reused throughout Injective's projects.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"license": "Apache-2.0",
- "main": "dist/cjs/index.js",
- "module": "dist/esm/index.js",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
+ "main": "dist/cjs/index.js",
+ "module": "dist/esm/index.js",
"files": [
"dist"
],
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,14 +28,14 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"ethers": "^5.7.2",
"link-module-alias": "^1.2.0",
"shx": "^0.3.3"
diff --git a/packages/contracts/src/BaseContract.ts b/deprecated/contracts/src/BaseContract.ts
similarity index 100%
rename from packages/contracts/src/BaseContract.ts
rename to deprecated/contracts/src/BaseContract.ts
diff --git a/packages/contracts/src/addresses.ts b/deprecated/contracts/src/addresses.ts
similarity index 78%
rename from packages/contracts/src/addresses.ts
rename to deprecated/contracts/src/addresses.ts
index 1f377ff3b..9dac0d54a 100644
--- a/packages/contracts/src/addresses.ts
+++ b/deprecated/contracts/src/addresses.ts
@@ -1,5 +1,5 @@
import { ZERO_ADDRESS } from '@injectivelabs/utils'
-import { ChainId } from '@injectivelabs/ts-types'
+import { ChainId, EthereumChainId } from '@injectivelabs/ts-types'
import { Network } from '@injectivelabs/networks'
import { GeneralException } from '@injectivelabs/exceptions'
import {
@@ -9,35 +9,39 @@ import {
} from './types'
export const contractAddresses: ContractAddressesForChainId = {
- '1': {
+ [EthereumChainId.Mainnet]: {
peggy: '0xF955C57f9EA9Dc8781965FEaE0b6A2acE2BAD6f3',
injective: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
},
- '3': {
+ [EthereumChainId.Ropsten]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
- '4': {
+ [EthereumChainId.Rinkeby]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
- '5': {
+ [EthereumChainId.Goerli]: {
peggy: '0xd2C6753F6B1783EF0a3857275e16e79D91b539a3',
injective: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
},
- '42': {
+ [EthereumChainId.Kovan]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
- '888': {
+ [EthereumChainId.Injective]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
- '1337': {
+ [EthereumChainId.Sepolia]: {
+ peggy: '0x12e1181a741b70BE6A9D81f85af3E92B6ba41897',
+ injective: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
+ },
+ [EthereumChainId.Ganache]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
- '31337': {
+ [EthereumChainId.HardHat]: {
peggy: ZERO_ADDRESS,
injective: ZERO_ADDRESS,
},
@@ -60,7 +64,7 @@ export const contractAddressesByNetwork: ContractAddressesForNetwork = {
peggy: '0xF955C57f9EA9Dc8781965FEaE0b6A2acE2BAD6f3',
injective: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
},
- [Network.Public]: {
+ [Network.MainnetOld]: {
peggy: '0xF955C57f9EA9Dc8781965FEaE0b6A2acE2BAD6f3',
injective: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
},
@@ -73,20 +77,20 @@ export const contractAddressesByNetwork: ContractAddressesForNetwork = {
injective: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
},
[Network.Testnet]: {
- peggy: '0xd2C6753F6B1783EF0a3857275e16e79D91b539a3',
- injective: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
+ peggy: '0x12e1181a741b70BE6A9D81f85af3E92B6ba41897',
+ injective: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
},
[Network.TestnetK8s]: {
- peggy: '0xd2C6753F6B1783EF0a3857275e16e79D91b539a3',
- injective: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
+ peggy: '0x12e1181a741b70BE6A9D81f85af3E92B6ba41897',
+ injective: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
},
[Network.TestnetSentry]: {
- peggy: '0xd2C6753F6B1783EF0a3857275e16e79D91b539a3',
- injective: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
+ peggy: '0x12e1181a741b70BE6A9D81f85af3E92B6ba41897',
+ injective: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
},
[Network.TestnetOld]: {
- peggy: '0xd2C6753F6B1783EF0a3857275e16e79D91b539a3',
- injective: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
+ peggy: '0x12e1181a741b70BE6A9D81f85af3E92B6ba41897',
+ injective: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
},
[Network.Devnet]: {
peggy: '0x430544ca09F7914077a0E8F405Da62292428F49D',
diff --git a/packages/contracts/src/contracts/Erc20Contract.ts b/deprecated/contracts/src/contracts/Erc20Contract.ts
similarity index 100%
rename from packages/contracts/src/contracts/Erc20Contract.ts
rename to deprecated/contracts/src/contracts/Erc20Contract.ts
diff --git a/packages/contracts/src/contracts/Peggy.ts b/deprecated/contracts/src/contracts/Peggy.ts
similarity index 100%
rename from packages/contracts/src/contracts/Peggy.ts
rename to deprecated/contracts/src/contracts/Peggy.ts
diff --git a/packages/contracts/src/contracts/abi/injective.ts b/deprecated/contracts/src/contracts/abi/injective.ts
similarity index 100%
rename from packages/contracts/src/contracts/abi/injective.ts
rename to deprecated/contracts/src/contracts/abi/injective.ts
diff --git a/packages/contracts/src/contracts/abi/peggy-old.ts b/deprecated/contracts/src/contracts/abi/peggy-old.ts
similarity index 100%
rename from packages/contracts/src/contracts/abi/peggy-old.ts
rename to deprecated/contracts/src/contracts/abi/peggy-old.ts
diff --git a/packages/contracts/src/contracts/abi/peggy.ts b/deprecated/contracts/src/contracts/abi/peggy.ts
similarity index 100%
rename from packages/contracts/src/contracts/abi/peggy.ts
rename to deprecated/contracts/src/contracts/abi/peggy.ts
diff --git a/packages/contracts/src/contracts/index.ts b/deprecated/contracts/src/contracts/index.ts
similarity index 100%
rename from packages/contracts/src/contracts/index.ts
rename to deprecated/contracts/src/contracts/index.ts
diff --git a/packages/contracts/src/index.ts b/deprecated/contracts/src/index.ts
similarity index 100%
rename from packages/contracts/src/index.ts
rename to deprecated/contracts/src/index.ts
diff --git a/packages/contracts/src/types.ts b/deprecated/contracts/src/types.ts
similarity index 100%
rename from packages/contracts/src/types.ts
rename to deprecated/contracts/src/types.ts
diff --git a/packages/contracts/src/utils.ts b/deprecated/contracts/src/utils.ts
similarity index 100%
rename from packages/contracts/src/utils.ts
rename to deprecated/contracts/src/utils.ts
diff --git a/packages/contracts/tsconfig.build.esm.json b/deprecated/contracts/tsconfig.build.esm.json
similarity index 100%
rename from packages/contracts/tsconfig.build.esm.json
rename to deprecated/contracts/tsconfig.build.esm.json
diff --git a/packages/contracts/tsconfig.build.json b/deprecated/contracts/tsconfig.build.json
similarity index 100%
rename from packages/contracts/tsconfig.build.json
rename to deprecated/contracts/tsconfig.build.json
diff --git a/packages/contracts/tsconfig.json b/deprecated/contracts/tsconfig.json
similarity index 100%
rename from packages/contracts/tsconfig.json
rename to deprecated/contracts/tsconfig.json
diff --git a/packages/sdk-ui-ts/.eslintrc.js b/deprecated/sdk-ui-ts/.eslintrc.js
similarity index 100%
rename from packages/sdk-ui-ts/.eslintrc.js
rename to deprecated/sdk-ui-ts/.eslintrc.js
diff --git a/packages/sdk-ui-ts/.npmignore b/deprecated/sdk-ui-ts/.npmignore
similarity index 100%
rename from packages/sdk-ui-ts/.npmignore
rename to deprecated/sdk-ui-ts/.npmignore
diff --git a/packages/sdk-ui-ts/CHANGELOG.md b/deprecated/sdk-ui-ts/CHANGELOG.md
similarity index 99%
rename from packages/sdk-ui-ts/CHANGELOG.md
rename to deprecated/sdk-ui-ts/CHANGELOG.md
index d4a4746a3..c01028068 100644
--- a/packages/sdk-ui-ts/CHANGELOG.md
+++ b/deprecated/sdk-ui-ts/CHANGELOG.md
@@ -3,46 +3,50 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.5-beta.76...@injectivelabs/sdk-ui-ts@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.11-beta.113...@injectivelabs/sdk-ui-ts@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.8...@injectivelabs/sdk-ui-ts@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.8](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.7...@injectivelabs/sdk-ui-ts@1.14.8) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.4-beta.3...@injectivelabs/sdk-ui-ts@1.14.4) (2023-11-20)
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.7-beta.2...@injectivelabs/sdk-ui-ts@1.14.7) (2024-03-03)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.7-beta.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.7-beta.0...@injectivelabs/sdk-ui-ts@1.14.7-beta.1) (2024-03-02)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.6-beta.65...@injectivelabs/sdk-ui-ts@1.14.6) (2024-03-01)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.3-beta.29...@injectivelabs/sdk-ui-ts@1.14.3) (2023-11-17)
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.5-beta.76...@injectivelabs/sdk-ui-ts@1.14.5) (2024-01-11)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.4-beta.3...@injectivelabs/sdk-ui-ts@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.3-beta.29...@injectivelabs/sdk-ui-ts@1.14.3) (2023-11-17)
+**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.2-beta.16...@injectivelabs/sdk-ui-ts@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.1-beta.25...@injectivelabs/sdk-ui-ts@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
-
-
-
-
## [1.14.1-beta.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ui-ts@1.14.1-beta.1...@injectivelabs/sdk-ui-ts@1.14.1-beta.2) (2023-09-24)
**Note:** Version bump only for package @injectivelabs/sdk-ui-ts
diff --git a/packages/sdk-ui-ts/CONTRIBUTING.md b/deprecated/sdk-ui-ts/CONTRIBUTING.md
similarity index 100%
rename from packages/sdk-ui-ts/CONTRIBUTING.md
rename to deprecated/sdk-ui-ts/CONTRIBUTING.md
diff --git a/packages/sdk-ui-ts/LICENSE b/deprecated/sdk-ui-ts/LICENSE
similarity index 100%
rename from packages/sdk-ui-ts/LICENSE
rename to deprecated/sdk-ui-ts/LICENSE
diff --git a/packages/sdk-ui-ts/README.md b/deprecated/sdk-ui-ts/README.md
similarity index 100%
rename from packages/sdk-ui-ts/README.md
rename to deprecated/sdk-ui-ts/README.md
diff --git a/packages/sdk-ui-ts/jest.config.js b/deprecated/sdk-ui-ts/jest.config.js
similarity index 100%
rename from packages/sdk-ui-ts/jest.config.js
rename to deprecated/sdk-ui-ts/jest.config.js
diff --git a/packages/sdk-ui-ts/package.json b/deprecated/sdk-ui-ts/package.json
similarity index 54%
rename from packages/sdk-ui-ts/package.json
rename to deprecated/sdk-ui-ts/package.json
index 30036c611..e3b29ca91 100644
--- a/packages/sdk-ui-ts/package.json
+++ b/deprecated/sdk-ui-ts/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/sdk-ui-ts",
"description": "SDK in TypeScript for building Injective UI applications in a browser environment.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.2",
"sideEffects": false,
"license": "Apache-2.0",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias && yarn copy-files && yarn get-ibc-tokens",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias && yarn copy-files",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -28,21 +29,23 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js",
- "validators-logo": "ts-node-dev --ignore-watch=validators-logo ./src/validators-logo && yarn copy-files",
- "validators-logo:update-all": "ts-node-dev --ignore-watch=validators-logo ./src/validators-logo --update:all && yarn copy-files",
- "get-ibc-tokens": "ts-node-dev ./src/services/ibc/tokens.ts"
+ "validators-logo": "ts-node --ignore-watch=validators-logo ./src/validators-logo && yarn copy-files",
+ "validators-logo:update-all": "ts-node --ignore-watch=validators-logo ./src/validators-logo --update:all && yarn copy-files",
+ "get-ibc-tokens": "ts-node ./src/services/ibc/tokens.ts"
},
"dependencies": {
- "@injectivelabs/contracts": "^1.14.5",
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/sdk-ts": "^1.14.5",
- "@injectivelabs/token-metadata": "^1.14.5",
- "@injectivelabs/token-utils": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@ensdomains/ens-validation": "^0.1.0",
+ "@ensdomains/eth-ens-namehash": "^2.0.15",
+ "@injectivelabs/contracts": "^1.14.12-beta.0",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/sdk-ts": "^1.14.12-beta.2",
+ "@injectivelabs/token-metadata": "^1.14.12-beta.0",
+ "@injectivelabs/token-utils": "^1.14.12-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"alchemy-sdk": "^2.6.3",
"copyfiles": "^2.4.1",
"link-module-alias": "^1.2.0",
diff --git a/packages/sdk-ui-ts/src/client/index.ts b/deprecated/sdk-ui-ts/src/client/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/index.ts
rename to deprecated/sdk-ui-ts/src/client/index.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiAccountTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiAccountTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiAccountTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiAccountTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiAuctionTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiAuctionTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiAuctionTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiAuctionTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiBankTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiBankTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiBankTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiBankTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts
similarity index 98%
rename from packages/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts
index 2f012a53b..7445bb12b 100644
--- a/packages/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts
+++ b/deprecated/sdk-ui-ts/src/client/transformers/UiBridgeTransformer.ts
@@ -81,6 +81,8 @@ export const convertCosmosWalletToUiBridgeTransaction = async ({
const bridgingNetwork = getNetworkFromAddress(sender)
+ const txPath = bridgingNetwork === BridgingNetwork.Andromeda ? 'tx' : 'txs'
+
return {
amount,
denom,
@@ -89,9 +91,10 @@ export const convertCosmosWalletToUiBridgeTransaction = async ({
type: getBridgeTransactionType(bridgingNetwork, BridgingNetwork.Injective),
timestamp: Date.now(),
txHash: transaction.transactionHash,
- explorerLink: `${getCosmosExplorerUrl(bridgingNetwork, network)}/txs/${
- transaction.transactionHash
- }`,
+ explorerLink: `${getCosmosExplorerUrl(
+ bridgingNetwork,
+ network,
+ )}/${txPath}/${transaction.transactionHash}`,
state: BridgeTransactionState.Submitted,
timeoutTimestamp: packetTimeoutTimestamp.value,
}
@@ -179,7 +182,7 @@ export const convertPeggoToUiBridgeTransaction = async ({
),
amount: transaction.amount,
blockHeight: transaction.blockHeight,
- denom: transaction.tokenContract,
+ denom: `peggy${transaction.tokenContract}`,
nonce: transaction.eventNonce,
explorerLink: `${getEthereumExplorerUrl(network)}/tx/${txHash}`,
receiver: getInjectiveAddress(receiver),
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiDerivativesTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiDerivativesTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiDerivativesTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiDerivativesTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiMarketsHistoryTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiMarketsHistoryTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiMarketsHistoryTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiMarketsHistoryTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiSpotTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiSpotTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiSpotTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiSpotTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/UiStakingTransformer.ts b/deprecated/sdk-ui-ts/src/client/transformers/UiStakingTransformer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/UiStakingTransformer.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/UiStakingTransformer.ts
diff --git a/packages/sdk-ui-ts/src/client/transformers/index.ts b/deprecated/sdk-ui-ts/src/client/transformers/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/transformers/index.ts
rename to deprecated/sdk-ui-ts/src/client/transformers/index.ts
diff --git a/packages/sdk-ui-ts/src/client/types/account.ts b/deprecated/sdk-ui-ts/src/client/types/account.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/account.ts
rename to deprecated/sdk-ui-ts/src/client/types/account.ts
diff --git a/packages/sdk-ui-ts/src/client/types/bank.ts b/deprecated/sdk-ui-ts/src/client/types/bank.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/bank.ts
rename to deprecated/sdk-ui-ts/src/client/types/bank.ts
diff --git a/packages/sdk-ui-ts/src/client/types/common.ts b/deprecated/sdk-ui-ts/src/client/types/common.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/common.ts
rename to deprecated/sdk-ui-ts/src/client/types/common.ts
diff --git a/deprecated/sdk-ui-ts/src/client/types/cosmos.ts b/deprecated/sdk-ui-ts/src/client/types/cosmos.ts
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/sdk-ui-ts/src/client/types/derivatives.ts b/deprecated/sdk-ui-ts/src/client/types/derivatives.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/derivatives.ts
rename to deprecated/sdk-ui-ts/src/client/types/derivatives.ts
diff --git a/packages/sdk-ui-ts/src/client/types/explorer-rest.ts b/deprecated/sdk-ui-ts/src/client/types/explorer-rest.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/explorer-rest.ts
rename to deprecated/sdk-ui-ts/src/client/types/explorer-rest.ts
diff --git a/packages/sdk-ui-ts/src/client/types/index.ts b/deprecated/sdk-ui-ts/src/client/types/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/index.ts
rename to deprecated/sdk-ui-ts/src/client/types/index.ts
diff --git a/packages/sdk-ui-ts/src/client/types/leaderboard.ts b/deprecated/sdk-ui-ts/src/client/types/leaderboard.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/leaderboard.ts
rename to deprecated/sdk-ui-ts/src/client/types/leaderboard.ts
diff --git a/packages/sdk-ui-ts/src/client/types/markets-history-rest.ts b/deprecated/sdk-ui-ts/src/client/types/markets-history-rest.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/markets-history-rest.ts
rename to deprecated/sdk-ui-ts/src/client/types/markets-history-rest.ts
diff --git a/packages/sdk-ui-ts/src/client/types/metrics.ts b/deprecated/sdk-ui-ts/src/client/types/metrics.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/metrics.ts
rename to deprecated/sdk-ui-ts/src/client/types/metrics.ts
diff --git a/packages/sdk-ui-ts/src/client/types/spot.ts b/deprecated/sdk-ui-ts/src/client/types/spot.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/spot.ts
rename to deprecated/sdk-ui-ts/src/client/types/spot.ts
diff --git a/packages/sdk-ui-ts/src/client/types/staking.ts b/deprecated/sdk-ui-ts/src/client/types/staking.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/types/staking.ts
rename to deprecated/sdk-ui-ts/src/client/types/staking.ts
diff --git a/packages/sdk-ui-ts/src/client/utils/bridge.ts b/deprecated/sdk-ui-ts/src/client/utils/bridge.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/client/utils/bridge.ts
rename to deprecated/sdk-ui-ts/src/client/utils/bridge.ts
diff --git a/packages/sdk-ui-ts/src/constants.ts b/deprecated/sdk-ui-ts/src/constants.ts
similarity index 98%
rename from packages/sdk-ui-ts/src/constants.ts
rename to deprecated/sdk-ui-ts/src/constants.ts
index b9daad7cd..86a32110d 100644
--- a/packages/sdk-ui-ts/src/constants.ts
+++ b/deprecated/sdk-ui-ts/src/constants.ts
@@ -86,4 +86,4 @@ export const ASSET_PRICE_SERVICE_URL =
export const TESTNET_ASSET_PRICE_SERVICE_URL =
'https://k8s.testnet.asset.injective.network/asset-price/v1'
export const DEVNET_ASSET_PRICE_SERVICE_URL =
- 'https://devnet.api.injective.dev/asset-price/v1'
+ 'https://devnet.asset.injective.dev/asset-price/v1'
diff --git a/packages/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts b/deprecated/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts
similarity index 96%
rename from packages/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts
rename to deprecated/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts
index 3a56ad90c..e7a100cca 100644
--- a/packages/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts
+++ b/deprecated/sdk-ui-ts/src/denom/DenomClientAsync.spec.ts
@@ -32,16 +32,12 @@ describe('DenomClientAsync', () => {
'factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point',
)
- console.log(token)
-
expect(token).toBeDefined()
})
test('works for insurance funds denom', async () => {
const token = await denomClient.getDenomToken('share1')
- console.log(token)
-
expect(token).toBeDefined()
})
})
diff --git a/packages/sdk-ui-ts/src/denom/DenomClientAsync.ts b/deprecated/sdk-ui-ts/src/denom/DenomClientAsync.ts
similarity index 90%
rename from packages/sdk-ui-ts/src/denom/DenomClientAsync.ts
rename to deprecated/sdk-ui-ts/src/denom/DenomClientAsync.ts
index 71ff0fc99..e60494760 100644
--- a/packages/sdk-ui-ts/src/denom/DenomClientAsync.ts
+++ b/deprecated/sdk-ui-ts/src/denom/DenomClientAsync.ts
@@ -21,10 +21,10 @@ import {
import { Web3Client } from '../services/web3/Web3Client'
import type { Token } from '@injectivelabs/token-metadata'
import {
- TokenInfo,
- TokenMeta,
+ TokenType,
+ TokenMetaBase,
getUnknownTokenWithSymbol,
- getIbcTokenMetaFromDenomTrace,
+ getIbcTokenFromDenomTrace,
} from '@injectivelabs/token-metadata'
import { getTokenFromAlchemyTokenMetaResponse } from '../utils/alchemy'
import {
@@ -39,7 +39,10 @@ import { awaitForAll } from '@injectivelabs/utils'
// @ts-ignore
import ibcTokenMetadata from '../services/ibc/ibcTokenMetadata.json'
-const IGNORED_DENOMS = ['peggy0xB855dBC314C39BFa2583567E02a40CBB246CF82B']
+const IGNORED_DENOMS = [
+ 'peggy0xB855dBC314C39BFa2583567E02a40CBB246CF82B',
+ 'peggy0x7C7aB80590708cD1B7cf15fE602301FE52BB1d18',
+]
export class DenomClientAsync {
private denomClient: DenomClient
@@ -111,7 +114,8 @@ export class DenomClientAsync {
}
/**
- * Used to get all tokens even if they are not tracked on the token-metadata package
+ * Used to get all tokens even if they are not
+ * tracked on the token-metadata package
* ERC20, CW20, IBC, etc
*/
async getDenomToken(denom: string): Promise {
@@ -203,26 +207,35 @@ export class DenomClientAsync {
return awaitForAll(denoms, (denom) => this.getDenomToken(denom))
}
- getDenomTokenInfo(denom: string): TokenInfo | undefined {
- return this.denomClient.getDenomTokenInfo(denom)
- }
-
- getTokenMetaDataBySymbol(symbol: string): TokenMeta | undefined {
+ getTokenMetaDataBySymbol(symbol: string): TokenMetaBase | undefined {
return this.denomClient.getTokenMetaDataBySymbol(symbol)
}
- getTokenMetaDataByAddress(address: string): TokenMeta | undefined {
+ getTokenMetaDataByAddress(address: string): TokenMetaBase | undefined {
return this.denomClient.getTokenMetaDataByAddress(address)
}
- getTokenMetaDataByName(name: string): TokenMeta | undefined {
- return this.denomClient.getTokenMetaDataByName(name)
- }
-
getCoinGeckoId(denom: string): string {
return this.denomClient.getCoinGeckoId(denom)
}
+ /**
+ * TODO: refactor
+ */
+ getTokenBySymbol(symbol: string): Token {
+ const tokenMeta = this.denomClient.getTokenMetaDataBySymbol(symbol)
+
+ return {
+ denom: symbol,
+ tokenType: TokenType.Unknown,
+ decimals: tokenMeta?.decimals || 0,
+ logo: tokenMeta?.logo || 'unknown.png',
+ coinGeckoId: tokenMeta?.coinGeckoId || '',
+ name: tokenMeta?.name || symbol.toUpperCase(),
+ symbol: tokenMeta?.symbol || symbol.toUpperCase(),
+ }
+ }
+
private async getFactoryDenomMetadata(
denom: string,
): Promise {
@@ -231,7 +244,7 @@ export class DenomClientAsync {
}
const { metadatas } = await this.chainBankApi.fetchDenomsMetadata({
- limit: 1000,
+ limit: 10000,
})
this.metadatas = metadatas
@@ -285,11 +298,9 @@ export class DenomClientAsync {
}
return {
- ...token,
- ibc: getIbcTokenMetaFromDenomTrace({
- ...cachedDenomTrace,
- decimals: token.decimals,
- hash,
+ ...getIbcTokenFromDenomTrace({
+ token,
+ denomTrace: cachedDenomTrace,
}),
denom,
}
@@ -306,12 +317,7 @@ export class DenomClientAsync {
}
return {
- ...token,
- ibc: getIbcTokenMetaFromDenomTrace({
- ...denomTrace,
- decimals: token.decimals,
- hash,
- }),
+ ...getIbcTokenFromDenomTrace({ token, denomTrace }),
denom,
}
} catch (e) {
diff --git a/packages/sdk-ui-ts/src/denom/index.ts b/deprecated/sdk-ui-ts/src/denom/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/denom/index.ts
rename to deprecated/sdk-ui-ts/src/denom/index.ts
diff --git a/packages/sdk-ui-ts/src/index.ts b/deprecated/sdk-ui-ts/src/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/index.ts
rename to deprecated/sdk-ui-ts/src/index.ts
diff --git a/deprecated/sdk-ui-ts/src/services/bonfida/InjBonfidaNameService.ts b/deprecated/sdk-ui-ts/src/services/bonfida/InjBonfidaNameService.ts
new file mode 100644
index 000000000..509d2987a
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/services/bonfida/InjBonfidaNameService.ts
@@ -0,0 +1,48 @@
+import { GeneralException } from '@injectivelabs/exceptions'
+import {
+ Network,
+ NetworkEndpoints,
+ getNetworkEndpoints,
+} from '@injectivelabs/networks'
+import {
+ toBase64,
+ binaryToBase64,
+ ChainGrpcWasmApi,
+} from '@injectivelabs/sdk-ts'
+import { getBonfidaContractAddress } from './utils'
+
+export class InjBonfidaNameService {
+ protected client: ChainGrpcWasmApi
+
+ private contractAddress: string
+
+ constructor(
+ network: Network = Network.MainnetSentry,
+ endpoints?: NetworkEndpoints,
+ ) {
+ const networkEndpoints = endpoints || getNetworkEndpoints(network)
+
+ this.client = new ChainGrpcWasmApi(networkEndpoints.grpc)
+ this.contractAddress = getBonfidaContractAddress(network)
+ }
+
+ async fetchInjAddress(name: string) {
+ const query = {
+ resolve: {
+ domain_name: name.replace('.sol', ''),
+ },
+ }
+ const response = await this.client.fetchSmartContractState(
+ this.contractAddress,
+ toBase64(query),
+ )
+
+ return Buffer.from(binaryToBase64(response.data), 'base64')
+ .toString()
+ .replace(/["]/g, '')
+ }
+
+ async fetchInjName(_address: string) {
+ throw new GeneralException(new Error(`Not suported for this name service`))
+ }
+}
diff --git a/deprecated/sdk-ui-ts/src/services/bonfida/index.ts b/deprecated/sdk-ui-ts/src/services/bonfida/index.ts
new file mode 100644
index 000000000..ccf3f75cd
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/services/bonfida/index.ts
@@ -0,0 +1 @@
+export * from './InjBonfidaNameService'
diff --git a/deprecated/sdk-ui-ts/src/services/bonfida/utils.ts b/deprecated/sdk-ui-ts/src/services/bonfida/utils.ts
new file mode 100644
index 000000000..f89bbce22
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/services/bonfida/utils.ts
@@ -0,0 +1,9 @@
+import { Network, isTestnet } from '@injectivelabs/networks'
+
+export function getBonfidaContractAddress(network: Network): string {
+ if (isTestnet(network)) {
+ return 'inj1q79ujqyh72p43mhr2ldaly3x6d50rzp3354at3'
+ }
+
+ return 'inj1v7chmgm7vmuwldjt80utmw9c95jkrch979ps8z'
+}
diff --git a/packages/sdk-ui-ts/src/services/gas/estimator.ts b/deprecated/sdk-ui-ts/src/services/gas/estimator.ts
similarity index 97%
rename from packages/sdk-ui-ts/src/services/gas/estimator.ts
rename to deprecated/sdk-ui-ts/src/services/gas/estimator.ts
index 4a5aa8dac..f0cd9dd23 100644
--- a/packages/sdk-ui-ts/src/services/gas/estimator.ts
+++ b/deprecated/sdk-ui-ts/src/services/gas/estimator.ts
@@ -39,11 +39,11 @@ export const fetchEstimatorGasPrice = async (
const isMainnetNetwork = isMainnet(network)
const settings = {
apiKey: alchemyRpcUrl,
- network: isMainnetNetwork ? Network.ETH_MAINNET : Network.ETH_GOERLI,
+ network: isMainnetNetwork ? Network.ETH_MAINNET : Network.ETH_SEPOLIA,
}
const url = `https://eth-${
- isMainnetNetwork ? 'mainnet' : 'goerli'
+ isMainnetNetwork ? 'mainnet' : 'sepolia'
}.alchemyapi.io/v2/`
const alchemy = new Alchemy(settings)
const httpClient = new HttpClient(url)
diff --git a/packages/sdk-ui-ts/src/services/gas/index.ts b/deprecated/sdk-ui-ts/src/services/gas/index.ts
similarity index 99%
rename from packages/sdk-ui-ts/src/services/gas/index.ts
rename to deprecated/sdk-ui-ts/src/services/gas/index.ts
index 4b06642a0..abf77465d 100644
--- a/packages/sdk-ui-ts/src/services/gas/index.ts
+++ b/deprecated/sdk-ui-ts/src/services/gas/index.ts
@@ -52,7 +52,7 @@ const fetchGasPriceFromAlchemy = async (
apiKey: key,
network: isMainnet(network)
? AlchemyNetwork.ETH_MAINNET
- : AlchemyNetwork.ETH_GOERLI,
+ : AlchemyNetwork.ETH_SEPOLIA,
}
const alchemy = new Alchemy(settings)
const response = await alchemy.core.getFeeData()
diff --git a/deprecated/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json b/deprecated/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json
new file mode 100644
index 000000000..716e469d1
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json
@@ -0,0 +1,41362 @@
+[
+ {
+ "name": "...........",
+ "denom": "factory/inj1jj7z2f69374z6lmph44ztnxghgczyylqgc7tzw/dot",
+ "logo": "unknown.png",
+ "symbol": "...",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jj7z2f69374z6lmph44ztnxghgczyylqgc7tzw/dot",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "...",
+ "baseDenom": "...",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$Barry",
+ "denom": "inj1ykpcvay9rty363wtxr9749qgnnj3rlp94r302y",
+ "logo": "unknown.png",
+ "symbol": "BARRY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ykpcvay9rty363wtxr9749qgnnj3rlp94r302y",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BARRY",
+ "baseDenom": "BARRY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$Hound on Injective",
+ "denom": "factory/inj1nccncwqx5q22lf4uh83dhe89e3f0sh8kljf055/HOUND",
+ "logo": "unknown.png",
+ "symbol": "HOUND",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nccncwqx5q22lf4uh83dhe89e3f0sh8kljf055/HOUND",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HOUND",
+ "baseDenom": "HOUND",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$KIDZ",
+ "denom": "factory/inj1f502ktya5h69hxs9acvf3j3d6ygepgxxh2w40u/kidz",
+ "logo": "unknown.png",
+ "symbol": "KIDZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1f502ktya5h69hxs9acvf3j3d6ygepgxxh2w40u/kidz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KIDZ",
+ "baseDenom": "KIDZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$NINJA",
+ "denom": "inj1yngv6had7vm443k220q9ttg0sc4zkpdwp70fmq",
+ "logo": "unknown.png",
+ "symbol": "NINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yngv6had7vm443k220q9ttg0sc4zkpdwp70fmq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJA",
+ "baseDenom": "NINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$Shuriken",
+ "denom": "factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "$TunaSniper (Wormhole)",
+ "denom": "inj1nmzj7jartqsex022j3kkkszeayypqkzl5vpe59",
+ "logo": "unknown.png",
+ "symbol": "$TunaSniper",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nmzj7jartqsex022j3kkkszeayypqkzl5vpe59",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "$TunaSniper",
+ "baseDenom": "$TunaSniper",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "0XGNSS (Wormhole)",
+ "denom": "inj1cfv8rrcete7vengcken0mjqt8q75vpcc0j0my5",
+ "logo": "unknown.png",
+ "symbol": "0XGNSS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cfv8rrcete7vengcken0mjqt8q75vpcc0j0my5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "0XGNSS",
+ "baseDenom": "0XGNSS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "1K",
+ "denom": "inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd",
+ "logo": "unknown.png",
+ "symbol": "1K",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "1K",
+ "baseDenom": "1K",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "1K",
+ "denom": "inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd",
+ "logo": "unknown.png",
+ "symbol": "1K",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "1K",
+ "baseDenom": "1K",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "1to1",
+ "denom": "inj1y346c6cjj0kxpcwj5gq88la9qsp88rzlw3pg98",
+ "logo": "unknown.png",
+ "symbol": "ONETOONE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y346c6cjj0kxpcwj5gq88la9qsp88rzlw3pg98",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ONETOONE",
+ "baseDenom": "ONETOONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "2024 MEME (Wormhole)",
+ "denom": "inj1m2w8aenm3365w8t4x7jvpassk9ju7xq3snahhh",
+ "logo": "unknown.png",
+ "symbol": "2024MEME",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m2w8aenm3365w8t4x7jvpassk9ju7xq3snahhh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "2024MEME",
+ "baseDenom": "2024MEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
+ "denom": "inj1wlrndkkyj90jsp9mness2kqp5x0huzuhuhx28d",
+ "logo": "unknown.png",
+ "symbol": "AAAA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wlrndkkyj90jsp9mness2kqp5x0huzuhuhx28d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AAAA",
+ "baseDenom": "AAAA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Aave",
+ "denom": "ibc/49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/aave.svg",
+ "symbol": "AAVE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AAVE",
+ "baseDenom": "AAVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AAVE",
+ "denom": "peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/aave.svg",
+ "symbol": "AAVE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AAVE",
+ "baseDenom": "AAVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "account sequence mismatch",
+ "denom": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/sequence",
+ "logo": "unknown.png",
+ "symbol": "SEQUENCE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/sequence",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEQUENCE",
+ "baseDenom": "SEQUENCE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ADO",
+ "denom": "ibc/CF0C070562EC0816B09DDD9518328DCCFBE6C4388907EFF883FD4BE4E510005E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/ADO.png",
+ "symbol": "ADO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CF0C070562EC0816B09DDD9518328DCCFBE6C4388907EFF883FD4BE4E510005E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ADO",
+ "baseDenom": "ADO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Adolf",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/adolf",
+ "logo": "unknown.png",
+ "symbol": "ADOLF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/adolf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ADOLF",
+ "baseDenom": "ADOLF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Aeroscraper Stablecoin",
+ "denom": "inj1p3nrwgm9u3dtln6rwdvrsmjt5fwlhhhq3ugckd",
+ "logo": "unknown.png",
+ "symbol": "aUSD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p3nrwgm9u3dtln6rwdvrsmjt5fwlhhhq3ugckd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "aUSD",
+ "baseDenom": "aUSD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AI DOG",
+ "denom": "inj1f6h8cvfsyz450kkcqmy53w0y4qnpj9eylsazww",
+ "logo": "unknown.png",
+ "symbol": "CLEVER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f6h8cvfsyz450kkcqmy53w0y4qnpj9eylsazww",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CLEVER",
+ "baseDenom": "CLEVER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AI-injective (Wormhole)",
+ "denom": "inj10k45sksxulzp7avvmt2fud25cmywk6u75pwgd2",
+ "logo": "unknown.png",
+ "symbol": "AINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10k45sksxulzp7avvmt2fud25cmywk6u75pwgd2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "AINJ",
+ "baseDenom": "AINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AJNIN",
+ "denom": "inj1msvvtt2e6rshp0fyqlp7gzceffzgymvwjucwyh",
+ "logo": "unknown.png",
+ "symbol": "AJNIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1msvvtt2e6rshp0fyqlp7gzceffzgymvwjucwyh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AJNIN",
+ "baseDenom": "AJNIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Akita Inu",
+ "denom": "factory/inj1z0yv9ljw68eh4pec2r790jw8yal4dt5wnu4wuk/akita",
+ "logo": "unknown.png",
+ "symbol": "AKITA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z0yv9ljw68eh4pec2r790jw8yal4dt5wnu4wuk/akita",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AKITA",
+ "baseDenom": "AKITA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alaskan Malamute",
+ "denom": "inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4",
+ "logo": "unknown.png",
+ "symbol": "ALASKA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ALASKA",
+ "baseDenom": "ALASKA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "alentejo.money",
+ "denom": "ibc/FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Alem.png",
+ "symbol": "ALEM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALEM",
+ "baseDenom": "ALEM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "alfa coin",
+ "denom": "inj1jvtzkr6cwd4dzeqq4q74g2qj3gp2gvmuar5c0t",
+ "logo": "unknown.png",
+ "symbol": "ALFAROMEO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jvtzkr6cwd4dzeqq4q74g2qj3gp2gvmuar5c0t",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALFAROMEO",
+ "baseDenom": "ALFAROMEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ALIEN",
+ "denom": "factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/alien.png",
+ "symbol": "$ALIEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "$ALIEN",
+ "baseDenom": "$ALIEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ALIEN",
+ "denom": "factory/inj175fuhj3rlyttt255fsc6fwyteealzt67szpvan/ALIEN",
+ "logo": "unknown.png",
+ "symbol": "ALIEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj175fuhj3rlyttt255fsc6fwyteealzt67szpvan/ALIEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALIEN",
+ "baseDenom": "ALIEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alien Token",
+ "denom": "factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/aoi",
+ "logo": "unknown.png",
+ "symbol": "$AOI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/aoi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "$AOI",
+ "baseDenom": "$AOI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alienware",
+ "denom": "inj128hmvp03navfcad7fjdsdnjdaxsp8q8z9av3th",
+ "logo": "unknown.png",
+ "symbol": "ALIENWARE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj128hmvp03navfcad7fjdsdnjdaxsp8q8z9av3th",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALIENWARE",
+ "baseDenom": "ALIENWARE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "aligator",
+ "denom": "inj1t6uqhmlgpju7265aelawdkvn3xqnq3jv8j60l7",
+ "logo": "unknown.png",
+ "symbol": "ALIGATOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t6uqhmlgpju7265aelawdkvn3xqnq3jv8j60l7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALIGATOR",
+ "baseDenom": "ALIGATOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "aligator",
+ "denom": "aligator",
+ "logo": "unknown.png",
+ "symbol": "aligator",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "aligator",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "aligator",
+ "baseDenom": "aligator",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ALLEE",
+ "denom": "inj1yq0394aplhz94nrthglzsx2c29e8spyrq6u8ah",
+ "logo": "unknown.png",
+ "symbol": "ALE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yq0394aplhz94nrthglzsx2c29e8spyrq6u8ah",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ALE",
+ "baseDenom": "ALE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alloyed USDT",
+ "denom": "ibc/7991930BA02EBF3893A7E244233E005C2CB14679898D8C9E680DA5F7D54E647D",
+ "logo": "unknown.png",
+ "symbol": "allUSDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7991930BA02EBF3893A7E244233E005C2CB14679898D8C9E680DA5F7D54E647D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "allUSDT",
+ "baseDenom": "allUSDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alpha Bulls",
+ "denom": "factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls",
+ "logo": "unknown.png",
+ "symbol": "BULLS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BULLS",
+ "baseDenom": "BULLS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alpha GODS",
+ "denom": "inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w",
+ "logo": "unknown.png",
+ "symbol": "GODS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GODS",
+ "baseDenom": "GODS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AlphaNet.AI (Wormhole)",
+ "denom": "inj135fkkvwr9neffh40pgg24as5mwwuuku33n8zzw",
+ "logo": "unknown.png",
+ "symbol": "ALPHANET",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj135fkkvwr9neffh40pgg24as5mwwuuku33n8zzw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ALPHANET",
+ "baseDenom": "ALPHANET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Alpha Pro Club (Wormhole)",
+ "denom": "inj1q2u8r40uh0ykqrjwszppz6yj2nvst4xvfvks29",
+ "logo": "unknown.png",
+ "symbol": "ALPHA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1q2u8r40uh0ykqrjwszppz6yj2nvst4xvfvks29",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ALPHA",
+ "baseDenom": "ALPHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Amogus Crewmate",
+ "denom": "factory/inj1a47ddtzh8le8ukznc9v3dvqs5w5anwjjvy8lqj/amogus",
+ "logo": "unknown.png",
+ "symbol": "AMOGUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a47ddtzh8le8ukznc9v3dvqs5w5anwjjvy8lqj/amogus",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AMOGUS",
+ "baseDenom": "AMOGUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ampGASH",
+ "denom": "ibc/B52F9774CA89A45FFB924CEE4D1E586013E33628A3784F3CCF10C8CE26A89E7F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ampgash.png",
+ "symbol": "ampGASH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B52F9774CA89A45FFB924CEE4D1E586013E33628A3784F3CCF10C8CE26A89E7F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampGASH",
+ "baseDenom": "ampGASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ampKUJI",
+ "denom": "ibc/34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/ampkuji.png",
+ "symbol": "ampKUJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampKUJI",
+ "baseDenom": "ampKUJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ampWHALE",
+ "denom": "ibc/168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ampwhale.svg",
+ "symbol": "ampWHALE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampWHALE",
+ "baseDenom": "ampWHALE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ANALOS",
+ "denom": "factory/inj1g8yvnh0lzxc06qe2n4qux5cqlz8h6gnpvaxzus/analos",
+ "logo": "unknown.png",
+ "symbol": "ANALOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1g8yvnh0lzxc06qe2n4qux5cqlz8h6gnpvaxzus/analos",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ANALOS",
+ "baseDenom": "ANALOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ANALOS (Wormhole)",
+ "denom": "inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5",
+ "logo": "unknown.png",
+ "symbol": "ANALOS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ANALOS",
+ "baseDenom": "ANALOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ANBU",
+ "denom": "factory/inj1aqnupu0z86nyttmpejmgu57vx22wmuz9fdg7ps/ANBU",
+ "logo": "unknown.png",
+ "symbol": "ANBU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1aqnupu0z86nyttmpejmgu57vx22wmuz9fdg7ps/ANBU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ANBU",
+ "baseDenom": "ANBU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ANDRE (Wormhole)",
+ "denom": "inj1qtqd73kkp9jdm7tzv3vrjn9038e6lsk929fel8",
+ "logo": "unknown.png",
+ "symbol": "ANDRE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qtqd73kkp9jdm7tzv3vrjn9038e6lsk929fel8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ANDRE",
+ "baseDenom": "ANDRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Andromeda",
+ "denom": "ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/andromeda/images/andromeda-logo.png",
+ "symbol": "ANDR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ANDR",
+ "baseDenom": "ANDR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Andy",
+ "denom": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/andy",
+ "logo": "unknown.png",
+ "symbol": "ANDY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/andy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ANDY",
+ "baseDenom": "ANDY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Animal Change Coin ",
+ "denom": "inj1fxmws9tyrfs7ewgkh0ktae3f5pqffd4uudygze",
+ "logo": "unknown.png",
+ "symbol": "ALCHECN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fxmws9tyrfs7ewgkh0ktae3f5pqffd4uudygze",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ALCHECN",
+ "baseDenom": "ALCHECN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "anime coin",
+ "denom": "inj1mas82tve60sh3tkh879chgjkeaggxpeydwkl2n",
+ "logo": "unknown.png",
+ "symbol": "ANIME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mas82tve60sh3tkh879chgjkeaggxpeydwkl2n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ANIME",
+ "baseDenom": "ANIME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Any Inu (Wormhole)",
+ "denom": "inj1sw0zn2vfy6wnfg0rht7r80tq3jq4ukjafjud7x",
+ "logo": "unknown.png",
+ "symbol": "AI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sw0zn2vfy6wnfg0rht7r80tq3jq4ukjafjud7x",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "AI",
+ "baseDenom": "AI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AOCStarWarsCoin",
+ "denom": "factory/inj10emnhmzncp27szh758nc7tvl3ph9wfxgej5u5v/ASWC",
+ "logo": "unknown.png",
+ "symbol": "ASWC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10emnhmzncp27szh758nc7tvl3ph9wfxgej5u5v/ASWC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASWC",
+ "baseDenom": "ASWC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ape",
+ "denom": "factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/ape",
+ "logo": "unknown.png",
+ "symbol": "ape",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/ape",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ape",
+ "baseDenom": "ape",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "APE",
+ "denom": "peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/ape.png",
+ "symbol": "APE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "APE",
+ "baseDenom": "APE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "APE",
+ "denom": "factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE",
+ "logo": "unknown.png",
+ "symbol": "APE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "APE",
+ "baseDenom": "APE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Apecoin",
+ "denom": "inj150382m6ah6lg3znprdrsggx38xl47fs4rmzy3m",
+ "logo": "unknown.png",
+ "symbol": "APC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj150382m6ah6lg3znprdrsggx38xl47fs4rmzy3m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "APC",
+ "baseDenom": "APC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ApeCoin",
+ "denom": "ibc/8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/ape.svg",
+ "symbol": "APE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "APE",
+ "baseDenom": "APE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "APEINJToken",
+ "denom": "factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj",
+ "logo": "unknown.png",
+ "symbol": "APEINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "APEINJ",
+ "baseDenom": "APEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ApePixelToken",
+ "denom": "inj13j4ymx9kz3cdasg0e00tsc8ruq03j6q8fftcll",
+ "logo": "unknown.png",
+ "symbol": "bapc",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13j4ymx9kz3cdasg0e00tsc8ruq03j6q8fftcll",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "bapc",
+ "baseDenom": "bapc",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Apollo DAO",
+ "denom": "ibc/1D10FF873E3C5EC7263A7658CB116F9535EC0794185A8153F2DD662E0FA08CE5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/apollo.svg",
+ "symbol": "APOLLO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "1D10FF873E3C5EC7263A7658CB116F9535EC0794185A8153F2DD662E0FA08CE5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "APOLLO",
+ "baseDenom": "APOLLO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Apots Doge (Wormhole)",
+ "denom": "inj1dgnrks2s53jd5a0qsuhyvryhk4s03f5mxv9khy",
+ "logo": "unknown.png",
+ "symbol": "DOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dgnrks2s53jd5a0qsuhyvryhk4s03f5mxv9khy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGE",
+ "baseDenom": "DOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Apple Network",
+ "denom": "inj16lxeq4xcdefptg39p9x78z5hkn0849z9z7xkyt",
+ "logo": "unknown.png",
+ "symbol": "ANK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16lxeq4xcdefptg39p9x78z5hkn0849z9z7xkyt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ANK",
+ "baseDenom": "ANK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "April Fool's Day",
+ "denom": "inj1m9vaf9rm6qfjtq4ymupefkxjtv7vake0z4fc35",
+ "logo": "unknown.png",
+ "symbol": "FOOL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m9vaf9rm6qfjtq4ymupefkxjtv7vake0z4fc35",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOOL",
+ "baseDenom": "FOOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Apsocoin (Wormhole)",
+ "denom": "inj1sqsthjm8fpqc7seaa6lj08k7ja43jsd70rgy09",
+ "logo": "unknown.png",
+ "symbol": "APSO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sqsthjm8fpqc7seaa6lj08k7ja43jsd70rgy09",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "APSO",
+ "baseDenom": "APSO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "APTDAO (Wormhole)",
+ "denom": "inj1mrltq7kh35xjkdzvul9ky077khsa5qatc0ylxj",
+ "logo": "unknown.png",
+ "symbol": "APT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mrltq7kh35xjkdzvul9ky077khsa5qatc0ylxj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "APT",
+ "baseDenom": "APT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Aptos Coin (Wormhole)",
+ "denom": "ibc/D807D81AB6C2983C9DCC2E1268051C4195405A030E1999549C562BCB7E1251A5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/aptos/images/aptos.svg",
+ "symbol": "APT",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D807D81AB6C2983C9DCC2E1268051C4195405A030E1999549C562BCB7E1251A5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "APT",
+ "baseDenom": "APT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Arbitrum",
+ "denom": "ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/arbitrum/images/arb.png",
+ "symbol": "ARB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ARB",
+ "baseDenom": "ARB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Arbitrum",
+ "denom": "ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1",
+ "logo": "unknown.png",
+ "symbol": "ARB",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ARB",
+ "baseDenom": "ARB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Arbitrum (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd",
+ "logo": "https://explorer.injective.network/vendor/@injectivelabs/token-metadata/arb.png",
+ "symbol": "ARB",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ARB",
+ "baseDenom": "ARB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "archer cw20",
+ "denom": "inj1ype9ps9ep2qukhuuyf4s2emr7qnexkcfa09p34",
+ "logo": "unknown.png",
+ "symbol": "ARCHER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ype9ps9ep2qukhuuyf4s2emr7qnexkcfa09p34",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ARCHER",
+ "baseDenom": "ARCHER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Archway",
+ "denom": "ibc/9C6E75FE14DF8959B7CC6E77398DF825B9815C753BB49D2860E303EA2FD803DD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/archway/images/archway.png",
+ "symbol": "ARCH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9C6E75FE14DF8959B7CC6E77398DF825B9815C753BB49D2860E303EA2FD803DD",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ARCH",
+ "baseDenom": "ARCH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "arizo",
+ "denom": "inj1mdgw6dnw7hda2lancr0zgy6retrd2s5m253qud",
+ "logo": "unknown.png",
+ "symbol": "ARIZO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mdgw6dnw7hda2lancr0zgy6retrd2s5m253qud",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ARIZO",
+ "baseDenom": "ARIZO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ArkiTech",
+ "denom": "inj1zhnaq7aunhzp0q6g5nrac9dxe5dg0ws0sqzftv",
+ "logo": "unknown.png",
+ "symbol": "ARKI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zhnaq7aunhzp0q6g5nrac9dxe5dg0ws0sqzftv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ARKI",
+ "baseDenom": "ARKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ARMANI",
+ "denom": "ibc/0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/armani.png",
+ "symbol": "ARMANI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ARMANI",
+ "baseDenom": "ARMANI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Artemis Finance (Wormhole)",
+ "denom": "inj1yt49wv3up03hnlsfd7yh6dqfdxwxayrk6as6al",
+ "logo": "unknown.png",
+ "symbol": "ARTEMIS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yt49wv3up03hnlsfd7yh6dqfdxwxayrk6as6al",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ARTEMIS",
+ "baseDenom": "ARTEMIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Artificial Superintelligence",
+ "denom": "inj1wgd5c8l27w8sac4tdfcxl2zyu5cfurtuxdvfx9",
+ "logo": "unknown.png",
+ "symbol": "ASI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wgd5c8l27w8sac4tdfcxl2zyu5cfurtuxdvfx9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASI",
+ "baseDenom": "ASI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ARVIBU",
+ "denom": "inj16ff6zvsaay89w7e5ukvz83f6f9my98s20z5ea3",
+ "logo": "unknown.png",
+ "symbol": "ARVI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ff6zvsaay89w7e5ukvz83f6f9my98s20z5ea3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ARVI",
+ "baseDenom": "ARVI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ARYANMAN",
+ "denom": "inj16z7ja300985vuvkt975zyvtccu80xmzcfr4upt",
+ "logo": "unknown.png",
+ "symbol": "ARYAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16z7ja300985vuvkt975zyvtccu80xmzcfr4upt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ARYAN",
+ "baseDenom": "ARYAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "asd",
+ "denom": "asd",
+ "logo": "unknown.png",
+ "symbol": "asd",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "asd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "asd",
+ "baseDenom": "asd",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ASG",
+ "denom": "ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021",
+ "logo": "unknown.png",
+ "symbol": "ASG",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASG",
+ "baseDenom": "ASG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ASH",
+ "denom": "factory/inj1uecmky6hkcexz86hqgrl5p5krg8kl4gfldjkrp/ASH",
+ "logo": "unknown.png",
+ "symbol": "ASH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uecmky6hkcexz86hqgrl5p5krg8kl4gfldjkrp/ASH",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASH",
+ "baseDenom": "ASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ASH",
+ "denom": "ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ash.svg",
+ "symbol": "ASH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASH",
+ "baseDenom": "ASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ASS",
+ "denom": "inj1fj7z77awl6srtmcuux3xgq995uempgx5hethh3",
+ "logo": "unknown.png",
+ "symbol": "ASS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fj7z77awl6srtmcuux3xgq995uempgx5hethh3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASS",
+ "baseDenom": "ASS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astar",
+ "denom": "inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x",
+ "logo": "unknown.png",
+ "symbol": "ASTR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASTR",
+ "baseDenom": "ASTR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astar",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x",
+ "logo": "unknown.png",
+ "symbol": "ASTR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASTR",
+ "baseDenom": "ASTR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ASTRO",
+ "denom": "ibc/063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/astro.png",
+ "symbol": "ASTRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASTRO",
+ "baseDenom": "ASTRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroBOT",
+ "denom": "inj153k5xjpqx39jm06gcxvjq5sxl8f7j79n72q9pz",
+ "logo": "unknown.png",
+ "symbol": "ASTROBOT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj153k5xjpqx39jm06gcxvjq5sxl8f7j79n72q9pz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASTROBOT",
+ "baseDenom": "ASTROBOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astro Gems (Wormhole)",
+ "denom": "inj1eqzdmkdr2l72y75m7hx3rwnfcugzu0hhw7l76l",
+ "logo": "unknown.png",
+ "symbol": "ASTROGEMS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eqzdmkdr2l72y75m7hx3rwnfcugzu0hhw7l76l",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROGEMS",
+ "baseDenom": "ASTROGEMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroGems (Wormhole)",
+ "denom": "inj122y9wxxmpyu2rj5ju30uwgdvk9sj020z2zt7rv",
+ "logo": "unknown.png",
+ "symbol": "ASTRO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj122y9wxxmpyu2rj5ju30uwgdvk9sj020z2zt7rv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTRO",
+ "baseDenom": "ASTRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroGems (Wormhole)",
+ "denom": "inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9",
+ "logo": "unknown.png",
+ "symbol": "ASTROGEMS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROGEMS",
+ "baseDenom": "ASTROGEMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astro-Injective (Wormhole)",
+ "denom": "inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn",
+ "logo": "unknown.png",
+ "symbol": "ASTROINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROINJ",
+ "baseDenom": "ASTROINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroLand (Wormhole)",
+ "denom": "inj16q7u3mzp3qmm6vf5a9jfzp46rs2dj68cuktzyw",
+ "logo": "unknown.png",
+ "symbol": "ASTROLAND",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16q7u3mzp3qmm6vf5a9jfzp46rs2dj68cuktzyw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROLAND",
+ "baseDenom": "ASTROLAND",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astrology Universe (Wormhole)",
+ "denom": "inj1u9th8dxhyrkz3tr2h5s6z2yap2s6e6955jk4yf",
+ "logo": "unknown.png",
+ "symbol": "ASTROLOGY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u9th8dxhyrkz3tr2h5s6z2yap2s6e6955jk4yf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROLOGY",
+ "baseDenom": "ASTROLOGY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astro-Pad (Wormhole)",
+ "denom": "inj1tvcarn0xz9p9rxrgev5a2qjmrtqtnl4xtu5vsu",
+ "logo": "unknown.png",
+ "symbol": "ASTROPAD",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tvcarn0xz9p9rxrgev5a2qjmrtqtnl4xtu5vsu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROPAD",
+ "baseDenom": "ASTROPAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroPepe",
+ "denom": "ibc/03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/astropepe.png",
+ "symbol": "ASTROPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASTROPEPE",
+ "baseDenom": "ASTROPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astrophile",
+ "denom": "inj1y07h8hugnqnqvrpj9kmjpsva7pj4yjwjjkd0u4",
+ "logo": "unknown.png",
+ "symbol": "ASTRO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y07h8hugnqnqvrpj9kmjpsva7pj4yjwjjkd0u4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASTRO",
+ "baseDenom": "ASTRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Astroport",
+ "denom": "ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/astro.png",
+ "symbol": "ASTRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ASTRO",
+ "baseDenom": "ASTRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroSolana (Wormhole)",
+ "denom": "inj12vy3zzany7gtl9l9hdkzgvvr597r2ta48tvylj",
+ "logo": "unknown.png",
+ "symbol": "ASTROSOL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12vy3zzany7gtl9l9hdkzgvvr597r2ta48tvylj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROSOL",
+ "baseDenom": "ASTROSOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AstroXmas (Wormhole)",
+ "denom": "inj19q50d6sgc3sv2hcvlfalc5kf2fc576v4nga849",
+ "logo": "unknown.png",
+ "symbol": "ASTROXMAS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19q50d6sgc3sv2hcvlfalc5kf2fc576v4nga849",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ASTROXMAS",
+ "baseDenom": "ASTROXMAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Asuka",
+ "denom": "inj1c64fwq7xexhh58spf2eer85yz3uvv3y659j5dd",
+ "logo": "unknown.png",
+ "symbol": "ASUKA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c64fwq7xexhh58spf2eer85yz3uvv3y659j5dd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ASUKA",
+ "baseDenom": "ASUKA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM",
+ "denom": "ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
+ "symbol": "ATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ATOM",
+ "baseDenom": "ATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM",
+ "denom": "ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
+ "symbol": "ATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ATOM",
+ "baseDenom": "ATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM",
+ "denom": "inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02",
+ "logo": "unknown.png",
+ "symbol": "ATOM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ATOM",
+ "baseDenom": "ATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM1KLFG",
+ "denom": "ibc/2061C894621F0F53F6FEAE9ABD3841F66D27F0D7368CC67864508BDE6D8C4522",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ATOM1KLFGc.png",
+ "symbol": "ATOM1KLFG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2061C894621F0F53F6FEAE9ABD3841F66D27F0D7368CC67864508BDE6D8C4522",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ATOM1KLFG",
+ "baseDenom": "ATOM1KLFG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AtomEconomicZone69JaeKwonInu",
+ "denom": "ibc/AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/circus.png",
+ "symbol": "CIRCUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CIRCUS",
+ "baseDenom": "CIRCUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM-LUNA LP Token URA",
+ "denom": "ibc/0ED853D2B77215F953F65364EF1CA7D8A2BD7B7E3009196BBA18E884FE3D3576",
+ "logo": "unknown.png",
+ "symbol": "ATOM-LUNA-LP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0ED853D2B77215F953F65364EF1CA7D8A2BD7B7E3009196BBA18E884FE3D3576",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ATOM-LUNA-LP",
+ "baseDenom": "ATOM-LUNA-LP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ATOM Squared",
+ "denom": "ibc/C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqatom.svg",
+ "symbol": "sqATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sqATOM",
+ "baseDenom": "sqATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AUTISM",
+ "denom": "factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/autism.png",
+ "symbol": "AUTISM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AUTISM",
+ "baseDenom": "AUTISM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AUUU",
+ "denom": "ibc/4CEF2F778CDA8306B6DE18A3A4C4450BEBC84F27FC49F91F3617A37203FE84B2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/pryzm/images/AUUU.png",
+ "symbol": "AUUU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4CEF2F778CDA8306B6DE18A3A4C4450BEBC84F27FC49F91F3617A37203FE84B2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AUUU",
+ "baseDenom": "AUUU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Avalanche USD Coin (Wormhole)",
+ "denom": "ibc/348633370BE07A623D7FC9CD229150936ADCD3A4E842DAD246BBA817D21FF6C7",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdc.svg",
+ "symbol": "avalanche.USDC.wh",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "348633370BE07A623D7FC9CD229150936ADCD3A4E842DAD246BBA817D21FF6C7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "avalanche.USDC.wh",
+ "baseDenom": "avalanche.USDC.wh",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Axelar",
+ "denom": "ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png",
+ "symbol": "AXL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AXL",
+ "baseDenom": "AXL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Axie Infinity Shard",
+ "denom": "ibc/EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/axs.svg",
+ "symbol": "AXS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AXS",
+ "baseDenom": "AXS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "axlWBTC",
+ "denom": "ibc/F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54",
+ "logo": "unknown.png",
+ "symbol": "axlWBTC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "axlWBTC",
+ "baseDenom": "axlWBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "AXS",
+ "denom": "peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b",
+ "logo": "unknown.png",
+ "symbol": "AXS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "AXS",
+ "baseDenom": "AXS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Azuki Coin (Wormhole)",
+ "denom": "inj1l5qrquc6kun08asp6dt50zgcxes9ntazyvs9eu",
+ "logo": "unknown.png",
+ "symbol": "AZUKI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l5qrquc6kun08asp6dt50zgcxes9ntazyvs9eu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "AZUKI",
+ "baseDenom": "AZUKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Babayroll",
+ "denom": "inj16rvlt87pmpntkyv3x4zfvgmyxt8ejj9mpcc72m",
+ "logo": "unknown.png",
+ "symbol": "BABYROLL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16rvlt87pmpntkyv3x4zfvgmyxt8ejj9mpcc72m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BABYROLL",
+ "baseDenom": "BABYROLL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABY",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BABY",
+ "logo": "unknown.png",
+ "symbol": "BABY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BABY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABY",
+ "baseDenom": "BABY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABY",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG",
+ "logo": "unknown.png",
+ "symbol": "BABY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABY",
+ "baseDenom": "BABY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyBENANCE",
+ "denom": "inj1rfv2lhr0qshztmk86f05vdmx2sft9zs6cc2ltj",
+ "logo": "unknown.png",
+ "symbol": "babyBENANCE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rfv2lhr0qshztmk86f05vdmx2sft9zs6cc2ltj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyBENANCE",
+ "baseDenom": "babyBENANCE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BabyBonk",
+ "denom": "inj1kaad0grcw49zql08j4xhxrh8m503qu58wspgdn",
+ "logo": "unknown.png",
+ "symbol": "BabyBonk",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kaad0grcw49zql08j4xhxrh8m503qu58wspgdn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BabyBonk",
+ "baseDenom": "BabyBonk",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABY BOZO",
+ "denom": "inj1mf5dj5jscuw3z0eykkfccy2rfz7tvugvw2rkly",
+ "logo": "unknown.png",
+ "symbol": "BOZO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mf5dj5jscuw3z0eykkfccy2rfz7tvugvw2rkly",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BOZO",
+ "baseDenom": "BOZO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyCLON",
+ "denom": "inj1pyghkw9q0kx8mnuhcxpqnczfxst0way2ep9s54",
+ "logo": "unknown.png",
+ "symbol": "babyCLON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pyghkw9q0kx8mnuhcxpqnczfxst0way2ep9s54",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyCLON",
+ "baseDenom": "babyCLON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyCOKE",
+ "denom": "inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5",
+ "logo": "unknown.png",
+ "symbol": "babyCOKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyCOKE",
+ "baseDenom": "babyCOKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Corgi",
+ "denom": "ibc/9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/babycorgi.png",
+ "symbol": "CORGI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CORGI",
+ "baseDenom": "CORGI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYDEK",
+ "denom": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/BABYDEK",
+ "logo": "unknown.png",
+ "symbol": "BABYDEK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/BABYDEK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYDEK",
+ "baseDenom": "BABYDEK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BabyDoge",
+ "denom": "inj1nk2x5ll6guwt84aagnw82e7ajmlwde6w2zmpdw",
+ "logo": "unknown.png",
+ "symbol": "BABYDOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nk2x5ll6guwt84aagnw82e7ajmlwde6w2zmpdw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYDOGE",
+ "baseDenom": "BABYDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyDOGINJBREAD",
+ "denom": "inj1tquat4mh95g33q5rhg5c72yh6j6x5w3p6ynuqg",
+ "logo": "unknown.png",
+ "symbol": "babyDIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tquat4mh95g33q5rhg5c72yh6j6x5w3p6ynuqg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyDIB",
+ "baseDenom": "babyDIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Dog Wif Nunchucks (Wormhole)",
+ "denom": "inj1nddcunwpg4cwyl725lvkh9an3s5cradaajuwup",
+ "logo": "unknown.png",
+ "symbol": "BABYNINJA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nddcunwpg4cwyl725lvkh9an3s5cradaajuwup",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BABYNINJA",
+ "baseDenom": "BABYNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyDOJO",
+ "denom": "inj10ny97fhd827s3u4slfwehu7m5swnpnmwzxsc40",
+ "logo": "unknown.png",
+ "symbol": "babyDOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10ny97fhd827s3u4slfwehu7m5swnpnmwzxsc40",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyDOJO",
+ "baseDenom": "babyDOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby DOJO Token",
+ "denom": "inj19dtllzcquads0hu3ykda9m58llupksqwekkfnw",
+ "logo": "unknown.png",
+ "symbol": "babyDOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19dtllzcquads0hu3ykda9m58llupksqwekkfnw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyDOJO",
+ "baseDenom": "babyDOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyDRAGON",
+ "denom": "inj1lfemyjlce83a7wre4k5kzd8zyytqavran5ckkv",
+ "logo": "unknown.png",
+ "symbol": "babyDRAGON",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lfemyjlce83a7wre4k5kzd8zyytqavran5ckkv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyDRAGON",
+ "baseDenom": "babyDRAGON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyGINGER",
+ "denom": "inj1y4dk7ey2vrd4sqems8hnzh2ays8swealvfzdmg",
+ "logo": "unknown.png",
+ "symbol": "babyGINGER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y4dk7ey2vrd4sqems8hnzh2ays8swealvfzdmg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyGINGER",
+ "baseDenom": "babyGINGER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABY GINGER",
+ "denom": "factory/inj15zruc9fw2qw9sc3pvlup5qmmqsk5pcmck7ylhw/BABYGINGER",
+ "logo": "unknown.png",
+ "symbol": "BABY GINGER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15zruc9fw2qw9sc3pvlup5qmmqsk5pcmck7ylhw/BABYGINGER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABY GINGER",
+ "baseDenom": "BABY GINGER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYGINGER",
+ "denom": "inj17uyp6dz3uyq40ckkzlgrze2k25zhgvdqa3yh0v",
+ "logo": "unknown.png",
+ "symbol": "BABYGINGER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17uyp6dz3uyq40ckkzlgrze2k25zhgvdqa3yh0v",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYGINGER",
+ "baseDenom": "BABYGINGER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYHACHI",
+ "denom": "factory/inj1hjfm3z53dj4ct5nxef5ghn8hul0y53u7ytv8st/babyhachi",
+ "logo": "unknown.png",
+ "symbol": "BABYHACHI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hjfm3z53dj4ct5nxef5ghn8hul0y53u7ytv8st/babyhachi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYHACHI",
+ "baseDenom": "BABYHACHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "baby INJ",
+ "denom": "inj1j0l9t4n748k2zy8zm7yfwjlpkf069d2jslfh3d",
+ "logo": "unknown.png",
+ "symbol": "BABYINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j0l9t4n748k2zy8zm7yfwjlpkf069d2jslfh3d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BABYINJ",
+ "baseDenom": "BABYINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BabyInjective (Wormhole)",
+ "denom": "inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap",
+ "logo": "unknown.png",
+ "symbol": "BABYINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BABYINJ",
+ "baseDenom": "BABYINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BabyInjective (Wormhole)",
+ "denom": "inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76",
+ "logo": "unknown.png",
+ "symbol": "BABYINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BABYINJ",
+ "baseDenom": "BABYINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyINJUSSY",
+ "denom": "inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0",
+ "logo": "unknown.png",
+ "symbol": "babyINJUSSY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyINJUSSY",
+ "baseDenom": "babyINJUSSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYIPEPE",
+ "denom": "factory/inj14u2wghxjswct5uznt40kre5ct7a477m2ma5hsm/babyipepe",
+ "logo": "unknown.png",
+ "symbol": "BABYIPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14u2wghxjswct5uznt40kre5ct7a477m2ma5hsm/babyipepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYIPEPE",
+ "baseDenom": "BABYIPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyJUNIORES",
+ "denom": "inj1m4k5fcjz86dyz25pgagj50jcydh9llvpw8lxyj",
+ "logo": "unknown.png",
+ "symbol": "babyJUNIORES",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m4k5fcjz86dyz25pgagj50jcydh9llvpw8lxyj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyJUNIORES",
+ "baseDenom": "babyJUNIORES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Babyjuno",
+ "denom": "inj1jlugmrq0h5l5ndndcq0gyav3flwmulsmdsfh58",
+ "logo": "unknown.png",
+ "symbol": "BJNO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jlugmrq0h5l5ndndcq0gyav3flwmulsmdsfh58",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BJNO",
+ "baseDenom": "BJNO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyKAGE",
+ "denom": "inj12gh464eqc4su4qd3frxxlyjymf0nhzgzm9a203",
+ "logo": "unknown.png",
+ "symbol": "babyKAGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12gh464eqc4su4qd3frxxlyjymf0nhzgzm9a203",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyKAGE",
+ "baseDenom": "babyKAGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Babykira",
+ "denom": "factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA",
+ "logo": "unknown.png",
+ "symbol": "$Babykira",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "$Babykira",
+ "baseDenom": "$Babykira",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYKIRA",
+ "denom": "factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/BABYKIRA",
+ "logo": "unknown.png",
+ "symbol": "BABYKIRA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/BABYKIRA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYKIRA",
+ "baseDenom": "BABYKIRA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYKISHU",
+ "denom": "factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babykishu",
+ "logo": "unknown.png",
+ "symbol": "BABYKISHU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babykishu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYKISHU",
+ "baseDenom": "BABYKISHU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BabyMiloSillyCoqWifAnalos",
+ "denom": "factory/inj1v888gdj5k9pykjca7kp7jdy6cdalfj667yws54/BabyMiloSillyCoqWifAnalos",
+ "logo": "unknown.png",
+ "symbol": "BMSCWA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1v888gdj5k9pykjca7kp7jdy6cdalfj667yws54/BabyMiloSillyCoqWifAnalos",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BMSCWA",
+ "baseDenom": "BMSCWA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyMONKS",
+ "denom": "inj17udts7hdggcurc8892tmd7y56w5dkxsgv2v6eu",
+ "logo": "unknown.png",
+ "symbol": "babyMONKS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17udts7hdggcurc8892tmd7y56w5dkxsgv2v6eu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyMONKS",
+ "baseDenom": "babyMONKS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyNinja",
+ "denom": "inj1n8883sfdp3cufstk05sd8dkp7pcdxr3m2fp24m",
+ "logo": "unknown.png",
+ "symbol": "babyNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n8883sfdp3cufstk05sd8dkp7pcdxr3m2fp24m",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyNINJA",
+ "baseDenom": "babyNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Ninja",
+ "denom": "factory/inj1hs5chngjfhjwc4fsajyr50qfu8tjqsqrj9rf29/baby-ninja",
+ "logo": "unknown.png",
+ "symbol": "BABY NINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hs5chngjfhjwc4fsajyr50qfu8tjqsqrj9rf29/baby-ninja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABY NINJA",
+ "baseDenom": "BABY NINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Ninja",
+ "denom": "factory/inj1h3y27yhly6a87d95937jztc3tupl3nt8fg3lcp/BABYNINJA",
+ "logo": "unknown.png",
+ "symbol": "BABYNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h3y27yhly6a87d95937jztc3tupl3nt8fg3lcp/BABYNINJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYNINJA",
+ "baseDenom": "BABYNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Ninja",
+ "denom": "inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh",
+ "logo": "unknown.png",
+ "symbol": "BABYNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYNINJA",
+ "baseDenom": "BABYNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYNINJA",
+ "denom": "inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p",
+ "logo": "unknown.png",
+ "symbol": "BABYNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYNINJA",
+ "baseDenom": "BABYNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYNINJA",
+ "denom": "factory/inj12lv4gm863c4pj0utr7zgzp46d6p86krp8stqgp/BABYNINJA",
+ "logo": "unknown.png",
+ "symbol": "BABYNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12lv4gm863c4pj0utr7zgzp46d6p86krp8stqgp/BABYNINJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYNINJA",
+ "baseDenom": "BABYNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyNONJA",
+ "denom": "inj15hxdpukklz4c4f3l20rl50h9wqa7rams74gyah",
+ "logo": "unknown.png",
+ "symbol": "babyNONJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15hxdpukklz4c4f3l20rl50h9wqa7rams74gyah",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyNONJA",
+ "baseDenom": "babyNONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Nonja",
+ "denom": "inj1pchqd64c7uzsgujux6n87djwpf363x8a6jfsay",
+ "logo": "unknown.png",
+ "symbol": "babyNONJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pchqd64c7uzsgujux6n87djwpf363x8a6jfsay",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyNONJA",
+ "baseDenom": "babyNONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyPANDA",
+ "denom": "inj1lpu8rcw04zenfwkxdld2dm2pd70g7yv6hz7dnf",
+ "logo": "unknown.png",
+ "symbol": "babyPANDA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lpu8rcw04zenfwkxdld2dm2pd70g7yv6hz7dnf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyPANDA",
+ "baseDenom": "babyPANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYPANDA",
+ "denom": "factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda",
+ "logo": "unknown.png",
+ "symbol": "BABYPANDA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYPANDA",
+ "baseDenom": "BABYPANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYPANDA",
+ "denom": "factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babypanda",
+ "logo": "unknown.png",
+ "symbol": "BABYPANDA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babypanda",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYPANDA",
+ "baseDenom": "BABYPANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABY PEPE",
+ "denom": "factory/inj1un9z8767u2r8snaqqcysnm9skxf36dspqx86sy/babypepe",
+ "logo": "unknown.png",
+ "symbol": "BABYPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1un9z8767u2r8snaqqcysnm9skxf36dspqx86sy/babypepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYPEPE",
+ "baseDenom": "BABYPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyPING",
+ "denom": "inj17fa3gt6lvwj4kguyulkqrc0lcmxcgcqr7xddr0",
+ "logo": "unknown.png",
+ "symbol": "babyPING",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17fa3gt6lvwj4kguyulkqrc0lcmxcgcqr7xddr0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyPING",
+ "baseDenom": "babyPING",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BABYQUNT",
+ "denom": "factory/inj1xdm6zdjcwu4vy32yp2g2dazwg2ug50w2k7sy9p/BABYQUNT",
+ "logo": "unknown.png",
+ "symbol": "BABYQUNT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xdm6zdjcwu4vy32yp2g2dazwg2ug50w2k7sy9p/BABYQUNT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYQUNT",
+ "baseDenom": "BABYQUNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Babyroll",
+ "denom": "inj1qd60tuupdtq2ypts6jleq60kw53d06f3gc76j5",
+ "logo": "unknown.png",
+ "symbol": "BABYROLL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qd60tuupdtq2ypts6jleq60kw53d06f3gc76j5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BABYROLL",
+ "baseDenom": "BABYROLL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Samurai",
+ "denom": "inj1arnd0xnxzg4qgxn4kupnzsra2a0rzrspwpwmrs",
+ "logo": "unknown.png",
+ "symbol": "babySAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1arnd0xnxzg4qgxn4kupnzsra2a0rzrspwpwmrs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySAMURAI",
+ "baseDenom": "babySAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyshroomin",
+ "denom": "inj1qgcfkznvtw96h950wraae20em9zmhtcm0rws68",
+ "logo": "unknown.png",
+ "symbol": "babySHROOM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qgcfkznvtw96h950wraae20em9zmhtcm0rws68",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babySHROOM",
+ "baseDenom": "babySHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "babyshroon",
+ "denom": "inj1cmw4kwqkhwzx6ha7d5e0fu9zj7aknn4mxqqtf0",
+ "logo": "unknown.png",
+ "symbol": "babySHEROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cmw4kwqkhwzx6ha7d5e0fu9zj7aknn4mxqqtf0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySHEROOM",
+ "baseDenom": "babySHEROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Spuun",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/babyspuun",
+ "logo": "unknown.png",
+ "symbol": "babySPUUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/babyspuun",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySPUUN",
+ "baseDenom": "babySPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Yakuza",
+ "denom": "inj16wa97auct633ft6cjzr22xv2pxvym3k38rzskc",
+ "logo": "unknown.png",
+ "symbol": "babyYKZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16wa97auct633ft6cjzr22xv2pxvym3k38rzskc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "babyYKZ",
+ "baseDenom": "babyYKZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Yakuza",
+ "denom": "inj1rep4p2x86avty00qvgcu4vfhywmsznf42jdpzs",
+ "logo": "unknown.png",
+ "symbol": "babyYAKUZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rep4p2x86avty00qvgcu4vfhywmsznf42jdpzs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyYAKUZA",
+ "baseDenom": "babyYAKUZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baby Yoda",
+ "denom": "factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/babyYODA",
+ "logo": "unknown.png",
+ "symbol": "babyYODA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/babyYODA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyYODA",
+ "baseDenom": "babyYODA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BackBone Labs Liquid Staked KUJI",
+ "denom": "ibc/5C48695BF3A6BCC5DD147CC1A2D09DC1A30683FE369BF472704A52CF9D59B42D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bKUJI.png",
+ "symbol": "bKUJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5C48695BF3A6BCC5DD147CC1A2D09DC1A30683FE369BF472704A52CF9D59B42D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bKUJI",
+ "baseDenom": "bKUJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BackBone Labs Liquid Staked OSMO",
+ "denom": "ibc/C949BEFD9026997A65D0125340B096AA809941B3BB13D6C2D1E8E4A17F2130C4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/bOSMO.png",
+ "symbol": "bOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C949BEFD9026997A65D0125340B096AA809941B3BB13D6C2D1E8E4A17F2130C4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bOSMO",
+ "baseDenom": "bOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Badcoin",
+ "denom": "ibc/C04478BE3CAA4A14EAF4A47967945E92ED2C39E02146E1577991FC5243E974BB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/bad.png",
+ "symbol": "BAD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C04478BE3CAA4A14EAF4A47967945E92ED2C39E02146E1577991FC5243E974BB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAD",
+ "baseDenom": "BAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BADKID",
+ "denom": "ibc/A0C5AD197FECAF6636F589071338DC7ECD6B0809CD3A5AB131EAAA5395E7E5E8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/badkid.png",
+ "symbol": "BADKID",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A0C5AD197FECAF6636F589071338DC7ECD6B0809CD3A5AB131EAAA5395E7E5E8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BADKID",
+ "baseDenom": "BADKID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAG",
+ "denom": "inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp",
+ "logo": "unknown.png",
+ "symbol": "BAG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BAG",
+ "baseDenom": "BAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baguette",
+ "denom": "inj13dcqczqyynw08m0tds50e0z2dsynf48g4uafac",
+ "logo": "unknown.png",
+ "symbol": "BAG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13dcqczqyynw08m0tds50e0z2dsynf48g4uafac",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BAG",
+ "baseDenom": "BAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baguette",
+ "denom": "inj15a3yppu5h3zktk2hkq8f3ywhfpqqrwft8awyq0",
+ "logo": "unknown.png",
+ "symbol": "BAG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15a3yppu5h3zktk2hkq8f3ywhfpqqrwft8awyq0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BAG",
+ "baseDenom": "BAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Baguette",
+ "denom": "inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66",
+ "logo": "unknown.png",
+ "symbol": "BAG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAG",
+ "baseDenom": "BAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAJE",
+ "denom": "factory/inj10yymeqd0hydqmaq0gn6k6s8795svjq7gt5tmsf/BAJE",
+ "logo": "unknown.png",
+ "symbol": "BAJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10yymeqd0hydqmaq0gn6k6s8795svjq7gt5tmsf/BAJE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAJE",
+ "baseDenom": "BAJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BALLOON",
+ "denom": "inj17p4x63h8gpfd7f6whmmcah6vq6wzzmejvkpqms",
+ "logo": "unknown.png",
+ "symbol": "BALLOON",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17p4x63h8gpfd7f6whmmcah6vq6wzzmejvkpqms",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BALLOON",
+ "baseDenom": "BALLOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bamboo",
+ "denom": "factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/boo",
+ "logo": "unknown.png",
+ "symbol": "BAMBOO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/boo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAMBOO",
+ "baseDenom": "BAMBOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bamboo Taira (竹)",
+ "denom": "factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo",
+ "logo": "unknown.png",
+ "symbol": "BAMBOO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAMBOO",
+ "baseDenom": "BAMBOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAPE",
+ "denom": "factory/inj16mnhqpzuj4s4ermuh76uffaq3r6rf8dw5v9rm3/BAPE",
+ "logo": "unknown.png",
+ "symbol": "BAPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16mnhqpzuj4s4ermuh76uffaq3r6rf8dw5v9rm3/BAPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAPE",
+ "baseDenom": "BAPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAR",
+ "denom": "inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf",
+ "logo": "unknown.png",
+ "symbol": "BAR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BAR",
+ "baseDenom": "BAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BASE",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BASE",
+ "logo": "unknown.png",
+ "symbol": "BASE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BASE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BASE",
+ "baseDenom": "BASE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Basket",
+ "denom": "ibc/2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/solana/images/bskt.png",
+ "symbol": "BSKT",
+ "decimals": 5,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D",
+ "path": "",
+ "channelId": "",
+ "decimals": 5,
+ "symbol": "BSKT",
+ "baseDenom": "BSKT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BASTARD",
+ "denom": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/BASTARD",
+ "logo": "unknown.png",
+ "symbol": "BASTARD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/BASTARD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BASTARD",
+ "baseDenom": "BASTARD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAT",
+ "denom": "factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT",
+ "logo": "unknown.png",
+ "symbol": "BAT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BAT",
+ "baseDenom": "BAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Batman",
+ "denom": "inj158jjagrr499yfc6t5kd9c989tx6f7ukrulj280",
+ "logo": "unknown.png",
+ "symbol": "BATMAN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj158jjagrr499yfc6t5kd9c989tx6f7ukrulj280",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BATMAN",
+ "baseDenom": "BATMAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bayer 04 Leverkusen",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/LEVERKUSEN",
+ "logo": "unknown.png",
+ "symbol": "LEVERKUSEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/LEVERKUSEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LEVERKUSEN",
+ "baseDenom": "LEVERKUSEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BAYMAX",
+ "denom": "inj12u37kzv3ax6ccja5felud8rtcp68gl69hjun4v",
+ "logo": "unknown.png",
+ "symbol": "BMX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12u37kzv3ax6ccja5felud8rtcp68gl69hjun4v",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BMX",
+ "baseDenom": "BMX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BCA",
+ "denom": "factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCA",
+ "logo": "unknown.png",
+ "symbol": "BCA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BCA",
+ "baseDenom": "BCA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bCRE",
+ "denom": "ibc/83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/bcre.png",
+ "symbol": "bCRE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bCRE",
+ "baseDenom": "bCRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BEANS (Wormhole)",
+ "denom": "inj1j7e95jmqaqgazje8kvuzp6kh2j2pr6n6ffvuq5",
+ "logo": "unknown.png",
+ "symbol": "BEANS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j7e95jmqaqgazje8kvuzp6kh2j2pr6n6ffvuq5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BEANS",
+ "baseDenom": "BEANS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BEAR",
+ "denom": "factory/inj1jhwwydrfxe33r7ayy7nnrvped84njx97mma56r/BEAR",
+ "logo": "unknown.png",
+ "symbol": "BEAR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jhwwydrfxe33r7ayy7nnrvped84njx97mma56r/BEAR",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BEAR",
+ "baseDenom": "BEAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bear killer Gorilla ",
+ "denom": "factory/inj1wc7a5e50hq9nglgwhc6vs7cnskzedskj2xqv6j/Gorilla",
+ "logo": "unknown.png",
+ "symbol": "Gorilla",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wc7a5e50hq9nglgwhc6vs7cnskzedskj2xqv6j/Gorilla",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Gorilla",
+ "baseDenom": "Gorilla",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Beckham",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/beckham",
+ "logo": "unknown.png",
+ "symbol": "BECKHAM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/beckham",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BECKHAM",
+ "baseDenom": "BECKHAM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BeerWifHat",
+ "denom": "ibc/9A31315BECC84265BCF32A31E4EB75C3B59ADCF8CCAE3C6EF8D0DF1C4EF829EB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/bwh.png",
+ "symbol": "BWH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9A31315BECC84265BCF32A31E4EB75C3B59ADCF8CCAE3C6EF8D0DF1C4EF829EB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BWH",
+ "baseDenom": "BWH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bellboy",
+ "denom": "inj1ywvmwtpe253qhtrnvratjqmhy4aar4yl5an9dk",
+ "logo": "unknown.png",
+ "symbol": "bellboy",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ywvmwtpe253qhtrnvratjqmhy4aar4yl5an9dk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bellboy",
+ "baseDenom": "bellboy",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Benance",
+ "denom": "inj1gn8ss00s3htff0gv6flycgdqhc9xdsmvdpzktd",
+ "logo": "unknown.png",
+ "symbol": "BENANCE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gn8ss00s3htff0gv6flycgdqhc9xdsmvdpzktd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BENANCE",
+ "baseDenom": "BENANCE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Benance",
+ "denom": "inj1292223n3vfhrxndvlzsvrrlkkyt7jyeydf77h0",
+ "logo": "unknown.png",
+ "symbol": "BENANCE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1292223n3vfhrxndvlzsvrrlkkyt7jyeydf77h0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BENANCE",
+ "baseDenom": "BENANCE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "benjamin",
+ "denom": "inj1cr970pgvudvgfva60jtxnztgsu5ngm7e80e7vd",
+ "logo": "unknown.png",
+ "symbol": "BENJAMIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cr970pgvudvgfva60jtxnztgsu5ngm7e80e7vd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BENJAMIN",
+ "baseDenom": "BENJAMIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BERB Token",
+ "denom": "inj1rlyw9tl7e5u9haunh39mh87clvmww5p39dd9kv",
+ "logo": "unknown.png",
+ "symbol": "BERB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rlyw9tl7e5u9haunh39mh87clvmww5p39dd9kv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BERB",
+ "baseDenom": "BERB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "berlin",
+ "denom": "inj1atu2677agwrskzxj4a5dn8lq43nhmeyjz5tsfq",
+ "logo": "unknown.png",
+ "symbol": "BERLIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1atu2677agwrskzxj4a5dn8lq43nhmeyjz5tsfq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BERLIN",
+ "baseDenom": "BERLIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BERNESE",
+ "denom": "ibc/28E915262E40A4CA526D5BFB0BAF67A1C024F8318B779C3379147A6C26D11EA8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/bernese.png",
+ "symbol": "BERNESE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "28E915262E40A4CA526D5BFB0BAF67A1C024F8318B779C3379147A6C26D11EA8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BERNESE",
+ "baseDenom": "BERNESE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BIG CHUNGUS",
+ "denom": "factory/inj1khr6lahyjz0wgnwzuu4dk5wz24mjrudz6vgd0z/bigchungus",
+ "logo": "unknown.png",
+ "symbol": "CHUNGUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1khr6lahyjz0wgnwzuu4dk5wz24mjrudz6vgd0z/bigchungus",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHUNGUS",
+ "baseDenom": "CHUNGUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Binance Coin",
+ "denom": "ibc/AAED29A220506DF2EF39E43B2EE35717636502267FF6E0343B943D70E2DA59EB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/binancesmartchain/images/bnb.png",
+ "symbol": "BNB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AAED29A220506DF2EF39E43B2EE35717636502267FF6E0343B943D70E2DA59EB",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BNB",
+ "baseDenom": "BNB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Binance USD",
+ "denom": "ibc/A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/busd.png",
+ "symbol": "BUSD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BUSD",
+ "baseDenom": "BUSD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bINJ",
+ "denom": "factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/bINJ",
+ "logo": "unknown.png",
+ "symbol": "bINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/bINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bINJ",
+ "baseDenom": "bINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJ",
+ "denom": "factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj",
+ "logo": "unknown.png",
+ "symbol": "BINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJ",
+ "baseDenom": "BINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJANS",
+ "denom": "factory/inj1aj47a2vflavw92yyhn7rpa32f0dazf5cfj59v8/binjans",
+ "logo": "unknown.png",
+ "symbol": "BINJANS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1aj47a2vflavw92yyhn7rpa32f0dazf5cfj59v8/binjans",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJANS",
+ "baseDenom": "BINJANS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj10dysh3p4q8nh5zzhsq5j84de5pq6dxahnplt2f",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10dysh3p4q8nh5zzhsq5j84de5pq6dxahnplt2f",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BINJE",
+ "denom": "inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm",
+ "logo": "unknown.png",
+ "symbol": "BINJE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJE",
+ "baseDenom": "BINJE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bird INJ",
+ "denom": "factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ",
+ "logo": "unknown.png",
+ "symbol": "BINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BINJ",
+ "baseDenom": "BINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bitcoin",
+ "denom": "inj1ce249uga9znmc3qk2jzr67v6qxq73pudfxhwqx",
+ "logo": "unknown.png",
+ "symbol": "BITCOIN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ce249uga9znmc3qk2jzr67v6qxq73pudfxhwqx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BITCOIN",
+ "baseDenom": "BITCOIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bitcosmos",
+ "denom": "ibc/E440667C70A0C9A5AD5A8D709731289AFB92301D64D70D0B33D18EF4FDD797FE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/bitcosmos.png",
+ "symbol": "BTC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E440667C70A0C9A5AD5A8D709731289AFB92301D64D70D0B33D18EF4FDD797FE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BTC",
+ "baseDenom": "BTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bitmos",
+ "denom": "ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/bitmos.png",
+ "symbol": "BMOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BMOS",
+ "baseDenom": "BMOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bits",
+ "denom": "factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits",
+ "logo": "https://bafkreibctiznqniuyv3jp7c7n3yo5wjxvszeiiiofhrg3blbljhnxabewu.ipfs.w3s.link",
+ "symbol": "bits",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bits",
+ "baseDenom": "bits",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BitzDAO",
+ "denom": "ibc/01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/BITZ.png",
+ "symbol": "BITZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BITZ",
+ "baseDenom": "BITZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Black",
+ "denom": "inj1nuwasf0jsj3chnvzfddh06ft2fev3f5g447u2f",
+ "logo": "unknown.png",
+ "symbol": "BLACK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nuwasf0jsj3chnvzfddh06ft2fev3f5g447u2f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BLACK",
+ "baseDenom": "BLACK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLACK",
+ "denom": "factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black",
+ "logo": "https://i.imgur.com/4OfTmXP.png",
+ "symbol": "BLACK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLACK",
+ "baseDenom": "BLACK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLACK",
+ "denom": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK",
+ "logo": "https://pbs.twimg.com/profile_images/1637108281817849857/XMPEUyjs_400x400.jpg",
+ "symbol": "BLACK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLACK",
+ "baseDenom": "BLACK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLACK CAT TOKEN",
+ "denom": "factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCAT",
+ "logo": "unknown.png",
+ "symbol": "BCAT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCAT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BCAT",
+ "baseDenom": "BCAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLACK PANTHER",
+ "denom": "inj12tkaz9e540zszf5vtlxc0aksywu9rejnwxmv3n",
+ "logo": "unknown.png",
+ "symbol": "BLACK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12tkaz9e540zszf5vtlxc0aksywu9rejnwxmv3n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BLACK",
+ "baseDenom": "BLACK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLD",
+ "denom": "ibc/B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/agoric/images/bld.png",
+ "symbol": "BLD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLD",
+ "baseDenom": "BLD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLEND",
+ "denom": "ibc/45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/blend.svg",
+ "symbol": "BLEND",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLEND",
+ "baseDenom": "BLEND",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLISS Token",
+ "denom": "factory/inj15tz959pa5mlghhku2vm5sq45jpp4s0yf23mk6d/BLISS",
+ "logo": "unknown.png",
+ "symbol": "BLISS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15tz959pa5mlghhku2vm5sq45jpp4s0yf23mk6d/BLISS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLISS",
+ "baseDenom": "BLISS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BlockTower (Wormhole)",
+ "denom": "inj1cnldf982xlmk5rzxgylvax6vmrlxjlvw7ss5mt",
+ "logo": "unknown.png",
+ "symbol": "BLOCKTOWER",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cnldf982xlmk5rzxgylvax6vmrlxjlvw7ss5mt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BLOCKTOWER",
+ "baseDenom": "BLOCKTOWER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLUE CUB DAO",
+ "denom": "ibc/B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/blue.png",
+ "symbol": "BLUE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLUE",
+ "baseDenom": "BLUE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BLUE GRIN TOKEN",
+ "denom": "factory/inj130nkx4u8p5sa2jl4apqlnnjlej2ymfq0e398w9/BLUE",
+ "logo": "unknown.png",
+ "symbol": "BLUE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj130nkx4u8p5sa2jl4apqlnnjlej2ymfq0e398w9/BLUE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BLUE",
+ "baseDenom": "BLUE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Blue Injective (Wormhole)",
+ "denom": "inj1zkm3r90ard692tvrjrhu7vtkzlqpkjkdwwc57s",
+ "logo": "unknown.png",
+ "symbol": "BLUEINJECTIVE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zkm3r90ard692tvrjrhu7vtkzlqpkjkdwwc57s",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BLUEINJECTIVE",
+ "baseDenom": "BLUEINJECTIVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BlueInjective (Wormhole)",
+ "denom": "inj17qsyspyh44wjch355pr72wzfv9czt5cw3h7vrr",
+ "logo": "unknown.png",
+ "symbol": "BINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17qsyspyh44wjch355pr72wzfv9czt5cw3h7vrr",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BINJ",
+ "baseDenom": "BINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BlueInjective (Wormhole)",
+ "denom": "inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv",
+ "logo": "unknown.png",
+ "symbol": "BLUEINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BLUEINJ",
+ "baseDenom": "BLUEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BlueInjective (Wormhole)",
+ "denom": "inj1aalqnnh24ddn3vd9plnevwnxd03x7sevm77lps",
+ "logo": "unknown.png",
+ "symbol": "BLUEINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aalqnnh24ddn3vd9plnevwnxd03x7sevm77lps",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BLUEINJ",
+ "baseDenom": "BLUEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BluePepe",
+ "denom": "factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett",
+ "logo": "unknown.png",
+ "symbol": "BRETT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BRETT",
+ "baseDenom": "BRETT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Blue Pepe (Wormhole)",
+ "denom": "inj1pel9sz78wy4kphn2k7uwv5f6txuyvtrxn9j6c3",
+ "logo": "unknown.png",
+ "symbol": "BPEPE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pel9sz78wy4kphn2k7uwv5f6txuyvtrxn9j6c3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BPEPE",
+ "baseDenom": "BPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BMO",
+ "denom": "inj17fawlptgvptqwwtgxmz0prexrz2nel6zqdn2gd",
+ "logo": "unknown.png",
+ "symbol": "BMO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17fawlptgvptqwwtgxmz0prexrz2nel6zqdn2gd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BMO",
+ "baseDenom": "BMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BMW ",
+ "denom": "inj1fzqfk93lrmn7pgmnssgqwrlmddnq7w5h3e47pc",
+ "logo": "unknown.png",
+ "symbol": "BMW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fzqfk93lrmn7pgmnssgqwrlmddnq7w5h3e47pc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BMW",
+ "baseDenom": "BMW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BNINJA",
+ "denom": "factory/inj1k7tuhcp7shy4qwkwrg6ckjteucg44qfm79rkmx/BNINJA",
+ "logo": "unknown.png",
+ "symbol": "BNINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k7tuhcp7shy4qwkwrg6ckjteucg44qfm79rkmx/BNINJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BNINJA",
+ "baseDenom": "BNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BobaCat",
+ "denom": "inj145p4shl9xdutc7cv0v9qpfallh3s8z64yd66rg",
+ "logo": "unknown.png",
+ "symbol": "PSPS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj145p4shl9xdutc7cv0v9qpfallh3s8z64yd66rg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PSPS",
+ "baseDenom": "PSPS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bobinjtoken",
+ "denom": "inj1cwaw3cl4wscxadtmydjmwuelqw95w5rukmk47n",
+ "logo": "unknown.png",
+ "symbol": "BOB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cwaw3cl4wscxadtmydjmwuelqw95w5rukmk47n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BOB",
+ "baseDenom": "BOB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bobmarley",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bobmarley",
+ "logo": "unknown.png",
+ "symbol": "bobmarley",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bobmarley",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bobmarley",
+ "baseDenom": "bobmarley",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Boburu (ボブル)",
+ "denom": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/boburu",
+ "logo": "unknown.png",
+ "symbol": "BOBURU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/boburu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOBURU",
+ "baseDenom": "BOBURU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "boden",
+ "denom": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/boden",
+ "logo": "unknown.png",
+ "symbol": "BODEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/boden",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BODEN",
+ "baseDenom": "BODEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BODEN",
+ "denom": "inj10xtrreumk28cucrtgse232s3gw2yxcclh0wswd",
+ "logo": "unknown.png",
+ "symbol": "BODED",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10xtrreumk28cucrtgse232s3gw2yxcclh0wswd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BODED",
+ "baseDenom": "BODED",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BOME INJ",
+ "denom": "factory/inj1ne284hkg3yltn7aq250lghkqqrywmk2sk9x2yu/BOME",
+ "logo": "unknown.png",
+ "symbol": "BOME",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ne284hkg3yltn7aq250lghkqqrywmk2sk9x2yu/BOME",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOME",
+ "baseDenom": "BOME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonded Crescent",
+ "denom": "ibc/D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/bcre.png",
+ "symbol": "bCRE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bCRE",
+ "baseDenom": "bCRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONE",
+ "denom": "inj1kpp05gff8xgs0m9k7s2w66vvn53n77t9t6maqr",
+ "logo": "unknown.png",
+ "symbol": "BONE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kpp05gff8xgs0m9k7s2w66vvn53n77t9t6maqr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONE",
+ "baseDenom": "BONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "boneLuna",
+ "denom": "ibc/C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/boneluna.png",
+ "symbol": "bLUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bLUNA",
+ "baseDenom": "bLUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "boneWHALE",
+ "denom": "ibc/ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/bWHALE.png",
+ "symbol": "bWHALE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bWHALE",
+ "baseDenom": "bWHALE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONJA",
+ "denom": "factory/inj18v0e5dj2s726em58sg69sgmrnqmd08q5apgklm/bj",
+ "logo": "unknown.png",
+ "symbol": "BONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18v0e5dj2s726em58sg69sgmrnqmd08q5apgklm/bj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONJA",
+ "baseDenom": "BONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bonja the bad ninja",
+ "denom": "inj155fauc0h355fk5t9qa2x2uzq7vlt26sv0u08fp",
+ "logo": "unknown.png",
+ "symbol": "BONJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj155fauc0h355fk5t9qa2x2uzq7vlt26sv0u08fp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BONJA",
+ "baseDenom": "BONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonjo",
+ "denom": "inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6",
+ "logo": "unknown.png",
+ "symbol": "BONJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BONJO",
+ "baseDenom": "BONJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONK",
+ "denom": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONK",
+ "denom": "factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONK",
+ "denom": "factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BonkInj",
+ "denom": "inj173f5j4xtmah4kpppxgh8p6armad5cg5e6ay5qh",
+ "logo": "unknown.png",
+ "symbol": "BONKINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj173f5j4xtmah4kpppxgh8p6armad5cg5e6ay5qh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONKINJ",
+ "baseDenom": "BONKINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk Injective",
+ "denom": "factory/inj15705jepx03fxl3sntfhdznjnl0mlqwtdvyt32d/bonk",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15705jepx03fxl3sntfhdznjnl0mlqwtdvyt32d/bonk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk Injective",
+ "denom": "factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk Injective",
+ "denom": "factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk Inu",
+ "denom": "factory/inj1936pplnstvecjgttz9eug83x2cs7xs2emdad4z/bonkinu",
+ "logo": "unknown.png",
+ "symbol": "bonkinu",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1936pplnstvecjgttz9eug83x2cs7xs2emdad4z/bonkinu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bonkinu",
+ "baseDenom": "bonkinu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bonkmas",
+ "denom": "factory/inj17a0fp4rguzgf9mwz90y2chc3lr445nujdwc063/bonkmas",
+ "logo": "unknown.png",
+ "symbol": "bonkmas",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj17a0fp4rguzgf9mwz90y2chc3lr445nujdwc063/bonkmas",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "bonkmas",
+ "baseDenom": "bonkmas",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk Ninja",
+ "denom": "factory/inj1gc8fjmp9y8kfsy3s6yzucg9q0azcz60tm9hldp/bonkja",
+ "logo": "unknown.png",
+ "symbol": "BONKJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gc8fjmp9y8kfsy3s6yzucg9q0azcz60tm9hldp/bonkja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONKJA",
+ "baseDenom": "BONKJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk on INJ",
+ "denom": "factory/inj147laec3n2gq8gadzg8xthr7653r76jzhavemhh/BONK",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj147laec3n2gq8gadzg8xthr7653r76jzhavemhh/BONK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk on INJ",
+ "denom": "factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BonkToken (Wormhole)",
+ "denom": "inj1jzxkr7lzzljdsyq8483jnduvpwtq7ny5x4ch08",
+ "logo": "unknown.png",
+ "symbol": "BONK",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jzxkr7lzzljdsyq8483jnduvpwtq7ny5x4ch08",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BONK",
+ "baseDenom": "BONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bonk (Wormhole)",
+ "denom": "ibc/C951FBB321708183F5A14811A3D099B3D73457D12E193E2B8429BDDCC6810D5A",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/solana/images/bonk.png",
+ "symbol": "Bonk",
+ "decimals": 5,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C951FBB321708183F5A14811A3D099B3D73457D12E193E2B8429BDDCC6810D5A",
+ "path": "",
+ "channelId": "",
+ "decimals": 5,
+ "symbol": "Bonk",
+ "baseDenom": "Bonk",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BONSAI",
+ "denom": "factory/inj13jx69l98q0skvwy3n503e0zcrh3wz9dcqxpwxy/bonsai",
+ "logo": "unknown.png",
+ "symbol": "BONSAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13jx69l98q0skvwy3n503e0zcrh3wz9dcqxpwxy/bonsai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BONSAI",
+ "baseDenom": "BONSAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Boomer",
+ "denom": "inj1xuu84fqdq45wdqj38xt8fhxsazt88d7xumhzrn",
+ "logo": "unknown.png",
+ "symbol": "BOOM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xuu84fqdq45wdqj38xt8fhxsazt88d7xumhzrn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BOOM",
+ "baseDenom": "BOOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Boomer",
+ "denom": "inj1ethjlrk28wqklz48ejtqja9yfft8t4mm92m2ga",
+ "logo": "unknown.png",
+ "symbol": "Boomer",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ethjlrk28wqklz48ejtqja9yfft8t4mm92m2ga",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Boomer",
+ "baseDenom": "Boomer",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "boy",
+ "denom": "ibc/84DA08CF29CD08373ABB0E36F4E6E8DC2908EA9A8E529349EBDC08520527EFC2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/boy.png",
+ "symbol": "BOY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "84DA08CF29CD08373ABB0E36F4E6E8DC2908EA9A8E529349EBDC08520527EFC2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOY",
+ "baseDenom": "BOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BOYS",
+ "denom": "factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS",
+ "logo": "unknown.png",
+ "symbol": "BOYS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOYS",
+ "baseDenom": "BOYS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Boys Token",
+ "denom": "factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/boys",
+ "logo": "unknown.png",
+ "symbol": "BOYS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/boys",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOYS",
+ "baseDenom": "BOYS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bozo",
+ "denom": "inj14r42t23gx9yredm37q3wjw3vx0q6du85vuugdr",
+ "logo": "unknown.png",
+ "symbol": "bozo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14r42t23gx9yredm37q3wjw3vx0q6du85vuugdr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "bozo",
+ "baseDenom": "bozo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Branez",
+ "denom": "ibc/713B768D6B89E4DEEFDBE75390CA2DC234FAB6A016D3FD8D324E08A66BF5070F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/BRNZ.svg",
+ "symbol": "BRNZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "713B768D6B89E4DEEFDBE75390CA2DC234FAB6A016D3FD8D324E08A66BF5070F",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BRNZ",
+ "baseDenom": "BRNZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Brett",
+ "denom": "inj1zhce7csk22mpwrfk855qhw4u5926u0mjyw4df6",
+ "logo": "unknown.png",
+ "symbol": "BRETT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zhce7csk22mpwrfk855qhw4u5926u0mjyw4df6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BRETT",
+ "baseDenom": "BRETT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Brian",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/brian",
+ "logo": "unknown.png",
+ "symbol": "brian",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/brian",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "brian",
+ "baseDenom": "brian",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "brrroninjective",
+ "denom": "inj16veue9c0sz0mp7dnf5znsakqwt7cnjpwz3auau",
+ "logo": "unknown.png",
+ "symbol": "BRRR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16veue9c0sz0mp7dnf5znsakqwt7cnjpwz3auau",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BRRR",
+ "baseDenom": "BRRR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "brucelee",
+ "denom": "inj1dtww84csxcq2pwkvaanlfk09cer93xzc9kwnzf",
+ "logo": "unknown.png",
+ "symbol": "BRUCELEE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dtww84csxcq2pwkvaanlfk09cer93xzc9kwnzf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BRUCELEE",
+ "baseDenom": "BRUCELEE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BSKT (Wormhole)",
+ "denom": "inj193340xxv49hkug7r65xzc0l40tze44pee4fj94",
+ "logo": "unknown.png",
+ "symbol": "BSKT",
+ "decimals": 5,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj193340xxv49hkug7r65xzc0l40tze44pee4fj94",
+ "path": "",
+ "channelId": "",
+ "decimals": 5,
+ "symbol": "BSKT",
+ "baseDenom": "BSKT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BTCETF",
+ "denom": "inj1gzmkap8g09h70keaph9utxy9ahjvuuhk5tzpw9",
+ "logo": "unknown.png",
+ "symbol": "BTCETF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gzmkap8g09h70keaph9utxy9ahjvuuhk5tzpw9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BTCETF",
+ "baseDenom": "BTCETF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BTC Squared",
+ "denom": "ibc/81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqbtc.svg",
+ "symbol": "sqBTC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sqBTC",
+ "baseDenom": "sqBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BUILDINJ",
+ "denom": "inj1z9utpqxm586476kzpk7nn2ukhnydmu8vchhqlu",
+ "logo": "unknown.png",
+ "symbol": "BUILD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1z9utpqxm586476kzpk7nn2ukhnydmu8vchhqlu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BUILD",
+ "baseDenom": "BUILD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "bul",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bul",
+ "logo": "unknown.png",
+ "symbol": "BUL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bul",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BUL",
+ "baseDenom": "BUL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BULL",
+ "denom": "factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/BULL",
+ "logo": "unknown.png",
+ "symbol": "BULL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/BULL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BULL",
+ "baseDenom": "BULL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BULL (Wormhole)",
+ "denom": "inj1j82m0njz2gm0eea0ujmyjdlq2gzvwkvqapxeuw",
+ "logo": "unknown.png",
+ "symbol": "Bull",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j82m0njz2gm0eea0ujmyjdlq2gzvwkvqapxeuw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Bull",
+ "baseDenom": "Bull",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bunshinu",
+ "denom": "inj1myh9um5cmpghrfnh620cnauxd8sfh4tv2mcznl",
+ "logo": "unknown.png",
+ "symbol": "Binu",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1myh9um5cmpghrfnh620cnauxd8sfh4tv2mcznl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Binu",
+ "baseDenom": "Binu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BURGE",
+ "denom": "inj1xcmamawydqlnqde7ah3xq7gzye9acwkmc5k5ne",
+ "logo": "unknown.png",
+ "symbol": "BURGE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xcmamawydqlnqde7ah3xq7gzye9acwkmc5k5ne",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BURGE",
+ "baseDenom": "BURGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BurgerNEO",
+ "denom": "ibc/48F6A028444987BB26299A074A5C32DC1679A050D5563AC10FF81EED9E22D8B8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/bneo.png",
+ "symbol": "bNEO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "48F6A028444987BB26299A074A5C32DC1679A050D5563AC10FF81EED9E22D8B8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "bNEO",
+ "baseDenom": "bNEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "burn",
+ "denom": "inj1p6h58futtvzw5gdjs30fqv4l9ljq8aepk3e0k5",
+ "logo": "unknown.png",
+ "symbol": "burn",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p6h58futtvzw5gdjs30fqv4l9ljq8aepk3e0k5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "burn",
+ "baseDenom": "burn",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Burned LAB",
+ "denom": "ibc/D3D5FB034E9CAA6922BB9D7D52D909116B7FFF7BD73299F686C972643B4767B9",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ashLAB.png",
+ "symbol": "ashLAB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D3D5FB034E9CAA6922BB9D7D52D909116B7FFF7BD73299F686C972643B4767B9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ashLAB",
+ "baseDenom": "ashLAB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BUSD (BEP-20)",
+ "denom": "ibc/A8F9B4EC630F52C13D715E373A0E7B57B3F8D870B4168DADE0357398712ECC0E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/busd.png",
+ "symbol": "BUSD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A8F9B4EC630F52C13D715E373A0E7B57B3F8D870B4168DADE0357398712ECC0E",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BUSD",
+ "baseDenom": "BUSD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "BUSKA",
+ "denom": "inj1me9svqmf539hfzrfhw2emm2s579kv73w77u8yz",
+ "logo": "unknown.png",
+ "symbol": "BUS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1me9svqmf539hfzrfhw2emm2s579kv73w77u8yz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BUS",
+ "baseDenom": "BUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Bye Token",
+ "denom": "inj1zfaug0dfg7zmd888thjx2hwuas0vl2ly4euk3r",
+ "logo": "unknown.png",
+ "symbol": "BYE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zfaug0dfg7zmd888thjx2hwuas0vl2ly4euk3r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BYE",
+ "baseDenom": "BYE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cactus",
+ "denom": "inj16ch9sx5c6fa6lnndh7vunrjsf60h67hz988hdg",
+ "logo": "unknown.png",
+ "symbol": "CACTUS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ch9sx5c6fa6lnndh7vunrjsf60h67hz988hdg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CACTUS",
+ "baseDenom": "CACTUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Calu",
+ "denom": "inj1a9pvrzmymj7rvdw0cf5ut9hkjsvtg4v8cqae24",
+ "logo": "unknown.png",
+ "symbol": "CAL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a9pvrzmymj7rvdw0cf5ut9hkjsvtg4v8cqae24",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CAL",
+ "baseDenom": "CAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Canto",
+ "denom": "ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/canto/images/canto.png",
+ "symbol": "CANTO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CANTO",
+ "baseDenom": "CANTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Canto",
+ "denom": "ibc/5C0C70B490A3568D40E81884F200716F96FCE8B0A55CB5EE41C1E369E6086CCA",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/canto/images/canto.png",
+ "symbol": "CANTO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5C0C70B490A3568D40E81884F200716F96FCE8B0A55CB5EE41C1E369E6086CCA",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CANTO",
+ "baseDenom": "CANTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Canto",
+ "denom": "ibc/6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/canto/images/canto.png",
+ "symbol": "CANTO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CANTO",
+ "baseDenom": "CANTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Capybara",
+ "denom": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/capybara",
+ "logo": "unknown.png",
+ "symbol": "CAPY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/capybara",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CAPY",
+ "baseDenom": "CAPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Carbon",
+ "denom": "ibc/8E697D6F7DAC1E5123D087A50D0FE0EBDD8A323B90DC19C7BA8484742AEB2D90",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/swth.png",
+ "symbol": "SWTH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8E697D6F7DAC1E5123D087A50D0FE0EBDD8A323B90DC19C7BA8484742AEB2D90",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SWTH",
+ "baseDenom": "SWTH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Carbon Grouped USD",
+ "denom": "ibc/7474CABFDF3CF58A227C19B2CEDE34315A68212C863E367FC69928ABA344024C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/carbon-grouped-usd.png",
+ "symbol": "USD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7474CABFDF3CF58A227C19B2CEDE34315A68212C863E367FC69928ABA344024C",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USD",
+ "baseDenom": "USD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Carbon USD Coin",
+ "denom": "ibc/5307C5A7B88337FE81565E210CDB5C50FBD6DCCF2D90D524A7E9D1FE00C40139",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/usc.png",
+ "symbol": "USC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5307C5A7B88337FE81565E210CDB5C50FBD6DCCF2D90D524A7E9D1FE00C40139",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "USC",
+ "baseDenom": "USC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Carbon Wrapped GLP",
+ "denom": "ibc/6A3840A623A809BC76B075D7206302622180D9FA8AEA59067025812B1BC6A1CC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/cglp.png",
+ "symbol": "CGLP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6A3840A623A809BC76B075D7206302622180D9FA8AEA59067025812B1BC6A1CC",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CGLP",
+ "baseDenom": "CGLP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cardano",
+ "denom": "inj1vla438tlw69h93crmq3wq9l79d6cqwecqef3ps",
+ "logo": "unknown.png",
+ "symbol": "ADA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vla438tlw69h93crmq3wq9l79d6cqwecqef3ps",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ADA",
+ "baseDenom": "ADA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cardojas",
+ "denom": "inj1qwx2gx7ydumz2wt43phzkrqsauqghvct48pplw",
+ "logo": "unknown.png",
+ "symbol": "cdj",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qwx2gx7ydumz2wt43phzkrqsauqghvct48pplw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "cdj",
+ "baseDenom": "cdj",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cartel",
+ "denom": "ibc/FDD71937DFA4E18BBF16734EB0AD0EFA9F7F1B0F21D13FAF63F0B4F3EA7DEF28",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/cartel.png",
+ "symbol": "CARTEL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FDD71937DFA4E18BBF16734EB0AD0EFA9F7F1B0F21D13FAF63F0B4F3EA7DEF28",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CARTEL",
+ "baseDenom": "CARTEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CASINO",
+ "denom": "inj12zqf6p9me86493yzpr9v3kmunvjzv24fg736yd",
+ "logo": "unknown.png",
+ "symbol": "CASINO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12zqf6p9me86493yzpr9v3kmunvjzv24fg736yd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CASINO",
+ "baseDenom": "CASINO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cassionpeia (Wormhole)",
+ "denom": "inj179m94j3vkvpzurq2zpn0q9uxdfuc4nq0p76h6w",
+ "logo": "unknown.png",
+ "symbol": "CASSIO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj179m94j3vkvpzurq2zpn0q9uxdfuc4nq0p76h6w",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CASSIO",
+ "baseDenom": "CASSIO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat",
+ "denom": "inj1eerjxzvwklcgvclj9m2pulqsmpentaes8h347x",
+ "logo": "unknown.png",
+ "symbol": "CAT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eerjxzvwklcgvclj9m2pulqsmpentaes8h347x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CAT",
+ "baseDenom": "CAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CAT",
+ "denom": "inj129hsu2espaf4xn8d2snqyaxrhf0jgl4tzh2weq",
+ "logo": "unknown.png",
+ "symbol": "CAT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj129hsu2espaf4xn8d2snqyaxrhf0jgl4tzh2weq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CAT",
+ "baseDenom": "CAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Catcoin",
+ "denom": "inj1rwhc09dv2c9kg6d63t3qp679jws04p8van3yu8",
+ "logo": "unknown.png",
+ "symbol": "CATCOIN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rwhc09dv2c9kg6d63t3qp679jws04p8van3yu8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CATCOIN",
+ "baseDenom": "CATCOIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CAT IN A BIN",
+ "denom": "factory/inj1ax459aj3gkph6z0sxaddk6htzlshqlp5mfwqvx/catinbin",
+ "logo": "unknown.png",
+ "symbol": "BIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ax459aj3gkph6z0sxaddk6htzlshqlp5mfwqvx/catinbin",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BIN",
+ "baseDenom": "BIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CATINJ",
+ "denom": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/catinj",
+ "logo": "unknown.png",
+ "symbol": "CATINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/catinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CATINJ",
+ "baseDenom": "CATINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CatInjective (Wormhole)",
+ "denom": "inj1p2w55xu2yt55rydrf8l6k79kt3xmjmmsnn3mse",
+ "logo": "unknown.png",
+ "symbol": "CATINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p2w55xu2yt55rydrf8l6k79kt3xmjmmsnn3mse",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CATINJ",
+ "baseDenom": "CATINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CAT WHO DRIVES (Wormhole)",
+ "denom": "inj1ghhdy9mejncsvhwxmvnk5hspkd5fchtrmhu3x2",
+ "logo": "unknown.png",
+ "symbol": "DRIVING",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ghhdy9mejncsvhwxmvnk5hspkd5fchtrmhu3x2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DRIVING",
+ "baseDenom": "DRIVING",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat wif Luck",
+ "denom": "inj10vhddx39e3q8ayaxw4dg36tfs9lpf6xx649zfn",
+ "logo": "unknown.png",
+ "symbol": "WIFLUCK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10vhddx39e3q8ayaxw4dg36tfs9lpf6xx649zfn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WIFLUCK",
+ "baseDenom": "WIFLUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat Wif Luck",
+ "denom": "inj19lwxrsr2ke407xw2fdgs80f3rghg2pueqae3vf",
+ "logo": "unknown.png",
+ "symbol": "WIFLUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19lwxrsr2ke407xw2fdgs80f3rghg2pueqae3vf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WIFLUCK",
+ "baseDenom": "WIFLUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat Wif Luck",
+ "denom": "factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWL",
+ "logo": "unknown.png",
+ "symbol": "CWL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CWL",
+ "baseDenom": "CWL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat WIF luck",
+ "denom": "inj1mqurena8qgf775t28feqefnp63qme7jyupk4kg",
+ "logo": "unknown.png",
+ "symbol": "WIFLUCK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mqurena8qgf775t28feqefnp63qme7jyupk4kg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WIFLUCK",
+ "baseDenom": "WIFLUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat WIF Luck",
+ "denom": "factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWIFLUCK",
+ "logo": "unknown.png",
+ "symbol": "CWIFLUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWIFLUCK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CWIFLUCK",
+ "baseDenom": "CWIFLUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cat with Needle",
+ "denom": "inj1tn88veylex4f4tu7clpkyneahpmf7nqqmvquuw",
+ "logo": "unknown.png",
+ "symbol": "Inject",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tn88veylex4f4tu7clpkyneahpmf7nqqmvquuw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Inject",
+ "baseDenom": "Inject",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CBDCPeng (Wormhole)",
+ "denom": "inj178xpd5dxe7dq82dtxpcufelshxxlqmzn0h0r26",
+ "logo": "unknown.png",
+ "symbol": "FISHY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj178xpd5dxe7dq82dtxpcufelshxxlqmzn0h0r26",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FISHY",
+ "baseDenom": "FISHY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CDT Stablecoin",
+ "denom": "ibc/25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/CDT.svg",
+ "symbol": "CDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CDT",
+ "baseDenom": "CDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CEL",
+ "denom": "peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d",
+ "logo": "unknown.png",
+ "symbol": "CEL",
+ "decimals": 4,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d",
+ "path": "",
+ "channelId": "",
+ "decimals": 4,
+ "symbol": "CEL",
+ "baseDenom": "CEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Celestia",
+ "denom": "ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/celestia/images/celestia.png",
+ "symbol": "TIA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TIA",
+ "baseDenom": "TIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CentraLand (Wormhole)",
+ "denom": "inj1khd6f66tp8dd4f58dzsxa5uu7sy3phamkv2yr8",
+ "logo": "unknown.png",
+ "symbol": "CENTER",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1khd6f66tp8dd4f58dzsxa5uu7sy3phamkv2yr8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CENTER",
+ "baseDenom": "CENTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CERBERUS",
+ "denom": "inj1932un3uh05nxy4ej50cfc3se096jd6w3jvl69g",
+ "logo": "unknown.png",
+ "symbol": "CERBERUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1932un3uh05nxy4ej50cfc3se096jd6w3jvl69g",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CERBERUS",
+ "baseDenom": "CERBERUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "chad",
+ "denom": "factory/inj182lgxnfnztjalxqxcjn7jal27w7xg28aeygwd9/chad",
+ "logo": "unknown.png",
+ "symbol": "chad",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj182lgxnfnztjalxqxcjn7jal27w7xg28aeygwd9/chad",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "chad",
+ "baseDenom": "chad",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHAD",
+ "denom": "factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/CHAD",
+ "logo": "unknown.png",
+ "symbol": "CHAD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/CHAD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHAD",
+ "baseDenom": "CHAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHAD (Wormhole)",
+ "denom": "inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk",
+ "logo": "unknown.png",
+ "symbol": "CHAD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHAD",
+ "baseDenom": "CHAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chain",
+ "denom": "ibc/79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/xcn.svg",
+ "symbol": "XCN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XCN",
+ "baseDenom": "XCN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ChainInjective (Wormhole)",
+ "denom": "inj143rjlwt7r28wn89r39wr76umle8spx47z0c05d",
+ "logo": "unknown.png",
+ "symbol": "CHAININJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj143rjlwt7r28wn89r39wr76umle8spx47z0c05d",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHAININJ",
+ "baseDenom": "CHAININJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chainlink",
+ "denom": "ibc/AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/link.png",
+ "symbol": "LINK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LINK",
+ "baseDenom": "LINK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chainlink",
+ "denom": "peggy0x514910771AF9Ca656af840dff83E8264EcF986CA",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/link.png",
+ "symbol": "LINK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x514910771AF9Ca656af840dff83E8264EcF986CA",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LINK",
+ "baseDenom": "LINK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Champions INJ",
+ "denom": "inj1gnde7drvw03ahz84aah0qhkum4vf4vz6mv0us7",
+ "logo": "unknown.png",
+ "symbol": "CHAMP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gnde7drvw03ahz84aah0qhkum4vf4vz6mv0us7",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHAMP",
+ "baseDenom": "CHAMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Charm Token (Wormhole)",
+ "denom": "inj1c2e37gwl2q7kvuxyfk5c0qs89rquzmes0nsgjf",
+ "logo": "unknown.png",
+ "symbol": "CHARM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c2e37gwl2q7kvuxyfk5c0qs89rquzmes0nsgjf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHARM",
+ "baseDenom": "CHARM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cheems",
+ "denom": "factory/inj1hrjm0jwfey8e4x3ef3pyeq4mpjvc8356lkgh9f/CHEEMS",
+ "logo": "unknown.png",
+ "symbol": "CHEEMS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hrjm0jwfey8e4x3ef3pyeq4mpjvc8356lkgh9f/CHEEMS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHEEMS",
+ "baseDenom": "CHEEMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHEEMS",
+ "denom": "factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems",
+ "logo": "unknown.png",
+ "symbol": "CHEEMS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHEEMS",
+ "baseDenom": "CHEEMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHEEMS",
+ "denom": "factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems",
+ "logo": "unknown.png",
+ "symbol": "CHEEMS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHEEMS",
+ "baseDenom": "CHEEMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHEESE",
+ "denom": "inj1p6v3qxttvh36x7gxpwl9ltnmc6a7cgselpd7ya",
+ "logo": "unknown.png",
+ "symbol": "CHEESE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p6v3qxttvh36x7gxpwl9ltnmc6a7cgselpd7ya",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CHEESE",
+ "baseDenom": "CHEESE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CheeseBalls",
+ "denom": "inj13mjcjrwwjq7x6fanqvur4atd4sxyjz7t6kfhx0",
+ "logo": "unknown.png",
+ "symbol": "CheeseBalls",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13mjcjrwwjq7x6fanqvur4atd4sxyjz7t6kfhx0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CheeseBalls",
+ "baseDenom": "CheeseBalls",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CheeseBalls",
+ "denom": "inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd",
+ "logo": "unknown.png",
+ "symbol": "CheeseBalls",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CheeseBalls",
+ "baseDenom": "CheeseBalls",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHEN",
+ "denom": "factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN",
+ "logo": "unknown.png",
+ "symbol": "CHEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHEN",
+ "baseDenom": "CHEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHEN",
+ "denom": "factory/inj196t4n8dg3pzkk5wh7ytjwtl6e3a56u9fj705wr/CHEN",
+ "logo": "unknown.png",
+ "symbol": "CHEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj196t4n8dg3pzkk5wh7ytjwtl6e3a56u9fj705wr/CHEN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHEN",
+ "baseDenom": "CHEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chief Troll Officer",
+ "denom": "inj19kk6ywwu5h0rnz4453gyzt3ymgu739egv954tf",
+ "logo": "unknown.png",
+ "symbol": "CTO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19kk6ywwu5h0rnz4453gyzt3ymgu739egv954tf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CTO",
+ "baseDenom": "CTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chihuahua",
+ "denom": "ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/chihuahua/images/huahua.png",
+ "symbol": "HUAHUA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HUAHUA",
+ "baseDenom": "HUAHUA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chi labs",
+ "denom": "inj198rrzmcv69xay8xuhalqz2z02egmsyzp08mvkk",
+ "logo": "unknown.png",
+ "symbol": "CHI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj198rrzmcv69xay8xuhalqz2z02egmsyzp08mvkk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CHI",
+ "baseDenom": "CHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "chiliZ (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh",
+ "logo": "unknown.png",
+ "symbol": "CHZ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHZ",
+ "baseDenom": "CHZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CHINMOY",
+ "denom": "inj1t52r8h56j9ctycqhlkdswhjjn42s6dnc6huwzs",
+ "logo": "unknown.png",
+ "symbol": "CHINMOY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t52r8h56j9ctycqhlkdswhjjn42s6dnc6huwzs",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CHINMOY",
+ "baseDenom": "CHINMOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chocobar ",
+ "denom": "inj1fvzre25nqkakvwmjr8av5jrfs56dk6c8sc6us9",
+ "logo": "unknown.png",
+ "symbol": "Chb",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fvzre25nqkakvwmjr8av5jrfs56dk6c8sc6us9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Chb",
+ "baseDenom": "Chb",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chonk",
+ "denom": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/Chonk",
+ "logo": "unknown.png",
+ "symbol": "Chonk",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/Chonk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Chonk",
+ "baseDenom": "Chonk",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chonk The Cat",
+ "denom": "inj17aze0egvc8hrmgf25kkhlw3720vurz99pdp58q",
+ "logo": "unknown.png",
+ "symbol": "CHONK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17aze0egvc8hrmgf25kkhlw3720vurz99pdp58q",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CHONK",
+ "baseDenom": "CHONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chonk The Cat",
+ "denom": "inj1ftq3h2y70hrx5rn5a26489drjau9qel58h3gfr",
+ "logo": "unknown.png",
+ "symbol": "CHONK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ftq3h2y70hrx5rn5a26489drjau9qel58h3gfr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CHONK",
+ "baseDenom": "CHONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "chooclate",
+ "denom": "inj1slny6cqjkag3hgkygpq5nze6newysqpsfy0dxj",
+ "logo": "unknown.png",
+ "symbol": "CHOCOLATE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1slny6cqjkag3hgkygpq5nze6newysqpsfy0dxj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHOCOLATE",
+ "baseDenom": "CHOCOLATE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "chowchow",
+ "denom": "inj1syqdgn79wnnlzxd63g2h00rzx90k6s2pltec6w",
+ "logo": "unknown.png",
+ "symbol": "CHOWCHOW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1syqdgn79wnnlzxd63g2h00rzx90k6s2pltec6w",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHOWCHOW",
+ "baseDenom": "CHOWCHOW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Chromium (Wormhole)",
+ "denom": "inj1plmyzu0l2jku2yw0hnh8x6lw4z5r2rggu6uu05",
+ "logo": "unknown.png",
+ "symbol": "CHROMIUM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1plmyzu0l2jku2yw0hnh8x6lw4z5r2rggu6uu05",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHROMIUM",
+ "baseDenom": "CHROMIUM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CINU (Wormhole)",
+ "denom": "inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s",
+ "logo": "unknown.png",
+ "symbol": "CINU",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CINU",
+ "baseDenom": "CINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Circle USD",
+ "denom": "ibc/8F3ED95BF70AEC83B3A557A7F764190B8314A93E9B578DE6A8BDF00D13153708",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdc.svg",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8F3ED95BF70AEC83B3A557A7F764190B8314A93E9B578DE6A8BDF00D13153708",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CJ9",
+ "denom": "inj1w38vdrkemf8s40m5xpqe5fc8hnvwq3d794vc4a",
+ "logo": "unknown.png",
+ "symbol": "CNJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w38vdrkemf8s40m5xpqe5fc8hnvwq3d794vc4a",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CNJ",
+ "baseDenom": "CNJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CJ9",
+ "denom": "inj1eln607626f3j058rfh4xd3m4pd728x2cnxw4al",
+ "logo": "unknown.png",
+ "symbol": "CJN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eln607626f3j058rfh4xd3m4pd728x2cnxw4al",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CJN",
+ "baseDenom": "CJN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ClaimTaxes",
+ "denom": "inj1mwj4p98clpf9aldzcxn7g8ffzrwz65uszesdre",
+ "logo": "unknown.png",
+ "symbol": "CTAX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mwj4p98clpf9aldzcxn7g8ffzrwz65uszesdre",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CTAX",
+ "baseDenom": "CTAX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cleopatra",
+ "denom": "inj1fr66v0vrkh55yg6xfw845q78kd0cnxmu0d5pnq",
+ "logo": "unknown.png",
+ "symbol": "CLEO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fr66v0vrkh55yg6xfw845q78kd0cnxmu0d5pnq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CLEO",
+ "baseDenom": "CLEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CLON",
+ "denom": "ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/clon1.png",
+ "symbol": "CLON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CLON",
+ "baseDenom": "CLON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cocaine",
+ "denom": "inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp",
+ "logo": "unknown.png",
+ "symbol": "COKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COKE",
+ "baseDenom": "COKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cocaine",
+ "denom": "inj14mu7fw0hzxvz3dl9y628xva2xuvngmz4zrwllz",
+ "logo": "unknown.png",
+ "symbol": "babyCOKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14mu7fw0hzxvz3dl9y628xva2xuvngmz4zrwllz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyCOKE",
+ "baseDenom": "babyCOKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cocaine_inj",
+ "denom": "factory/inj1cdlqynzr2ktn54l3azhlulzkyksuw8yj3mfadx/coke",
+ "logo": "unknown.png",
+ "symbol": "coke",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cdlqynzr2ktn54l3azhlulzkyksuw8yj3mfadx/coke",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "coke",
+ "baseDenom": "coke",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "COFFEE",
+ "denom": "inj166gumme9j7alwh64uepatjk4sw3axq84ra6u5j",
+ "logo": "unknown.png",
+ "symbol": "COFFEE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj166gumme9j7alwh64uepatjk4sw3axq84ra6u5j",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COFFEE",
+ "baseDenom": "COFFEE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "COFFEE",
+ "denom": "inj18me8d9xxm340zcgk5eu8ljdantsk8ktxrvkup8",
+ "logo": "unknown.png",
+ "symbol": "COFFEIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18me8d9xxm340zcgk5eu8ljdantsk8ktxrvkup8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "COFFEIN",
+ "baseDenom": "COFFEIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Coinbase Wrapped Staked ETH",
+ "denom": "ibc/545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/cbeth.png",
+ "symbol": "cbETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "cbETH",
+ "baseDenom": "cbETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "coins",
+ "denom": "inj16m2tnugwtrdec80fxvuaxgchqcdpzhf2lrftck",
+ "logo": "unknown.png",
+ "symbol": "BUFFON",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16m2tnugwtrdec80fxvuaxgchqcdpzhf2lrftck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BUFFON",
+ "baseDenom": "BUFFON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "COMPOUND X",
+ "denom": "inj1f8kkrgrfd7utflvsq7xknuxtzf92nm80vkshu2",
+ "logo": "unknown.png",
+ "symbol": "PUFF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f8kkrgrfd7utflvsq7xknuxtzf92nm80vkshu2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PUFF",
+ "baseDenom": "PUFF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CONK2.0 (Wormhole)",
+ "denom": "inj1zuz0rpg224mrpz2lu6npta34yc48sl7e5sndly",
+ "logo": "unknown.png",
+ "symbol": "CONK2.0",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zuz0rpg224mrpz2lu6npta34yc48sl7e5sndly",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CONK2.0",
+ "baseDenom": "CONK2.0",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CONT",
+ "denom": "inj1vzpegrrn6zthj9ka93l9xk3judfx23sn0zl444",
+ "logo": "unknown.png",
+ "symbol": "CONT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vzpegrrn6zthj9ka93l9xk3judfx23sn0zl444",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CONT",
+ "baseDenom": "CONT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "COOK",
+ "denom": "factory/inj1pqpmffc7cdfx7tv9p2347ghgxdaell2xjzxmy6/COOK",
+ "logo": "unknown.png",
+ "symbol": "COOK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pqpmffc7cdfx7tv9p2347ghgxdaell2xjzxmy6/COOK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COOK",
+ "baseDenom": "COOK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "COOKIG",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/COOKIG",
+ "logo": "unknown.png",
+ "symbol": "COOKIG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/COOKIG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COOKIG",
+ "baseDenom": "COOKIG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CoolCat",
+ "denom": "factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/coolcat",
+ "logo": "unknown.png",
+ "symbol": "COOL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/coolcat",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COOL",
+ "baseDenom": "COOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cope",
+ "denom": "inj1lchcdq3rqc2kaupt6fwshd7fyj7p0mpkeknkyw",
+ "logo": "unknown.png",
+ "symbol": "COPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lchcdq3rqc2kaupt6fwshd7fyj7p0mpkeknkyw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "COPE",
+ "baseDenom": "COPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CopeCoin",
+ "denom": "factory/inj1300jzt0tyjg8x4txsfs79l29k556vqqk22c7es/cope",
+ "logo": "unknown.png",
+ "symbol": "CP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1300jzt0tyjg8x4txsfs79l29k556vqqk22c7es/cope",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CP",
+ "baseDenom": "CP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CopingInj",
+ "denom": "factory/inj1qczkutnsy3nmt909xtyjy4rsrkl2q4dm6aq960/coping",
+ "logo": "unknown.png",
+ "symbol": "CPINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qczkutnsy3nmt909xtyjy4rsrkl2q4dm6aq960/coping",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CPINJ",
+ "baseDenom": "CPINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "coqINJu",
+ "denom": "inj1lefh6m9ldqm55ume0j52fhhw6tzmx9pezkqhzp",
+ "logo": "unknown.png",
+ "symbol": "COQ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lefh6m9ldqm55ume0j52fhhw6tzmx9pezkqhzp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "COQ",
+ "baseDenom": "COQ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CORE",
+ "denom": "inj1363eddx0m5mlyeg9z9qjyvfyutrekre47kmq34",
+ "logo": "unknown.png",
+ "symbol": "CORE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1363eddx0m5mlyeg9z9qjyvfyutrekre47kmq34",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CORE",
+ "baseDenom": "CORE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CORGI",
+ "denom": "inj129t9ywsya0tyma00xy3de7q2wnah7hrw7v9gvk",
+ "logo": "unknown.png",
+ "symbol": "CORGI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj129t9ywsya0tyma00xy3de7q2wnah7hrw7v9gvk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CORGI",
+ "baseDenom": "CORGI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CORONA",
+ "denom": "inj1md4ejkx70463q3suv68t96kjg8vctnpf3ze2uz",
+ "logo": "unknown.png",
+ "symbol": "CORONA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1md4ejkx70463q3suv68t96kjg8vctnpf3ze2uz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CORONA",
+ "baseDenom": "CORONA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cosmo",
+ "denom": "factory/osmo1ua9rmqtmlyv49yety86ys8uqx3hawfkyjr0g7t/Cosmo",
+ "logo": "unknown.png",
+ "symbol": "Cosmo",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/osmo1ua9rmqtmlyv49yety86ys8uqx3hawfkyjr0g7t/Cosmo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Cosmo",
+ "baseDenom": "Cosmo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cosmo",
+ "denom": "factory/inj1je6n5sr4qtx2lhpldfxndntmgls9hf38ncmcez/COSMO",
+ "logo": "unknown.png",
+ "symbol": "COSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1je6n5sr4qtx2lhpldfxndntmgls9hf38ncmcez/COSMO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COSMO",
+ "baseDenom": "COSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cosmos Airdrop Chat",
+ "denom": "ibc/97D9F67F798DBB31DAFA9CF4E791E69399E0FC3FC2F2A54066EE666052E23EF6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/CAC.png",
+ "symbol": "CAC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "97D9F67F798DBB31DAFA9CF4E791E69399E0FC3FC2F2A54066EE666052E23EF6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CAC",
+ "baseDenom": "CAC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Cosmos Hub Atom",
+ "denom": "ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
+ "symbol": "ATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ATOM",
+ "baseDenom": "ATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CosmusCartol",
+ "denom": "ibc/8C82A729E6D74B03797962FE5E1385D87B1DFD3E0B58CF99E0D5948F30A55093",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/CoCa.png",
+ "symbol": "COCA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8C82A729E6D74B03797962FE5E1385D87B1DFD3E0B58CF99E0D5948F30A55093",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COCA",
+ "baseDenom": "COCA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CosmWasm (Wormhole)",
+ "denom": "inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex",
+ "logo": "unknown.png",
+ "symbol": "COSMWASM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "COSMWASM",
+ "baseDenom": "COSMWASM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Costco Hot Dawg",
+ "denom": "inj1hlwjvef4g4tdsa5erdnzfzd8ufcw403a6558nm",
+ "logo": "unknown.png",
+ "symbol": "COST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hlwjvef4g4tdsa5erdnzfzd8ufcw403a6558nm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "COST",
+ "baseDenom": "COST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "covid",
+ "denom": "inj1ce38ehk3cxa7tzcq2rqmgek9hc3gdldvxvtzqy",
+ "logo": "unknown.png",
+ "symbol": "COVID",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ce38ehk3cxa7tzcq2rqmgek9hc3gdldvxvtzqy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COVID",
+ "baseDenom": "COVID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cowboy",
+ "denom": "inj1dp7uy8sa0sevnj65atsdah0sa6wmwtfczwg08d",
+ "logo": "unknown.png",
+ "symbol": "COWBOY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dp7uy8sa0sevnj65atsdah0sa6wmwtfczwg08d",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COWBOY",
+ "baseDenom": "COWBOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CR7",
+ "denom": "factory/inj1v25y8fcxfznd2jkz2eh5cy2520jpvt3felux66/CR7",
+ "logo": "unknown.png",
+ "symbol": "CR7",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1v25y8fcxfznd2jkz2eh5cy2520jpvt3felux66/CR7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CR7",
+ "baseDenom": "CR7",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CRAB APPLE",
+ "denom": "inj1ku7f3v7z3dd9hrp898xs7xnwmmwzw32tkevahk",
+ "logo": "unknown.png",
+ "symbol": "CRAB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ku7f3v7z3dd9hrp898xs7xnwmmwzw32tkevahk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CRAB",
+ "baseDenom": "CRAB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CRASH GAME",
+ "denom": "inj1k3rankglvxjxzsaqrfff4h5ttwcjjh3m4l3pa2",
+ "logo": "unknown.png",
+ "symbol": "CRASH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k3rankglvxjxzsaqrfff4h5ttwcjjh3m4l3pa2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CRASH",
+ "baseDenom": "CRASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CRBRUS",
+ "denom": "ibc/F8D4A8A44D8EF57F83D49624C4C89EECB1472D6D2D1242818CDABA6BC2479DA9",
+ "logo": "unknown.png",
+ "symbol": "CRBRUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F8D4A8A44D8EF57F83D49624C4C89EECB1472D6D2D1242818CDABA6BC2479DA9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRBRUS",
+ "baseDenom": "CRBRUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CRE",
+ "denom": "ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/cre.png",
+ "symbol": "CRE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRE",
+ "baseDenom": "CRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CREATURE",
+ "denom": "inj10qt8pyaenyl2waxaznez6v5dfwn05skd4guugw",
+ "logo": "unknown.png",
+ "symbol": "CRT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10qt8pyaenyl2waxaznez6v5dfwn05skd4guugw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CRT",
+ "baseDenom": "CRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Crescent",
+ "denom": "ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/cre.png",
+ "symbol": "CRE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRE",
+ "baseDenom": "CRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CRINJ",
+ "denom": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj",
+ "logo": "unknown.png",
+ "symbol": "CRINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRINJ",
+ "baseDenom": "CRINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Crinj Token",
+ "denom": "factory/inj1kgyxepqnymx8hy7nydl65w3ecyut566pl70swj/crinj",
+ "logo": "unknown.png",
+ "symbol": "CRINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kgyxepqnymx8hy7nydl65w3ecyut566pl70swj/crinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRINJ",
+ "baseDenom": "CRINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Criss al ronaldo",
+ "denom": "inj19jp9v5wqz065nhr4uhty9psztlqeg6th0wrp35",
+ "logo": "unknown.png",
+ "symbol": "CRseven",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19jp9v5wqz065nhr4uhty9psztlqeg6th0wrp35",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRseven",
+ "baseDenom": "CRseven",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CROCO",
+ "denom": "factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO",
+ "logo": "unknown.png",
+ "symbol": "CROCO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CROCO",
+ "baseDenom": "CROCO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CROCO",
+ "denom": "factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO",
+ "logo": "unknown.png",
+ "symbol": "CROCO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CROCO",
+ "baseDenom": "CROCO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CROCO_NINJA",
+ "denom": "factory/inj1c0tfeukmrw69076w7nffjqhrswp8vm9rr6t3eh/CROCO",
+ "logo": "unknown.png",
+ "symbol": "CROCO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0tfeukmrw69076w7nffjqhrswp8vm9rr6t3eh/CROCO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CROCO",
+ "baseDenom": "CROCO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CROWN",
+ "denom": "inj1wcj4224qpghv94j8lzq8c2m9wa4f2slhqcxm9y",
+ "logo": "unknown.png",
+ "symbol": "CRN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wcj4224qpghv94j8lzq8c2m9wa4f2slhqcxm9y",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CRN",
+ "baseDenom": "CRN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "crypto",
+ "denom": "inj19w5ntlx023v9rnecjuy7yem7s5lrg5gxlfrxfj",
+ "logo": "unknown.png",
+ "symbol": "crypto",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19w5ntlx023v9rnecjuy7yem7s5lrg5gxlfrxfj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "crypto",
+ "baseDenom": "crypto",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CryptoBald",
+ "denom": "inj1p82fws0lzshx2zg2sx5c5f855cf6wht9uudxg0",
+ "logo": "unknown.png",
+ "symbol": "CRYPB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p82fws0lzshx2zg2sx5c5f855cf6wht9uudxg0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CRYPB",
+ "baseDenom": "CRYPB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Crypto Cogs (Wormhole)",
+ "denom": "inj1vnf98sw93chhpagtk54pr4z5dq02nxprhnhnm6",
+ "logo": "unknown.png",
+ "symbol": "xCC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vnf98sw93chhpagtk54pr4z5dq02nxprhnhnm6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "xCC",
+ "baseDenom": "xCC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CULT OF ANONS",
+ "denom": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/ANONS",
+ "logo": "unknown.png",
+ "symbol": "ANONS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/ANONS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ANONS",
+ "baseDenom": "ANONS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "cumslice",
+ "denom": "inj1mpande8tekavagemc998amgkqr5yte0qdvaaah",
+ "logo": "unknown.png",
+ "symbol": "ccsl",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mpande8tekavagemc998amgkqr5yte0qdvaaah",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ccsl",
+ "baseDenom": "ccsl",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CW20",
+ "denom": "inj1c2mjatph5nru36x2kkls0pwpez8jjs7yd23zrl",
+ "logo": "unknown.png",
+ "symbol": "INJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c2mjatph5nru36x2kkls0pwpez8jjs7yd23zrl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJ",
+ "baseDenom": "INJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CW20TT",
+ "denom": "factory/inj1j5hqczk6ee2zsuz7kjt5nshxcjg5g69njxe6ny/inj-cttoken",
+ "logo": "unknown.png",
+ "symbol": "CWT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1j5hqczk6ee2zsuz7kjt5nshxcjg5g69njxe6ny/inj-cttoken",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CWT",
+ "baseDenom": "CWT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CW20-wrapped inj",
+ "denom": "inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/injective.svg",
+ "symbol": "INJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJ",
+ "baseDenom": "INJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CwToken",
+ "denom": "inj1p6cj0r9ne63xhu4yr2vhntkzcfvt8gaxt2a5mw",
+ "logo": "unknown.png",
+ "symbol": "BetaDojo",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p6cj0r9ne63xhu4yr2vhntkzcfvt8gaxt2a5mw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BetaDojo",
+ "baseDenom": "BetaDojo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "CyberGecko",
+ "denom": "inj19k6fxafkf8q595lvwrh3ejf9fuz9m0jusncmm6",
+ "logo": "unknown.png",
+ "symbol": "CBG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19k6fxafkf8q595lvwrh3ejf9fuz9m0jusncmm6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "CBG",
+ "baseDenom": "CBG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dabninja",
+ "denom": "inj1a93l8989wmjupyq4ftnu06836n2jjn7hjee68d",
+ "logo": "unknown.png",
+ "symbol": "dab",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a93l8989wmjupyq4ftnu06836n2jjn7hjee68d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dab",
+ "baseDenom": "dab",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dada",
+ "denom": "inj1yqwjse85pqmum5pkyxz9x4aqdz8etwhervtv66",
+ "logo": "unknown.png",
+ "symbol": "dada",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yqwjse85pqmum5pkyxz9x4aqdz8etwhervtv66",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dada",
+ "baseDenom": "dada",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DAI",
+ "denom": "ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8",
+ "logo": "unknown.png",
+ "symbol": "DAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DAI",
+ "baseDenom": "DAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dai Stablecoin",
+ "denom": "ibc/265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png",
+ "symbol": "DAI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DAI",
+ "baseDenom": "DAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dai Stablecoin (Wormhole)",
+ "denom": "ibc/293F6074F0D8FF3D8A686F11BCA3DD459C54695B8F205C8867E4917A630634C2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/dai.svg",
+ "symbol": "DAI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "293F6074F0D8FF3D8A686F11BCA3DD459C54695B8F205C8867E4917A630634C2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DAI",
+ "baseDenom": "DAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Daisy Duck",
+ "denom": "inj1djnh5pf860722a38lxlxluwaxw6tmycqmzgvhp",
+ "logo": "unknown.png",
+ "symbol": "Daisy",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1djnh5pf860722a38lxlxluwaxw6tmycqmzgvhp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Daisy",
+ "baseDenom": "Daisy",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dalton",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/dalton",
+ "logo": "unknown.png",
+ "symbol": "dalton",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/dalton",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "dalton",
+ "baseDenom": "dalton",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DANJER",
+ "denom": "factory/inj1xzk83u23djtynmz3a3h9k0q454cuhsn3y9jhr3/DANJER",
+ "logo": "unknown.png",
+ "symbol": "DANJER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xzk83u23djtynmz3a3h9k0q454cuhsn3y9jhr3/DANJER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DANJER",
+ "baseDenom": "DANJER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "daojo",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/daojo",
+ "logo": "unknown.png",
+ "symbol": "DAOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/daojo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DAOJO",
+ "baseDenom": "DAOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Daojo",
+ "denom": "inj1dpgkaju5xqpa3vuz6qxqp0vljne044xgycw0d7",
+ "logo": "unknown.png",
+ "symbol": "DAOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dpgkaju5xqpa3vuz6qxqp0vljne044xgycw0d7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DAOJO",
+ "baseDenom": "DAOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DAOJO",
+ "denom": "inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh",
+ "logo": "unknown.png",
+ "symbol": "DAOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DAOJO",
+ "baseDenom": "DAOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DAOJO",
+ "denom": "inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh",
+ "logo": "unknown.png",
+ "symbol": "DAOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DAOJO",
+ "baseDenom": "DAOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DAOJO",
+ "denom": "inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh",
+ "logo": "unknown.png",
+ "symbol": "DAOJO",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "DAOJO",
+ "baseDenom": "DAOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "D.a.r.e - Drugs Are Really Expensive",
+ "denom": "inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej",
+ "logo": "https://app.astroport.fi/tokens/generated/drugs.jpg",
+ "symbol": "Drugs",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Drugs",
+ "baseDenom": "Drugs",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DarkDeathCoin",
+ "denom": "factory/inj133nvqdan8c79fhqfkmc3h59v30v4urgwuuejke/DarkDeath",
+ "logo": "unknown.png",
+ "symbol": "DarkDeath",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj133nvqdan8c79fhqfkmc3h59v30v4urgwuuejke/DarkDeath",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DarkDeath",
+ "baseDenom": "DarkDeath",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dark Knight",
+ "denom": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/knight",
+ "logo": "unknown.png",
+ "symbol": "KNIGHT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/knight",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KNIGHT",
+ "baseDenom": "KNIGHT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Datoshi",
+ "denom": "inj1rp63ym52lawyuha4wvn8gy33ccqtpj5pu0n2ef",
+ "logo": "unknown.png",
+ "symbol": "DATOSHI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rp63ym52lawyuha4wvn8gy33ccqtpj5pu0n2ef",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DATOSHI",
+ "baseDenom": "DATOSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DDLTest",
+ "denom": "inj10zhn525tfxf5j34dg5uh5js4fr2plr4yydasxd",
+ "logo": "unknown.png",
+ "symbol": "DDLTest",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10zhn525tfxf5j34dg5uh5js4fr2plr4yydasxd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DDLTest",
+ "baseDenom": "DDLTest",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DeFiKings (Wormhole)",
+ "denom": "inj18h33x5qcr44feutwr2cgazaalcqwtpez57nutx",
+ "logo": "unknown.png",
+ "symbol": "DEFIKINGS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18h33x5qcr44feutwr2cgazaalcqwtpez57nutx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DEFIKINGS",
+ "baseDenom": "DEFIKINGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEGGZ",
+ "denom": "inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz",
+ "logo": "unknown.png",
+ "symbol": "DEGGZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DEGGZ",
+ "baseDenom": "DEGGZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEK on INJ",
+ "denom": "factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dekinj",
+ "logo": "unknown.png",
+ "symbol": "DEK",
+ "decimals": 1,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dekinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 1,
+ "symbol": "DEK",
+ "baseDenom": "DEK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Del Piero",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/delpiero",
+ "logo": "unknown.png",
+ "symbol": "DelPiero",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/delpiero",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DelPiero",
+ "baseDenom": "DelPiero",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEXTER",
+ "denom": "inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEXTER",
+ "denom": "inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEXTER",
+ "denom": "inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEXTER",
+ "denom": "inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DEXTER",
+ "denom": "inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dexter's Lab",
+ "denom": "inj12y0ucglt3twtwaaklgce3vpc95gxe67lpu2ghc",
+ "logo": "unknown.png",
+ "symbol": "DEXTER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12y0ucglt3twtwaaklgce3vpc95gxe67lpu2ghc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DEXTER",
+ "baseDenom": "DEXTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DGNZ",
+ "denom": "factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/DGNZ",
+ "logo": "unknown.png",
+ "symbol": "DGNZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/DGNZ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DGNZ",
+ "baseDenom": "DGNZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DGNZBaby",
+ "denom": "inj1tyvchyp04yscelq30q6vzngn9wvmjw446sw786",
+ "logo": "unknown.png",
+ "symbol": "BABYDGNZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tyvchyp04yscelq30q6vzngn9wvmjw446sw786",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYDGNZ",
+ "baseDenom": "BABYDGNZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DICE",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/DICE",
+ "logo": "unknown.png",
+ "symbol": "DICE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/DICE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DICE",
+ "baseDenom": "DICE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DICK TOKEN",
+ "denom": "factory/inj1wqk200kkyh53d5px5zc6v8usq3pluk07r4pxpu/DICK",
+ "logo": "unknown.png",
+ "symbol": "DICK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wqk200kkyh53d5px5zc6v8usq3pluk07r4pxpu/DICK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DICK",
+ "baseDenom": "DICK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dinheiro",
+ "denom": "ibc/306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Dinheiros.png",
+ "symbol": "DINHEIROS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DINHEIROS",
+ "baseDenom": "DINHEIROS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DINOINJ",
+ "denom": "inj13fnjq02hwxejdm584v9qhrh66mt4l3j8l3yh6f",
+ "logo": "unknown.png",
+ "symbol": "INJDINO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13fnjq02hwxejdm584v9qhrh66mt4l3j8l3yh6f",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJDINO",
+ "baseDenom": "INJDINO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Discordels Token",
+ "denom": "factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL",
+ "logo": "unknown.png",
+ "symbol": "DDL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DDL",
+ "baseDenom": "DDL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DITTO",
+ "denom": "inj1vtg4almersef8pnyh5lptwvcdxnrgqp0zkxafu",
+ "logo": "unknown.png",
+ "symbol": "DITTO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vtg4almersef8pnyh5lptwvcdxnrgqp0zkxafu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DITTO",
+ "baseDenom": "DITTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dmo",
+ "denom": "inj10uwj0vx6d42p67z8jl75eh4tgxrgm3mp4mqwq3",
+ "logo": "unknown.png",
+ "symbol": "dmo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10uwj0vx6d42p67z8jl75eh4tgxrgm3mp4mqwq3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dmo",
+ "baseDenom": "dmo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dmo",
+ "denom": "inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd",
+ "logo": "unknown.png",
+ "symbol": "dmo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dmo",
+ "baseDenom": "dmo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dmoone",
+ "denom": "inj12qlppehc4fsfduv46gmtgu5n38ngl6annnr4r4",
+ "logo": "unknown.png",
+ "symbol": "dmoone",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12qlppehc4fsfduv46gmtgu5n38ngl6annnr4r4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dmoone",
+ "baseDenom": "dmoone",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dmotree",
+ "denom": "inj15x7u49kw47krzlhrrj9mr5gq20d3797kv3fh3y",
+ "logo": "unknown.png",
+ "symbol": "dmotree",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15x7u49kw47krzlhrrj9mr5gq20d3797kv3fh3y",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dmotree",
+ "baseDenom": "dmotree",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dmotwo",
+ "denom": "inj1tegs6sre80hhvyj204x5pu52e5p3p9pl9vy4ue",
+ "logo": "unknown.png",
+ "symbol": "dmotwo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tegs6sre80hhvyj204x5pu52e5p3p9pl9vy4ue",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dmotwo",
+ "baseDenom": "dmotwo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DNA",
+ "denom": "ibc/AE8E20F37C6A72187633E418169758A6974DD18AB460ABFC74820AAC364D2A13",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/DNA.png",
+ "symbol": "DNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AE8E20F37C6A72187633E418169758A6974DD18AB460ABFC74820AAC364D2A13",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DNA",
+ "baseDenom": "DNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dndave",
+ "denom": "inj1acxjvpu68t2nuw6950606gw2k59qt43zfxrcwq",
+ "logo": "unknown.png",
+ "symbol": "Dnd",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1acxjvpu68t2nuw6950606gw2k59qt43zfxrcwq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Dnd",
+ "baseDenom": "Dnd",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOCE FINANCE",
+ "denom": "inj1xx8qlk3g9g3cyqs409strtxq7fuphzwzd4mqzw",
+ "logo": "unknown.png",
+ "symbol": "DOCE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xx8qlk3g9g3cyqs409strtxq7fuphzwzd4mqzw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOCE",
+ "baseDenom": "DOCE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGE",
+ "denom": "factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE",
+ "logo": "unknown.png",
+ "symbol": "DOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGE",
+ "baseDenom": "DOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DogeCoin",
+ "denom": "inj1n4hl6mxv749jkqsrhu23z24e2p3s55de98jypt",
+ "logo": "unknown.png",
+ "symbol": "Doge",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n4hl6mxv749jkqsrhu23z24e2p3s55de98jypt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Doge",
+ "baseDenom": "Doge",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGECoin",
+ "denom": "factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGE",
+ "logo": "unknown.png",
+ "symbol": "DOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGE",
+ "baseDenom": "DOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGEINJ",
+ "denom": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/DOGEINJ",
+ "logo": "unknown.png",
+ "symbol": "DOGEINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/DOGEINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGEINJ",
+ "baseDenom": "DOGEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGEINJCoin",
+ "denom": "factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGEINJ",
+ "logo": "unknown.png",
+ "symbol": "DOGEINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGEINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGEINJ",
+ "baseDenom": "DOGEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DogeKira",
+ "denom": "inj1xux4gj0g3u8qmuasz7fsk99c0hgny4wl7hfzqu",
+ "logo": "unknown.png",
+ "symbol": "DOGEKIRA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xux4gj0g3u8qmuasz7fsk99c0hgny4wl7hfzqu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGEKIRA",
+ "baseDenom": "DOGEKIRA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DogeNinja",
+ "denom": "inj1wjv6l090h9wgwr6lc58mj0xphg50mzt8y6dfsy",
+ "logo": "unknown.png",
+ "symbol": "DOGENINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wjv6l090h9wgwr6lc58mj0xphg50mzt8y6dfsy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGENINJA",
+ "baseDenom": "DOGENINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DogeWaifu",
+ "denom": "inj1py5zka74z0h02gqqaexllddn8232vqxsc946qf",
+ "logo": "unknown.png",
+ "symbol": "WAIFUDOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1py5zka74z0h02gqqaexllddn8232vqxsc946qf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WAIFUDOGE",
+ "baseDenom": "WAIFUDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Doge Wif Karate",
+ "denom": "factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate",
+ "logo": "unknown.png",
+ "symbol": "KARATE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KARATE",
+ "baseDenom": "KARATE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Doginbread",
+ "denom": "inj1sx9mflrf6jvnzantd8rlzqh9tahgdyul5hq4pc",
+ "logo": "unknown.png",
+ "symbol": "DIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sx9mflrf6jvnzantd8rlzqh9tahgdyul5hq4pc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DIB",
+ "baseDenom": "DIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGINJBREAD",
+ "denom": "inj1nzngv0ch009jyc0mvm5h55d38c32sqp2fjjws9",
+ "logo": "unknown.png",
+ "symbol": "DIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nzngv0ch009jyc0mvm5h55d38c32sqp2fjjws9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DIB",
+ "baseDenom": "DIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOGINJBREAD",
+ "denom": "inj1s4srnj2cdjf3cgun57swe2je8u7n3tkm6kz257",
+ "logo": "unknown.png",
+ "symbol": "DIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s4srnj2cdjf3cgun57swe2je8u7n3tkm6kz257",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DIB",
+ "baseDenom": "DIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog of Thunder",
+ "denom": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/DOGOFTHUN",
+ "logo": "unknown.png",
+ "symbol": "DOGOFTHUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/DOGOFTHUN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGOFTHUN",
+ "baseDenom": "DOGOFTHUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog wif AK47",
+ "denom": "factory/inj1y207pve646dtac77v7qehw85heuy92c03t7t07/ak47",
+ "logo": "unknown.png",
+ "symbol": "AK47",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1y207pve646dtac77v7qehw85heuy92c03t7t07/ak47",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AK47",
+ "baseDenom": "AK47",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DogWifhat",
+ "denom": "factory/inj19xkrf82jar2qmf4tn92fajspq2e0warfufplhf/DogWifhat",
+ "logo": "unknown.png",
+ "symbol": "WIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj19xkrf82jar2qmf4tn92fajspq2e0warfufplhf/DogWifhat",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WIF",
+ "baseDenom": "WIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dogwifhat (Wormhole)",
+ "denom": "inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl",
+ "logo": "unknown.png",
+ "symbol": "$WIF",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "$WIF",
+ "baseDenom": "$WIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog Wif Katana",
+ "denom": "factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/katana.png",
+ "symbol": "KATANA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KATANA",
+ "baseDenom": "KATANA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog wif nunchucks",
+ "denom": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/ninja.png",
+ "symbol": "NINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJA",
+ "baseDenom": "NINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dogwifshoes",
+ "denom": "factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoes",
+ "logo": "unknown.png",
+ "symbol": "$wifs",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoes",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "$wifs",
+ "baseDenom": "$wifs",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dogwifshoess",
+ "denom": "factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoess",
+ "logo": "unknown.png",
+ "symbol": "dogwifshoess",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoess",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "dogwifshoess",
+ "baseDenom": "dogwifshoess",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog Wif Token (Wormhole)",
+ "denom": "inj16ykyeaggxaqzj3x85rjuk3xunky7mg78yd2q32",
+ "logo": "unknown.png",
+ "symbol": "DOGWIF",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ykyeaggxaqzj3x85rjuk3xunky7mg78yd2q32",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DOGWIF",
+ "baseDenom": "DOGWIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dog Wif Token (Wormhole)",
+ "denom": "inj1qhu9yxtp0x9gkn0n89hcw8c0wc8nhuke8zgw0d",
+ "logo": "unknown.png",
+ "symbol": "DOGWIF",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qhu9yxtp0x9gkn0n89hcw8c0wc8nhuke8zgw0d",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DOGWIF",
+ "baseDenom": "DOGWIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOJO",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923",
+ "logo": "unknown.png",
+ "symbol": "DOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOJO",
+ "denom": "inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z",
+ "logo": "unknown.png",
+ "symbol": "DOJO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DojoBit",
+ "denom": "inj1wwga56n4glj9x7cnuweklepl59hp95g9ysg283",
+ "logo": "unknown.png",
+ "symbol": "DBTT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wwga56n4glj9x7cnuweklepl59hp95g9ysg283",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DBTT",
+ "baseDenom": "DBTT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo Bot",
+ "denom": "factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/DOJO",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/dojo.png",
+ "symbol": "DOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/DOJO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOJO DOG",
+ "denom": "factory/inj1s0awzzjfr92mu6t6h85jmq6s9f6hxnqwpmy3f7/DOJODOG",
+ "logo": "unknown.png",
+ "symbol": "DOJODOG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s0awzzjfr92mu6t6h85jmq6s9f6hxnqwpmy3f7/DOJODOG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOJODOG",
+ "baseDenom": "DOJODOG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojodoge",
+ "denom": "inj1nueaw6mc7t7703t65f7xamj63zwaew3dqx90sn",
+ "logo": "unknown.png",
+ "symbol": "dojodoge",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nueaw6mc7t7703t65f7xamj63zwaew3dqx90sn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dojodoge",
+ "baseDenom": "dojodoge",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojodojo",
+ "denom": "inj1ht0qh7csdl3txk6htnalf8qpz26xzuq78x7h87",
+ "logo": "unknown.png",
+ "symbol": "DDD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ht0qh7csdl3txk6htnalf8qpz26xzuq78x7h87",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DDD",
+ "baseDenom": "DDD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo-Injective (Wormhole)",
+ "denom": "inj1swqv8e6e8tmyeqwq3rp43pfsr75p8wey7vrh0u",
+ "logo": "unknown.png",
+ "symbol": "DOINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1swqv8e6e8tmyeqwq3rp43pfsr75p8wey7vrh0u",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DOINJ",
+ "baseDenom": "DOINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojoinu",
+ "denom": "inj14hszr5wnhshu4zre6e4l5ae2el9v2420eypu6k",
+ "logo": "unknown.png",
+ "symbol": "dojoinu",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14hszr5wnhshu4zre6e4l5ae2el9v2420eypu6k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dojoinu",
+ "baseDenom": "dojoinu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOJOSHIBA",
+ "denom": "inj17n55k95up6tvf6ajcqs6cjwpty0j3qxxfv05vd",
+ "logo": "unknown.png",
+ "symbol": "DOJSHIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17n55k95up6tvf6ajcqs6cjwpty0j3qxxfv05vd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOJSHIB",
+ "baseDenom": "DOJSHIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojo staked inj",
+ "denom": "inj1nfsxxz3q59f0yyqsjjnr7ze020klxyfefy6wcg",
+ "logo": "unknown.png",
+ "symbol": "dsINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nfsxxz3q59f0yyqsjjnr7ze020klxyfefy6wcg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "dsINJ",
+ "baseDenom": "dsINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo Staked INJ",
+ "denom": "inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9",
+ "logo": "https://dojo.trading/images/tokens/dinj.svg",
+ "symbol": "dINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dINJ",
+ "baseDenom": "dINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojo swap",
+ "denom": "inj1p0ccaveldsv7hq4s53378und5ke9jz24rtsr9z",
+ "logo": "unknown.png",
+ "symbol": "dojo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p0ccaveldsv7hq4s53378und5ke9jz24rtsr9z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "dojo",
+ "baseDenom": "dojo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojoswap",
+ "denom": "inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38",
+ "logo": "unknown.png",
+ "symbol": "DOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dojoswap",
+ "denom": "inj1tml6e474rxgc0gc5pd8ljmheqep5wrqrm9m9ks",
+ "logo": "unknown.png",
+ "symbol": "dojoswap",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tml6e474rxgc0gc5pd8ljmheqep5wrqrm9m9ks",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "dojoswap",
+ "baseDenom": "dojoswap",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOJO SWAP",
+ "denom": "inj1qzqlurx22acr4peuawyj3y95v9r9sdqqrafwqa",
+ "logo": "unknown.png",
+ "symbol": "DOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qzqlurx22acr4peuawyj3y95v9r9sdqqrafwqa",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo Swap Liquidity Token",
+ "denom": "inj1ynqtgucs3z20n80c0zammyqd7skfgc7kyanc2j",
+ "logo": "unknown.png",
+ "symbol": "Ulp",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ynqtgucs3z20n80c0zammyqd7skfgc7kyanc2j",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Ulp",
+ "baseDenom": "Ulp",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo Token",
+ "denom": "inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/dojo.svg",
+ "symbol": "DOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DOJO",
+ "baseDenom": "DOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dojo Whippet",
+ "denom": "inj1rreafnwdwc9mu7rm6sm2nwwjd2yw46h26rzz36",
+ "logo": "unknown.png",
+ "symbol": "DWHPPET",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rreafnwdwc9mu7rm6sm2nwwjd2yw46h26rzz36",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DWHPPET",
+ "baseDenom": "DWHPPET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DOKI",
+ "denom": "ibc/EA7CE127E1CFD7822AD169019CAFDD63D0F5A278DCE974F438099BF16C99FB8B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/odin/images/doki_Logo.png",
+ "symbol": "DOKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EA7CE127E1CFD7822AD169019CAFDD63D0F5A278DCE974F438099BF16C99FB8B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOKI",
+ "baseDenom": "DOKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Don",
+ "denom": "inj19yv3uvkww6gjda2jn90aayrefjacclsrulr5n2",
+ "logo": "unknown.png",
+ "symbol": "DON",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19yv3uvkww6gjda2jn90aayrefjacclsrulr5n2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DON",
+ "baseDenom": "DON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DONALD TRUMP",
+ "denom": "inj1mdf4myxfhgranmzew5kg39nv5wtljwksm9jyuj",
+ "logo": "unknown.png",
+ "symbol": "TRUMP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mdf4myxfhgranmzew5kg39nv5wtljwksm9jyuj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRUMP",
+ "baseDenom": "TRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DonatelloShurikenLipsInjection2dust",
+ "denom": "factory/inj1ya7ltz2mkj0z4w25lxueh7emz6qhwe33m4knx8/INJECTIV",
+ "logo": "unknown.png",
+ "symbol": "INJECTIV",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ya7ltz2mkj0z4w25lxueh7emz6qhwe33m4knx8/INJECTIV",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJECTIV",
+ "baseDenom": "INJECTIV",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DonatelloShurikenLipsInjection2dust",
+ "denom": "factory/inj1x04zxeyrjc7ke5nt7ht3v3gkevxdk7rr0fx8qp/INJECTIV",
+ "logo": "unknown.png",
+ "symbol": "INJECTIV",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1x04zxeyrjc7ke5nt7ht3v3gkevxdk7rr0fx8qp/INJECTIV",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJECTIV",
+ "baseDenom": "INJECTIV",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DONK",
+ "denom": "inj1jargzf3ndsadyznuj7p3yrp5grdxsthxyfp0fj",
+ "logo": "unknown.png",
+ "symbol": "DONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jargzf3ndsadyznuj7p3yrp5grdxsthxyfp0fj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DONK",
+ "baseDenom": "DONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "donkey",
+ "denom": "inj1ctczwjzhjjes7vch52anvr9nfhdudq6586kyze",
+ "logo": "unknown.png",
+ "symbol": "DONKEY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ctczwjzhjjes7vch52anvr9nfhdudq6586kyze",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DONKEY",
+ "baseDenom": "DONKEY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DONNA",
+ "denom": "inj17k4lmkjl963pcugn389d070rh0n70f5mtrzrvv",
+ "logo": "unknown.png",
+ "symbol": "DONNA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17k4lmkjl963pcugn389d070rh0n70f5mtrzrvv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DONNA",
+ "baseDenom": "DONNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DONOTBUY",
+ "denom": "inj197p39k7ued8e6r5mnekg47hphap8zcku8nws5y",
+ "logo": "unknown.png",
+ "symbol": "DONOTBUY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj197p39k7ued8e6r5mnekg47hphap8zcku8nws5y",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DONOTBUY",
+ "baseDenom": "DONOTBUY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dont Buy This",
+ "denom": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/dbt",
+ "logo": "unknown.png",
+ "symbol": "DBT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/dbt",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DBT",
+ "baseDenom": "DBT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Doodles Original Collection",
+ "denom": "factory/inj1yjhn49auvxjqe2y3hxl9uwwzsjynl4ms0kq6d4/Doodle",
+ "logo": "unknown.png",
+ "symbol": "Doodle",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yjhn49auvxjqe2y3hxl9uwwzsjynl4ms0kq6d4/Doodle",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Doodle",
+ "baseDenom": "Doodle",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Doomer",
+ "denom": "factory/inj1lqv3a2hxggzall4jekg7lpe6lwqsjevnm9ztnf/doomer",
+ "logo": "unknown.png",
+ "symbol": "DOOMER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lqv3a2hxggzall4jekg7lpe6lwqsjevnm9ztnf/doomer",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOOMER",
+ "baseDenom": "DOOMER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dope Token (Wormhole)",
+ "denom": "inj1lrewwyn3m2dms6ny7m59x9s5wwcxs5zf5y2w20",
+ "logo": "unknown.png",
+ "symbol": "DOPE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lrewwyn3m2dms6ny7m59x9s5wwcxs5zf5y2w20",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DOPE",
+ "baseDenom": "DOPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dora Vota",
+ "denom": "ibc/BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/doravota/images/dora.svg",
+ "symbol": "DORA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DORA",
+ "baseDenom": "DORA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dot",
+ "denom": "ibc/B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593",
+ "logo": "unknown.png",
+ "symbol": "DOT",
+ "decimals": 10,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593",
+ "path": "",
+ "channelId": "",
+ "decimals": 10,
+ "symbol": "DOT",
+ "baseDenom": "DOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DRAGON",
+ "denom": "factory/inj1apk9x267a3qplc6q9a22xsvd2k96g0655xw59m/DRAGON",
+ "logo": "unknown.png",
+ "symbol": "DRAGON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1apk9x267a3qplc6q9a22xsvd2k96g0655xw59m/DRAGON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DRAGON",
+ "baseDenom": "DRAGON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DRAGON",
+ "denom": "factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON",
+ "logo": "unknown.png",
+ "symbol": "DRAGON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DRAGON",
+ "baseDenom": "DRAGON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dragon Ball ",
+ "denom": "inj14g9hcmdzlwvafsmrka6gmd22mhz7jd3cm5d8e6",
+ "logo": "unknown.png",
+ "symbol": "DRACO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14g9hcmdzlwvafsmrka6gmd22mhz7jd3cm5d8e6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "DRACO",
+ "baseDenom": "DRACO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dragon Coin",
+ "denom": "inj1ftfc7f0s7ynkr3n7fnv37qpskfu3mu69ethpkq",
+ "logo": "unknown.png",
+ "symbol": "DRG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ftfc7f0s7ynkr3n7fnv37qpskfu3mu69ethpkq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DRG",
+ "baseDenom": "DRG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dragon Coin",
+ "denom": "inj15jg279nugsgqplswynqqfal29tav9va5wzf56t",
+ "logo": "unknown.png",
+ "symbol": "DRG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15jg279nugsgqplswynqqfal29tav9va5wzf56t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DRG",
+ "baseDenom": "DRG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dr. EggMan (Wormhole)",
+ "denom": "inj1hjym72e40g8yf3dd3lah98acmkc6ms5chdxh6g",
+ "logo": "unknown.png",
+ "symbol": "EGGMAN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hjym72e40g8yf3dd3lah98acmkc6ms5chdxh6g",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "EGGMAN",
+ "baseDenom": "EGGMAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DROGO",
+ "denom": "ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/drogo.png",
+ "symbol": "DROGO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DROGO",
+ "baseDenom": "DROGO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Drogon the Injective Dragon",
+ "denom": "inj1h86egqfpypg8q3jp9t607t0y8ea6fdpv66gx0j",
+ "logo": "unknown.png",
+ "symbol": "DROGON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h86egqfpypg8q3jp9t607t0y8ea6fdpv66gx0j",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DROGON",
+ "baseDenom": "DROGON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DUBAIcoin",
+ "denom": "inj1gsm06ndeq620sp73lu26nz76rqfpy9qtg7xfdw",
+ "logo": "unknown.png",
+ "symbol": "DUBAIcoin",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gsm06ndeq620sp73lu26nz76rqfpy9qtg7xfdw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DUBAIcoin",
+ "baseDenom": "DUBAIcoin",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DUBDUB",
+ "denom": "inj1nwm43spkusyva27208recgwya2yu2yja934x0n",
+ "logo": "unknown.png",
+ "symbol": "DUBDUB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nwm43spkusyva27208recgwya2yu2yja934x0n",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DUBDUB",
+ "baseDenom": "DUBDUB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DUDE",
+ "denom": "factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/DUDE",
+ "logo": "unknown.png",
+ "symbol": "DUDE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/DUDE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DUDE",
+ "baseDenom": "DUDE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Duel",
+ "denom": "inj1ghackffa8xhf0zehv6n8j3gjzpz532c4h2zkkp",
+ "logo": "unknown.png",
+ "symbol": "Duel",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ghackffa8xhf0zehv6n8j3gjzpz532c4h2zkkp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Duel",
+ "baseDenom": "Duel",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DUMB",
+ "denom": "factory/inj122c9quyv6aq5e2kr6gdcazdxy2eq2u2jgycrly/DUMB",
+ "logo": "unknown.png",
+ "symbol": "DUMB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj122c9quyv6aq5e2kr6gdcazdxy2eq2u2jgycrly/DUMB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DUMB",
+ "baseDenom": "DUMB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DUMP BEOPLE",
+ "denom": "inj13d8cpsfc9gxxspdatucvngrvs435zddscapyhk",
+ "logo": "unknown.png",
+ "symbol": "DUMB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13d8cpsfc9gxxspdatucvngrvs435zddscapyhk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DUMB",
+ "baseDenom": "DUMB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Durian Token",
+ "denom": "factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/SMELLY",
+ "logo": "unknown.png",
+ "symbol": "SMELLY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/SMELLY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SMELLY",
+ "baseDenom": "SMELLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DurianToken",
+ "denom": "inj16hl3nlwlg2va07y4zh09vzh9xtxy6uwpmy0f5l",
+ "logo": "unknown.png",
+ "symbol": "babySMELLY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16hl3nlwlg2va07y4zh09vzh9xtxy6uwpmy0f5l",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySMELLY",
+ "baseDenom": "babySMELLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Durov",
+ "denom": "inj1y73laasqpykehcf67hh3z7vn899sdmn6vtsg22",
+ "logo": "unknown.png",
+ "symbol": "DUROV",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y73laasqpykehcf67hh3z7vn899sdmn6vtsg22",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DUROV",
+ "baseDenom": "DUROV",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dwake",
+ "denom": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/Dwake",
+ "logo": "unknown.png",
+ "symbol": "Dwake",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/Dwake",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Dwake",
+ "baseDenom": "Dwake",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "DWIFLUCK",
+ "denom": "factory/inj1gn54l05v5kqy5zmzk5l6wydzgvhvx2srm7rdkg/DWIFLUCK",
+ "logo": "unknown.png",
+ "symbol": "DWIFLUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gn54l05v5kqy5zmzk5l6wydzgvhvx2srm7rdkg/DWIFLUCK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DWIFLUCK",
+ "baseDenom": "DWIFLUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "dYdX",
+ "denom": "ibc/7B911D87318EB1D6A472E9F08FE93955371DF3E1DFFE851A58F4919450FFE7AA",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/dydx/images/dydx.png",
+ "symbol": "DYDX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7B911D87318EB1D6A472E9F08FE93955371DF3E1DFFE851A58F4919450FFE7AA",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DYDX",
+ "baseDenom": "DYDX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Dymension",
+ "denom": "ibc/346B01430895DC4273D1FAFF470A9CE1155BF6E9F845E625374D019EC9EE796D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/dymension/images/dymension-logo.png",
+ "symbol": "DYM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "346B01430895DC4273D1FAFF470A9CE1155BF6E9F845E625374D019EC9EE796D",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DYM",
+ "baseDenom": "DYM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EASPORTS",
+ "denom": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EASPORTS",
+ "logo": "unknown.png",
+ "symbol": "EASPORTS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EASPORTS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "EASPORTS",
+ "baseDenom": "EASPORTS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Eclipsis ",
+ "denom": "inj1vzjfp3swqhhjp56w40j4cmekjpmrkq6d3ua7c8",
+ "logo": "unknown.png",
+ "symbol": "ECPS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vzjfp3swqhhjp56w40j4cmekjpmrkq6d3ua7c8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ECPS",
+ "baseDenom": "ECPS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EcoChain",
+ "denom": "factory/inj1tquax9jy4t7lg2uya4yclhlqlh5a75ykha2ewr/EcoChain",
+ "logo": "unknown.png",
+ "symbol": "ECOCH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1tquax9jy4t7lg2uya4yclhlqlh5a75ykha2ewr/EcoChain",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ECOCH",
+ "baseDenom": "ECOCH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EIGHTK",
+ "denom": "inj1hzh43wet6vskk0ltfm27dm9lq2jps2r6e4xvz8",
+ "logo": "unknown.png",
+ "symbol": "ETK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hzh43wet6vskk0ltfm27dm9lq2jps2r6e4xvz8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ETK",
+ "baseDenom": "ETK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELEMANT",
+ "denom": "inj17z53rhx0w6szyhuakgnj9y0khprrp2rmdg0djz",
+ "logo": "unknown.png",
+ "symbol": "ELMNT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17z53rhx0w6szyhuakgnj9y0khprrp2rmdg0djz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELMNT",
+ "baseDenom": "ELMNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Elemental Token",
+ "denom": "inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2",
+ "logo": "unknown.png",
+ "symbol": "ELEM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ELEM",
+ "baseDenom": "ELEM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "El Inyectivo Cartel",
+ "denom": "factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/cartel",
+ "logo": "unknown.png",
+ "symbol": "CARTEL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/cartel",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CARTEL",
+ "baseDenom": "CARTEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON",
+ "denom": "factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON",
+ "denom": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON",
+ "denom": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON",
+ "denom": "factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON-GATED-PENIS",
+ "denom": "inj1v0ahzyf4mup6eunf4hswcs9dq3ffea4nqxdhmq",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1v0ahzyf4mup6eunf4hswcs9dq3ffea4nqxdhmq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Elonium",
+ "denom": "inj1uu3dc475nuhz68j3g4s3cpxzdfczpa3k4dcqz7",
+ "logo": "unknown.png",
+ "symbol": "ELM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uu3dc475nuhz68j3g4s3cpxzdfczpa3k4dcqz7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ELM",
+ "baseDenom": "ELM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ELON (Wormhole)",
+ "denom": "inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0",
+ "logo": "unknown.png",
+ "symbol": "ELON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELON",
+ "baseDenom": "ELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Elon Xmas (Wormhole)",
+ "denom": "inj1nmrve743hvmxzv7e3p37nyjl2tf8fszcqg44ma",
+ "logo": "unknown.png",
+ "symbol": "ELONXMAS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nmrve743hvmxzv7e3p37nyjl2tf8fszcqg44ma",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ELONXMAS",
+ "baseDenom": "ELONXMAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EMP On Injective",
+ "denom": "inj1qm7x53esf29xpd2l8suuxtxgucrcv8fkd52p7t",
+ "logo": "unknown.png",
+ "symbol": "EMP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qm7x53esf29xpd2l8suuxtxgucrcv8fkd52p7t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EMP",
+ "baseDenom": "EMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ENA",
+ "denom": "peggy0x57e114B691Db790C35207b2e685D4A43181e6061",
+ "logo": "unknown.png",
+ "symbol": "ENA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x57e114B691Db790C35207b2e685D4A43181e6061",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ENA",
+ "baseDenom": "ENA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Enjineer",
+ "denom": "inj1xsc3wp2m654tk62z7y98egtdvd0mqcs7lp4lj0",
+ "logo": "unknown.png",
+ "symbol": "ENJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xsc3wp2m654tk62z7y98egtdvd0mqcs7lp4lj0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ENJ",
+ "baseDenom": "ENJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "enuk",
+ "denom": "inj1x0km562rxugpvxq8nucy7pdmefguv6xxumng27",
+ "logo": "unknown.png",
+ "symbol": "enuk",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x0km562rxugpvxq8nucy7pdmefguv6xxumng27",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "enuk",
+ "baseDenom": "enuk",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Epic",
+ "denom": "inj1r2gjtqgzhfcm4wgvmctpuul2m700v4ml24l7cq",
+ "logo": "unknown.png",
+ "symbol": "Rush",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r2gjtqgzhfcm4wgvmctpuul2m700v4ml24l7cq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Rush",
+ "baseDenom": "Rush",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPIC",
+ "denom": "inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5",
+ "logo": "unknown.png",
+ "symbol": "EPIC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPIC",
+ "baseDenom": "EPIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPIC",
+ "denom": "inj1ewmqrnxm8a5achem6zqg44w7lut3krls4m5mnu",
+ "logo": "unknown.png",
+ "symbol": "EPIC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ewmqrnxm8a5achem6zqg44w7lut3krls4m5mnu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPIC",
+ "baseDenom": "EPIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICEIGHT",
+ "denom": "inj19dd2lqy8vpcl3kc9ftz3y7xna6qyevuhq7zxkz",
+ "logo": "unknown.png",
+ "symbol": "EPICEIGHT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19dd2lqy8vpcl3kc9ftz3y7xna6qyevuhq7zxkz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICEIGHT",
+ "baseDenom": "EPICEIGHT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICEL",
+ "denom": "inj1hz2e3fasvhhuxywx96g5vu8nnuvak5ca4r7jsk",
+ "logo": "unknown.png",
+ "symbol": "EPICEL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hz2e3fasvhhuxywx96g5vu8nnuvak5ca4r7jsk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICEL",
+ "baseDenom": "EPICEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICFIVE",
+ "denom": "inj1cavzx4eswevydc8hawdy362z3a2nucku8c0lp6",
+ "logo": "unknown.png",
+ "symbol": "EPICFIVE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cavzx4eswevydc8hawdy362z3a2nucku8c0lp6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICFIVE",
+ "baseDenom": "EPICFIVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICfour",
+ "denom": "inj14m6t04x80r2f78l26wxz3vragpy892pdmshcat",
+ "logo": "unknown.png",
+ "symbol": "EPICfour",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14m6t04x80r2f78l26wxz3vragpy892pdmshcat",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICfour",
+ "baseDenom": "EPICfour",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICNINE",
+ "denom": "inj1a6jfnquus2vrfshwvurae9wkefu0k3n8ay6u4r",
+ "logo": "unknown.png",
+ "symbol": "EPICNINE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a6jfnquus2vrfshwvurae9wkefu0k3n8ay6u4r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICNINE",
+ "baseDenom": "EPICNINE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICONE",
+ "denom": "inj16nenk0jqfcgj8qhfap9n7ldjzke97rw9auxptx",
+ "logo": "unknown.png",
+ "symbol": "EPICONE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16nenk0jqfcgj8qhfap9n7ldjzke97rw9auxptx",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICONE",
+ "baseDenom": "EPICONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICSEVEN",
+ "denom": "inj19tval5k0qjgqqkuw0v8g5qz9sautru4jr9rz7e",
+ "logo": "unknown.png",
+ "symbol": "EPICSEVEN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19tval5k0qjgqqkuw0v8g5qz9sautru4jr9rz7e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICSEVEN",
+ "baseDenom": "EPICSEVEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICSIX",
+ "denom": "inj1gyf3358u6juk3xvrrp7vlez9yuk2ek33dhqdau",
+ "logo": "unknown.png",
+ "symbol": "EPICSIX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gyf3358u6juk3xvrrp7vlez9yuk2ek33dhqdau",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICSIX",
+ "baseDenom": "EPICSIX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICTE",
+ "denom": "inj1c6mpj4p2dvxdgqq9l0sasz0uzu4gah7k3g03xf",
+ "logo": "unknown.png",
+ "symbol": "EPICTE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c6mpj4p2dvxdgqq9l0sasz0uzu4gah7k3g03xf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICTE",
+ "baseDenom": "EPICTE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICTEN",
+ "denom": "inj1e9t4mhc00s4p0rthuyhpy2tz54nuh552sk5v60",
+ "logo": "unknown.png",
+ "symbol": "EPICTEN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e9t4mhc00s4p0rthuyhpy2tz54nuh552sk5v60",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICTEN",
+ "baseDenom": "EPICTEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICTREE",
+ "denom": "inj1hjt77g9ujsh52jdm388ggx387w9dk4jwe8w5sq",
+ "logo": "unknown.png",
+ "symbol": "EPICTREE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hjt77g9ujsh52jdm388ggx387w9dk4jwe8w5sq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICTREE",
+ "baseDenom": "EPICTREE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EPICTWO",
+ "denom": "inj1z24n2kmsxkz9l75zm7e90f2l0rfgaazh6usw3h",
+ "logo": "unknown.png",
+ "symbol": "EPICTWO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1z24n2kmsxkz9l75zm7e90f2l0rfgaazh6usw3h",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EPICTWO",
+ "baseDenom": "EPICTWO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Alliance Staked ampWHALE",
+ "denom": "ibc/DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/ampwhalet.svg",
+ "symbol": "ampWHALEt",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampWHALEt",
+ "baseDenom": "ampWHALEt",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Alliance Staked boneWHALE",
+ "denom": "ibc/F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/bonewhalet.svg",
+ "symbol": "boneWHALEt",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "boneWHALEt",
+ "baseDenom": "boneWHALEt",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified INJ",
+ "denom": "factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/ampinj.png",
+ "symbol": "ampINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampINJ",
+ "baseDenom": "ampINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified LUNA",
+ "denom": "ibc/751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/ampluna.svg",
+ "symbol": "ampLUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampLUNA",
+ "baseDenom": "ampLUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified MNTA",
+ "denom": "ibc/A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/ampmnta.png",
+ "symbol": "ampMNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampMNTA",
+ "baseDenom": "ampMNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified OSMO",
+ "denom": "ibc/012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/amposmo.png",
+ "symbol": "ampOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampOSMO",
+ "baseDenom": "ampOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified ROAR",
+ "denom": "ibc/7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/amproar.png",
+ "symbol": "ampROAR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampROAR",
+ "baseDenom": "ampROAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified SEI",
+ "denom": "ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
+ "symbol": "ampSEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampSEI",
+ "baseDenom": "ampSEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified SEI",
+ "denom": "ibc/6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
+ "symbol": "ampSEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampSEI",
+ "baseDenom": "ampSEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS Amplified SEI",
+ "denom": "ibc/9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
+ "symbol": "ampSEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ampSEI",
+ "baseDenom": "ampSEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ERIS MOAR",
+ "denom": "ibc/D37C63726080331AF3713AA59B8FFD409ABD44F5FDB4685E5F3AB43D40108F6F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/moar.png",
+ "symbol": "MOAR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D37C63726080331AF3713AA59B8FFD409ABD44F5FDB4685E5F3AB43D40108F6F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOAR",
+ "baseDenom": "MOAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Eruk Chun",
+ "denom": "factory/inj19tjhqehpyq4n05hjlqyd7c5suywf3hcuvetpcr/CHUN",
+ "logo": "unknown.png",
+ "symbol": "CHUN",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj19tjhqehpyq4n05hjlqyd7c5suywf3hcuvetpcr/CHUN",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "CHUN",
+ "baseDenom": "CHUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "escudo",
+ "denom": "ibc/D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Escudos.png",
+ "symbol": "ESCUDOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ESCUDOS",
+ "baseDenom": "ESCUDOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "E-SHURIKEN",
+ "denom": "inj1z93hdgsd9pn6eajslmyerask38yugxsaygyyu0",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1z93hdgsd9pn6eajslmyerask38yugxsaygyyu0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "estate",
+ "denom": "inj16mx8h5updpwkslymehlm0wq84sckaytru0apvx",
+ "logo": "unknown.png",
+ "symbol": "estate",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16mx8h5updpwkslymehlm0wq84sckaytru0apvx",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "estate",
+ "baseDenom": "estate",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "estate1",
+ "denom": "inj1sklu3me2d8e2e0k6eu83t4pzcnleczal7d2zra",
+ "logo": "unknown.png",
+ "symbol": "estamina",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sklu3me2d8e2e0k6eu83t4pzcnleczal7d2zra",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "estamina",
+ "baseDenom": "estamina",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ETF",
+ "denom": "inj1cdfcc6x6fn22wl6gs6axgn48rjve2yhjqt8hv2",
+ "logo": "unknown.png",
+ "symbol": "ETF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cdfcc6x6fn22wl6gs6axgn48rjve2yhjqt8hv2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ETF",
+ "baseDenom": "ETF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ETH",
+ "denom": "factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH",
+ "logo": "unknown.png",
+ "symbol": "ETH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ETH",
+ "baseDenom": "ETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ETHBTCTrend",
+ "denom": "peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2",
+ "logo": "unknown.png",
+ "symbol": "ETHBTCTrend",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ETHBTCTrend",
+ "baseDenom": "ETHBTCTrend",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ethena",
+ "denom": "peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3",
+ "logo": "https://raw.githubusercontent.com/cosmostation/chainlist/5622c255f229ac2b76f5b0c71837ac397c3ab8a8/chain/ethereum/asset/usde.png",
+ "symbol": "USDe",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USDe",
+ "baseDenom": "USDe",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ethena",
+ "denom": "inj1c68rz4w9csvny5xmq6f87auuhfut5zukngmptz",
+ "logo": "unknown.png",
+ "symbol": "ENA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c68rz4w9csvny5xmq6f87auuhfut5zukngmptz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ENA",
+ "baseDenom": "ENA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ethereum (Arbitrum)",
+ "denom": "ibc/56ADC03A83B6E812C0C30864C8B69CBE502487AD5664D0164F73A1C832D2C7FC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/eth.svg",
+ "symbol": "ETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "56ADC03A83B6E812C0C30864C8B69CBE502487AD5664D0164F73A1C832D2C7FC",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ETH",
+ "baseDenom": "ETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ethereum (ERC20)",
+ "denom": "ibc/56CD30F5F8344FDDC41733A058F9021581E97DC668BFAC631DC77A414C05451B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/eth.svg",
+ "symbol": "ETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "56CD30F5F8344FDDC41733A058F9021581E97DC668BFAC631DC77A414C05451B",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ETH",
+ "baseDenom": "ETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Evil",
+ "denom": "inj1yhrpy3sr475cfn0g856hzpfrgk5jufvpllfakr",
+ "logo": "unknown.png",
+ "symbol": "EVL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yhrpy3sr475cfn0g856hzpfrgk5jufvpllfakr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EVL",
+ "baseDenom": "EVL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "evitcejnI",
+ "denom": "factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ni",
+ "logo": "unknown.png",
+ "symbol": "NI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ni",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NI",
+ "baseDenom": "NI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EVITCEJNI",
+ "denom": "factory/inj1n8kcnuzsrg9d7guu8c5n4cxcurqyszthy29yhg/EVITCEJNI",
+ "logo": "unknown.png",
+ "symbol": "EVITCEJNI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1n8kcnuzsrg9d7guu8c5n4cxcurqyszthy29yhg/EVITCEJNI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "EVITCEJNI",
+ "baseDenom": "EVITCEJNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EVITCEJNI",
+ "denom": "inj1mxcj2f8aqv8uflul4ydr7kqv90kprgsrx0mqup",
+ "logo": "unknown.png",
+ "symbol": "EVI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mxcj2f8aqv8uflul4ydr7kqv90kprgsrx0mqup",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EVI",
+ "baseDenom": "EVI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Evmos",
+ "denom": "ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/evmos/images/evmos.png",
+ "symbol": "EVMOS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "EVMOS",
+ "baseDenom": "EVMOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Exotic Markets (Wormhole)",
+ "denom": "inj1xyf06dyfuldfynqgl9j6yf4vly6fsjr7zny25p",
+ "logo": "unknown.png",
+ "symbol": "EXOTIC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xyf06dyfuldfynqgl9j6yf4vly6fsjr7zny25p",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "EXOTIC",
+ "baseDenom": "EXOTIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Experimental Economy",
+ "denom": "inj1zyg7gvzzsc0q39vhv5je50r2jcfv2ru506pd7w",
+ "logo": "unknown.png",
+ "symbol": "ELE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zyg7gvzzsc0q39vhv5je50r2jcfv2ru506pd7w",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ELE",
+ "baseDenom": "ELE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Explore Exchange (Wormhole)",
+ "denom": "inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd",
+ "logo": "unknown.png",
+ "symbol": "EXP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "EXP",
+ "baseDenom": "EXP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ExtraVirginOliveInu",
+ "denom": "factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/extravirginoliveinu",
+ "logo": "unknown.png",
+ "symbol": "NOBITCHES",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/extravirginoliveinu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NOBITCHES",
+ "baseDenom": "NOBITCHES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "EYES",
+ "denom": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/eyes",
+ "logo": "unknown.png",
+ "symbol": "EYES",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/eyes",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "EYES",
+ "baseDenom": "EYES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FABLE",
+ "denom": "ibc/5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/fable.svg",
+ "symbol": "FABLE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FABLE",
+ "baseDenom": "FABLE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "denom": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "logo": "unknown.png",
+ "symbol": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "baseDenom": "factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "logo": "unknown.png",
+ "symbol": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "baseDenom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/3nNG5xw6fTXkcQCr36ySsd2jpQR5HgVvrQJtsSaAtiQq",
+ "denom": "ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272",
+ "logo": "unknown.png",
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/3NNG5XW6FTXKCQCR36YSSD2JPQR5HGVVRQJTSSAATIQQ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/3NNG5XW6FTXKCQCR36YSSD2JPQR5HGVVRQJTSSAATIQQ",
+ "baseDenom": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/3NNG5XW6FTXKCQCR36YSSD2JPQR5HGVVRQJTSSAATIQQ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/5mejeW9oeeWU7B84t6CSjXskTumVWsapjsbpsivtVZQw",
+ "denom": "ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF",
+ "logo": "unknown.png",
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5MEJEW9OEEWU7B84T6CSJXSKTUMVWSAPJSBPSIVTVZQW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5MEJEW9OEEWU7B84T6CSJXSKTUMVWSAPJSBPSIVTVZQW",
+ "baseDenom": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5MEJEW9OEEWU7B84T6CSJXSKTUMVWSAPJSBPSIVTVZQW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/D2q6uE3gSM7KxBconMFQQxfDenwQYz8JrdXWetkEq9WS",
+ "denom": "ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11",
+ "logo": "unknown.png",
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/D2Q6UE3GSM7KXBCONMFQQXFDENWQYZ8JRDXWETKEQ9WS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/D2Q6UE3GSM7KXBCONMFQQXFDENWQYZ8JRDXWETKEQ9WS",
+ "baseDenom": "ACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/D2Q6UE3GSM7KXBCONMFQQXFDENWQYZ8JRDXWETKEQ9WS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FaDaCai",
+ "denom": "inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z",
+ "logo": "unknown.png",
+ "symbol": "FDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FDC",
+ "baseDenom": "FDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Faith On Solana (Wormhole)",
+ "denom": "inj1efjaf4yuz5ehncz0atjxvrmal7eeschauma26q",
+ "logo": "unknown.png",
+ "symbol": "FAITH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1efjaf4yuz5ehncz0atjxvrmal7eeschauma26q",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FAITH",
+ "baseDenom": "FAITH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Family - MafiaZ",
+ "denom": "factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY",
+ "logo": "unknown.png",
+ "symbol": "FAMILY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FAMILY",
+ "baseDenom": "FAMILY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fangio88",
+ "denom": "inj1vnhhrcnnnr6tq96eaa8gcsuaz55ugnhs3dmfqq",
+ "logo": "unknown.png",
+ "symbol": "faot",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vnhhrcnnnr6tq96eaa8gcsuaz55ugnhs3dmfqq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "faot",
+ "baseDenom": "faot",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FAST (Wormhole)",
+ "denom": "inj1m8wfsukqzxt6uduymrpkjawvpap3earl4p2xlt",
+ "logo": "unknown.png",
+ "symbol": "FAST",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m8wfsukqzxt6uduymrpkjawvpap3earl4p2xlt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FAST",
+ "baseDenom": "FAST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fat Ass Parrots",
+ "denom": "inj1qekjz857yggl23469xjr9rynp6padw54f0hhkh",
+ "logo": "unknown.png",
+ "symbol": "FAP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qekjz857yggl23469xjr9rynp6padw54f0hhkh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FAP",
+ "baseDenom": "FAP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fat PEPE",
+ "denom": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/fatpepe",
+ "logo": "unknown.png",
+ "symbol": "fatPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/fatpepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "fatPEPE",
+ "baseDenom": "fatPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FC Barcelona",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/barcelona",
+ "logo": "unknown.png",
+ "symbol": "BARCA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/barcelona",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BARCA",
+ "baseDenom": "BARCA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fc sucuk",
+ "denom": "inj1h7smsl8nzjfeszy03cqnjn2yvf629kf3m02fay",
+ "logo": "unknown.png",
+ "symbol": "FCS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h7smsl8nzjfeszy03cqnjn2yvf629kf3m02fay",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FCS",
+ "baseDenom": "FCS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FCUK",
+ "denom": "inj1j3gg49wg40epnsd644s84wrzkcy98k2v50cwvv",
+ "logo": "unknown.png",
+ "symbol": "FCUK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j3gg49wg40epnsd644s84wrzkcy98k2v50cwvv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FCUK",
+ "baseDenom": "FCUK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDA",
+ "denom": "inj174zq6m77dqvx4e56uqvjq25t7qq5ukmt2zhysh",
+ "logo": "unknown.png",
+ "symbol": "FDA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj174zq6m77dqvx4e56uqvjq25t7qq5ukmt2zhysh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FDA",
+ "baseDenom": "FDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp",
+ "logo": "unknown.png",
+ "symbol": "FDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FDC",
+ "baseDenom": "FDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj13pff0vsvfhnhcs4fkd609cr2f749rw22hznhar",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13pff0vsvfhnhcs4fkd609cr2f749rw22hznhar",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v",
+ "logo": "unknown.png",
+ "symbol": "FDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FDC",
+ "baseDenom": "FDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj13n695lr0ps5kpahv7rkd8njh2phw475rta8kw4",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13n695lr0ps5kpahv7rkd8njh2phw475rta8kw4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC",
+ "denom": "inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv",
+ "logo": "unknown.png",
+ "symbol": "FaDaCai",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FaDaCai",
+ "baseDenom": "FaDaCai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FDC3",
+ "denom": "inj1zmpydq6mlwfj246jk9sc5r7898jgcks9rj87mg",
+ "logo": "unknown.png",
+ "symbol": "FDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zmpydq6mlwfj246jk9sc5r7898jgcks9rj87mg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FDC",
+ "baseDenom": "FDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Federal Bureau of Investigation",
+ "denom": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/fbi",
+ "logo": "unknown.png",
+ "symbol": "h2o",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/fbi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "h2o",
+ "baseDenom": "h2o",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Federation des Anarchistes",
+ "denom": "inj1zl5uwywdkgchs54ycp8f84cedz29fhwz0pzvjd",
+ "logo": "unknown.png",
+ "symbol": "FDAPERP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zl5uwywdkgchs54ycp8f84cedz29fhwz0pzvjd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FDAPERP",
+ "baseDenom": "FDAPERP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ferengi Vaults (Wormhole)",
+ "denom": "inj1g07rttdqwcy43yx9m20z030uex29sxpcwvvjmf",
+ "logo": "unknown.png",
+ "symbol": "EARS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1g07rttdqwcy43yx9m20z030uex29sxpcwvvjmf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "EARS",
+ "baseDenom": "EARS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "fetch-ai",
+ "denom": "ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/fetchhub/images/fet.png",
+ "symbol": "FET",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FET",
+ "baseDenom": "FET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fetch.ai",
+ "denom": "inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy",
+ "logo": "unknown.png",
+ "symbol": "FET",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FET",
+ "baseDenom": "FET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "fiftycent",
+ "denom": "inj1rtgfdnja2xav84ta0twq8cmmvkqzycnu9uxzw5",
+ "logo": "unknown.png",
+ "symbol": "fiftycent",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rtgfdnja2xav84ta0twq8cmmvkqzycnu9uxzw5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "fiftycent",
+ "baseDenom": "fiftycent",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Figaro",
+ "denom": "inj1whqqv3hrqt58laptw90mdhxx7upx40q6s7d0qx",
+ "logo": "unknown.png",
+ "symbol": "FIG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1whqqv3hrqt58laptw90mdhxx7upx40q6s7d0qx",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FIG",
+ "baseDenom": "FIG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FIVE",
+ "denom": "inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru",
+ "logo": "unknown.png",
+ "symbol": "FIVE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FIVE",
+ "baseDenom": "FIVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FIVE INJ (Wormhole)",
+ "denom": "inj1psx54edreejwmjsdgsad332c60y5lnzqkkudve",
+ "logo": "unknown.png",
+ "symbol": "FIVE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1psx54edreejwmjsdgsad332c60y5lnzqkkudve",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FIVE",
+ "baseDenom": "FIVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FixedFloat",
+ "denom": "inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda",
+ "logo": "unknown.png",
+ "symbol": "FIX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FIX",
+ "baseDenom": "FIX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FLOKI",
+ "denom": "factory/inj1g7nvetpqjcugdnjxd27v37m7adm4wf7wphgzq2/FLOKI",
+ "logo": "unknown.png",
+ "symbol": "FLOKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1g7nvetpqjcugdnjxd27v37m7adm4wf7wphgzq2/FLOKI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FLOKI",
+ "baseDenom": "FLOKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Floki fifa",
+ "denom": "inj1ma5f4cpyryqukl57k22qr9dyxmmc99pw50fn72",
+ "logo": "unknown.png",
+ "symbol": "FIFA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ma5f4cpyryqukl57k22qr9dyxmmc99pw50fn72",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FIFA",
+ "baseDenom": "FIFA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fluffy",
+ "denom": "inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z",
+ "logo": "unknown.png",
+ "symbol": "FLUFFY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FLUFFY",
+ "baseDenom": "FLUFFY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fluid (Wormhole)",
+ "denom": "inj1avj9gwyj5hzxdkpegcr47kmp8k39nrnejn69mh",
+ "logo": "unknown.png",
+ "symbol": "FLUID",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1avj9gwyj5hzxdkpegcr47kmp8k39nrnejn69mh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FLUID",
+ "baseDenom": "FLUID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOMO",
+ "denom": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/FOMO",
+ "logo": "unknown.png",
+ "symbol": "FOMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/FOMO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOMO",
+ "baseDenom": "FOMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOMOFox",
+ "denom": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/FOMOFox",
+ "logo": "unknown.png",
+ "symbol": "FOMOFox",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/FOMOFox",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOMOFox",
+ "baseDenom": "FOMOFox",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOO",
+ "denom": "inj1s290d2uew9k2s00zlx9xnxq84dauysc85yhds0",
+ "logo": "unknown.png",
+ "symbol": "FOO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s290d2uew9k2s00zlx9xnxq84dauysc85yhds0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOO",
+ "baseDenom": "FOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOO",
+ "denom": "inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367",
+ "logo": "unknown.png",
+ "symbol": "FOO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOO",
+ "baseDenom": "FOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOOL",
+ "denom": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/FOOL",
+ "logo": "unknown.png",
+ "symbol": "FOOL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/FOOL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOOL",
+ "baseDenom": "FOOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOORK",
+ "denom": "inj1zu6qda7u90c8w28xkru4v56ak05xpfjtwps0vw",
+ "logo": "unknown.png",
+ "symbol": "FOORK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zu6qda7u90c8w28xkru4v56ak05xpfjtwps0vw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOORK",
+ "baseDenom": "FOORK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Footjob on INJ",
+ "denom": "inj1gn7tah4p0uvgmtwgwe5lp9q7ce8d4yr8jxrfcv",
+ "logo": "unknown.png",
+ "symbol": "footjob",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gn7tah4p0uvgmtwgwe5lp9q7ce8d4yr8jxrfcv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "footjob",
+ "baseDenom": "footjob",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Footjob on Injective",
+ "denom": "inj1n37zp9g8fzdwxca8m7wrp2e7qvrjzfemaxgp8e",
+ "logo": "unknown.png",
+ "symbol": "FOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n37zp9g8fzdwxca8m7wrp2e7qvrjzfemaxgp8e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOJO",
+ "baseDenom": "FOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Forgotten PlayLand (Wormhole)",
+ "denom": "inj13yutezdwjkz8xucrt6d564yqr3ava76r6q9vle",
+ "logo": "unknown.png",
+ "symbol": "FPL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13yutezdwjkz8xucrt6d564yqr3ava76r6q9vle",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FPL",
+ "baseDenom": "FPL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "For The Bugs",
+ "denom": "factory/inj1zzc2wt4xzy9yhxz7y8mzcn3s6zwvajyutgay3c/BUGS",
+ "logo": "unknown.png",
+ "symbol": "BUGS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zzc2wt4xzy9yhxz7y8mzcn3s6zwvajyutgay3c/BUGS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BUGS",
+ "baseDenom": "BUGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FortheCommunity",
+ "denom": "inj1v092fpcqz0k5pf6zwz7z8v40q2yxa0elfzt2hk",
+ "logo": "unknown.png",
+ "symbol": "FTC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1v092fpcqz0k5pf6zwz7z8v40q2yxa0elfzt2hk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FTC",
+ "baseDenom": "FTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "forza",
+ "denom": "inj1p0tsq248wyk2vd980csndrtep3rz50ezfvhfrw",
+ "logo": "unknown.png",
+ "symbol": "FORZA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p0tsq248wyk2vd980csndrtep3rz50ezfvhfrw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FORZA",
+ "baseDenom": "FORZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOTHER",
+ "denom": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/FOTHER",
+ "logo": "unknown.png",
+ "symbol": "FOTHER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/FOTHER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOTHER",
+ "baseDenom": "FOTHER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOUR",
+ "denom": "inj1clfx8jgq3636249d0tr3yu26hsp3yqct6lpvcy",
+ "logo": "unknown.png",
+ "symbol": "FOUR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1clfx8jgq3636249d0tr3yu26hsp3yqct6lpvcy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOUR",
+ "baseDenom": "FOUR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "fox",
+ "denom": "factory/inj1ddmyuzh42n8ymyhcm5jla3aaq9tucjnye02dlf/fox",
+ "logo": "unknown.png",
+ "symbol": "fox",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ddmyuzh42n8ymyhcm5jla3aaq9tucjnye02dlf/fox",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "fox",
+ "baseDenom": "fox",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FOX",
+ "denom": "inj167naeycu49dhs8wduj5ddtq6zex9cd6hpn4k4w",
+ "logo": "unknown.png",
+ "symbol": "FOX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj167naeycu49dhs8wduj5ddtq6zex9cd6hpn4k4w",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FOX",
+ "baseDenom": "FOX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "franklin",
+ "denom": "inj1zd0043cf6q7yft07aaqgsurgh53xy5gercpzuu",
+ "logo": "unknown.png",
+ "symbol": "franklin",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zd0043cf6q7yft07aaqgsurgh53xy5gercpzuu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "franklin",
+ "baseDenom": "franklin",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Frax",
+ "denom": "ibc/3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/frax.svg",
+ "symbol": "FRAX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FRAX",
+ "baseDenom": "FRAX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Freecoin",
+ "denom": "inj1rp9tjztx0m5ekcxavq9w27875szf8sm7p0hwpg",
+ "logo": "unknown.png",
+ "symbol": "FREE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rp9tjztx0m5ekcxavq9w27875szf8sm7p0hwpg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FREE",
+ "baseDenom": "FREE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Frienzies",
+ "denom": "ibc/CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/noble/images/frnz.png",
+ "symbol": "FRNZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FRNZ",
+ "baseDenom": "FRNZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FROG",
+ "denom": "factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG",
+ "logo": "unknown.png",
+ "symbol": "FROG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FROG",
+ "baseDenom": "FROG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FROG",
+ "denom": "inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s",
+ "logo": "unknown.png",
+ "symbol": "FROG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FROG",
+ "baseDenom": "FROG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FROGCOIN",
+ "denom": "inj1dljz0rexnhhxa2vnnfxerg7y0am46kdzltwwgp",
+ "logo": "unknown.png",
+ "symbol": "FROG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dljz0rexnhhxa2vnnfxerg7y0am46kdzltwwgp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FROG",
+ "baseDenom": "FROG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FROGGY",
+ "denom": "factory/inj1l8pq22awax6r8hamk2v3cgd77w90qtkmynvp8q/FROGGY",
+ "logo": "unknown.png",
+ "symbol": "FROGGY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1l8pq22awax6r8hamk2v3cgd77w90qtkmynvp8q/FROGGY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FROGGY",
+ "baseDenom": "FROGGY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Frogy the frog",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIYY",
+ "logo": "unknown.png",
+ "symbol": "FROGY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIYY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FROGY",
+ "baseDenom": "FROGY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Frogy the frog",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY",
+ "logo": "unknown.png",
+ "symbol": "FROGY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FROGY",
+ "baseDenom": "FROGY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FUCK",
+ "denom": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/FUCK",
+ "logo": "unknown.png",
+ "symbol": "FUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/FUCK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FUCK",
+ "baseDenom": "FUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fuck solana /̵͇̿̿/'̿̿ ̿̿ ̿̿",
+ "denom": "factory/inj1na5d9jqhkyckh8gc5uqht75a74jq85gvpycp44/FUCKSOL",
+ "logo": "unknown.png",
+ "symbol": "FuckSol",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1na5d9jqhkyckh8gc5uqht75a74jq85gvpycp44/FUCKSOL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FuckSol",
+ "baseDenom": "FuckSol",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FUD",
+ "denom": "factory/inj1j2r6vr20cnhqz3tumd2lh9w8k8guamze3pdf7t/FUD",
+ "logo": "unknown.png",
+ "symbol": "FUD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1j2r6vr20cnhqz3tumd2lh9w8k8guamze3pdf7t/FUD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FUD",
+ "baseDenom": "FUD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FUINJ",
+ "denom": "factory/inj1wlwsd6w84ydmsqs5swthm5hw22qm8fxrth5ggx/FUINJ",
+ "logo": "unknown.png",
+ "symbol": "FUINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wlwsd6w84ydmsqs5swthm5hw22qm8fxrth5ggx/FUINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FUINJ",
+ "baseDenom": "FUINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fusionist (Wormhole)",
+ "denom": "inj1hpczn65hygw4aaaytxe6gvdu8h3245gjz0q2fx",
+ "logo": "unknown.png",
+ "symbol": "FUSION",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hpczn65hygw4aaaytxe6gvdu8h3245gjz0q2fx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FUSION",
+ "baseDenom": "FUSION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FusionX (Wormhole)",
+ "denom": "inj1fghekhpfn2rfds6c466p38ttdm2a70gnzymc86",
+ "logo": "unknown.png",
+ "symbol": "FusionX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fghekhpfn2rfds6c466p38ttdm2a70gnzymc86",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FusionX",
+ "baseDenom": "FusionX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "FusionXYZ (Wormhole)",
+ "denom": "inj1a5pxsj6f8jggncw4s2cg39p25swgzdjyljw5tf",
+ "logo": "unknown.png",
+ "symbol": "FUSIONX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a5pxsj6f8jggncw4s2cg39p25swgzdjyljw5tf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FUSIONX",
+ "baseDenom": "FUSIONX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fuzion",
+ "denom": "ibc/FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuzion.png",
+ "symbol": "FUZN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FUZN",
+ "baseDenom": "FUZN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fuzion Network (Wormhole)",
+ "denom": "inj1m8hyuja8wmfm0a2l04dgp5ntwkmetkkemw2jcs",
+ "logo": "unknown.png",
+ "symbol": "FUZION",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m8hyuja8wmfm0a2l04dgp5ntwkmetkkemw2jcs",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "FUZION",
+ "baseDenom": "FUZION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fuzion Receipt",
+ "denom": "ibc/F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuzionr.png",
+ "symbol": "rFUZN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "rFUZN",
+ "baseDenom": "rFUZN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Fuzion Yield",
+ "denom": "ibc/71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuziony.svg",
+ "symbol": "yFUZN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "yFUZN",
+ "baseDenom": "yFUZN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GAINJA",
+ "denom": "inj1jnwu7u6h00lzanpl8d5qerr77zcj2vd65r2j7e",
+ "logo": "unknown.png",
+ "symbol": "GAINJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jnwu7u6h00lzanpl8d5qerr77zcj2vd65r2j7e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GAINJA",
+ "baseDenom": "GAINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GALA",
+ "denom": "factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA",
+ "logo": "unknown.png",
+ "symbol": "GALA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GALA",
+ "baseDenom": "GALA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Galaxy",
+ "denom": "inj13n675x36dnettkxkjll82q72zgnvsazn4we7dx",
+ "logo": "unknown.png",
+ "symbol": "GALAXY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13n675x36dnettkxkjll82q72zgnvsazn4we7dx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GALAXY",
+ "baseDenom": "GALAXY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GALAXY",
+ "denom": "factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy",
+ "logo": "unknown.png",
+ "symbol": "GALAXY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GALAXY",
+ "baseDenom": "GALAXY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gamble Gold",
+ "denom": "inj13a8vmd652mn2e7d8x0w7fdcdt8742j98jxjcx5",
+ "logo": "unknown.png",
+ "symbol": "GGS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13a8vmd652mn2e7d8x0w7fdcdt8742j98jxjcx5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GGS",
+ "baseDenom": "GGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GambleInu",
+ "denom": "factory/inj10g0paz4mx7mq2z8l9vpxz022xshc04g5kw7s43/gamble",
+ "logo": "unknown.png",
+ "symbol": "GAMBLE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10g0paz4mx7mq2z8l9vpxz022xshc04g5kw7s43/gamble",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GAMBLE",
+ "baseDenom": "GAMBLE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GameGPT",
+ "denom": "peggy0x943Af2ece93118B973c95c2F698EE9D15002e604",
+ "logo": "https://static.alchemyapi.io/images/assets/28868.png",
+ "symbol": "DUEL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x943Af2ece93118B973c95c2F698EE9D15002e604",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DUEL",
+ "baseDenom": "DUEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GAMER",
+ "denom": "inj1gqp2upvl8ftj28amxt90dut76prdpefx3qvpck",
+ "logo": "unknown.png",
+ "symbol": "GAMER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gqp2upvl8ftj28amxt90dut76prdpefx3qvpck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GAMER",
+ "baseDenom": "GAMER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GAMER",
+ "denom": "inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a",
+ "logo": "unknown.png",
+ "symbol": "GAMER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GAMER",
+ "baseDenom": "GAMER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Game Stop",
+ "denom": "inj1vnj7fynxr5a62maf34vca4fes4k0wrj4le5gae",
+ "logo": "unknown.png",
+ "symbol": "GME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vnj7fynxr5a62maf34vca4fes4k0wrj4le5gae",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GME",
+ "baseDenom": "GME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gaming RAC Token",
+ "denom": "ibc/59AA66AA80190D98D3A6C5114AB8249DE16B7EC848552091C7DCCFE33E0C575C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/grac.png",
+ "symbol": "GRAC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "59AA66AA80190D98D3A6C5114AB8249DE16B7EC848552091C7DCCFE33E0C575C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GRAC",
+ "baseDenom": "GRAC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GASH",
+ "denom": "ibc/98C86DE314A044503F35E8C395B745B65E990E12A77A357CBA74F474F860A845",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/gash.png",
+ "symbol": "GASH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "98C86DE314A044503F35E8C395B745B65E990E12A77A357CBA74F474F860A845",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GASH",
+ "baseDenom": "GASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "gay",
+ "denom": "inj15x48ts4jw429zd9vvkwxf0advg9j24z2q948fl",
+ "logo": "unknown.png",
+ "symbol": "gay",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15x48ts4jw429zd9vvkwxf0advg9j24z2q948fl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "gay",
+ "baseDenom": "gay",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "gayasfuck",
+ "denom": "inj1qu6eldq9ftz2wvr43848ff8x5586xm0639kg7a",
+ "logo": "unknown.png",
+ "symbol": "gayasf",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qu6eldq9ftz2wvr43848ff8x5586xm0639kg7a",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "gayasf",
+ "baseDenom": "gayasf",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gazza",
+ "denom": "inj1ec70stm6p3e6u2lmpl5vzan4pdm79vwlfgcdzd",
+ "logo": "unknown.png",
+ "symbol": "GZZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ec70stm6p3e6u2lmpl5vzan4pdm79vwlfgcdzd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GZZ",
+ "baseDenom": "GZZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "gcoin",
+ "denom": "inj1k20q72a4hxt0g20sx3rcnjvhfye6u3k6dhx6nc",
+ "logo": "unknown.png",
+ "symbol": "CHROME",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k20q72a4hxt0g20sx3rcnjvhfye6u3k6dhx6nc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHROME",
+ "baseDenom": "CHROME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Geisha",
+ "denom": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/geisha",
+ "logo": "unknown.png",
+ "symbol": "GEISHA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/geisha",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEISHA",
+ "baseDenom": "GEISHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEISHA",
+ "denom": "factory/inj1c5uqenss9plc5rjw5kt5dksnlvnvw5tvygxpd8/GEISHA",
+ "logo": "unknown.png",
+ "symbol": "GEISHA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c5uqenss9plc5rjw5kt5dksnlvnvw5tvygxpd8/GEISHA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEISHA",
+ "baseDenom": "GEISHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEISHA",
+ "denom": "factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha",
+ "logo": "unknown.png",
+ "symbol": "GEISHA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEISHA",
+ "baseDenom": "GEISHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Geist.Finance Protocol Token (Wormhole)",
+ "denom": "inj1x2lg9j9pwmgnnwmhvq2g6pm6emcx7w02pnjnm6",
+ "logo": "unknown.png",
+ "symbol": "GEIST",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x2lg9j9pwmgnnwmhvq2g6pm6emcx7w02pnjnm6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GEIST",
+ "baseDenom": "GEIST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gelotto",
+ "denom": "peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/images/glto.png",
+ "symbol": "GLTO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GLTO",
+ "baseDenom": "GLTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gelotto BEAST",
+ "denom": "peggy0xA4426666addBE8c4985377d36683D17FB40c31Be",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/beast.png",
+ "symbol": "BEAST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xA4426666addBE8c4985377d36683D17FB40c31Be",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BEAST",
+ "baseDenom": "BEAST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEM DAO",
+ "denom": "ibc/8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/gem.png",
+ "symbol": "GEM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEM",
+ "baseDenom": "GEM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEMININJ",
+ "denom": "factory/inj14vrd79l2pxvqctawz39qewfh72x62pfjecxsmv/GEMININJ",
+ "logo": "unknown.png",
+ "symbol": "GEMININJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14vrd79l2pxvqctawz39qewfh72x62pfjecxsmv/GEMININJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEMININJ",
+ "baseDenom": "GEMININJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEMOY",
+ "denom": "inj1j5l0xc2lwqpj2duvllmegxse0dqlx5kgyjehlv",
+ "logo": "unknown.png",
+ "symbol": "GEMOY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j5l0xc2lwqpj2duvllmegxse0dqlx5kgyjehlv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GEMOY",
+ "baseDenom": "GEMOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GENJI",
+ "denom": "factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/GENJI",
+ "logo": "unknown.png",
+ "symbol": "GENJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/GENJI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GENJI",
+ "baseDenom": "GENJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Genny Wealth ",
+ "denom": "inj1dpn7mdrxf49audd5ydk5062z08xqgnl4npzfvv",
+ "logo": "unknown.png",
+ "symbol": "Genny",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dpn7mdrxf49audd5ydk5062z08xqgnl4npzfvv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Genny",
+ "baseDenom": "Genny",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GenZone (Wormhole)",
+ "denom": "inj1zh9924tws4ctzx5zmz06j09nyjs8fw6wupkadr",
+ "logo": "unknown.png",
+ "symbol": "GENZONE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zh9924tws4ctzx5zmz06j09nyjs8fw6wupkadr",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GENZONE",
+ "baseDenom": "GENZONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GEO",
+ "denom": "ibc/8E4953E506CF135A3ACDF6D6556ED1DB4F6A749F3910D2B4A77E2E851C4B2638",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/odin/images/geo.png",
+ "symbol": "GEO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8E4953E506CF135A3ACDF6D6556ED1DB4F6A749F3910D2B4A77E2E851C4B2638",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEO",
+ "baseDenom": "GEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Geurge Boosh",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/boosh",
+ "logo": "unknown.png",
+ "symbol": "BOOSH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/boosh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BOOSH",
+ "baseDenom": "BOOSH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GG33",
+ "denom": "inj1yrw42rwc56lq7a3rjnfa5nvse9veennne8srdj",
+ "logo": "unknown.png",
+ "symbol": "GGG",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yrw42rwc56lq7a3rjnfa5nvse9veennne8srdj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GGG",
+ "baseDenom": "GGG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ghost Vault MNTA",
+ "denom": "ibc/0932033C2B34411381BB987F12539A031EF90CC7F818D65C531266413249F7DB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/xmnta.png",
+ "symbol": "xMNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0932033C2B34411381BB987F12539A031EF90CC7F818D65C531266413249F7DB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "xMNTA",
+ "baseDenom": "xMNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ghost Vault USK",
+ "denom": "ibc/F8E646585298F0F0B4CF0F8EC0978CEB10E8092389E7866BFD9A5E46BE9542A6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/xusk.png",
+ "symbol": "xUSK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F8E646585298F0F0B4CF0F8EC0978CEB10E8092389E7866BFD9A5E46BE9542A6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "xUSK",
+ "baseDenom": "xUSK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GIANT",
+ "denom": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/giant",
+ "logo": "unknown.png",
+ "symbol": "GIANT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/giant",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GIANT",
+ "baseDenom": "GIANT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GIFT",
+ "denom": "factory/inj1exks7fvnh9lxzgqejtlvca8t7mw47rks0s0mwa/GIFT",
+ "logo": "unknown.png",
+ "symbol": "GIFT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1exks7fvnh9lxzgqejtlvca8t7mw47rks0s0mwa/GIFT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GIFT",
+ "baseDenom": "GIFT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GINGER",
+ "denom": "factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/GINGER",
+ "logo": "https://raw.githubusercontent.com/SHITcoinsonINJ/injective-ts/c8034284085e1340f8c4eb7e8a7bc3adfc94c1ec/packages/token-metadata/src/images/ginger.png",
+ "symbol": "GINGER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/GINGER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GINGER",
+ "baseDenom": "GINGER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ginj",
+ "denom": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/ginj",
+ "logo": "unknown.png",
+ "symbol": "ginj",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/ginj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ginj",
+ "baseDenom": "ginj",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ginko (すべて)",
+ "denom": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/ginko",
+ "logo": "unknown.png",
+ "symbol": "GINKO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/ginko",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GINKO",
+ "baseDenom": "GINKO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GIPSYkings",
+ "denom": "inj1pyeutpz66lhapppt2ny36s57zfspglqtvdwywd",
+ "logo": "unknown.png",
+ "symbol": "gipsyCOINS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pyeutpz66lhapppt2ny36s57zfspglqtvdwywd",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "gipsyCOINS",
+ "baseDenom": "gipsyCOINS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GIRL",
+ "denom": "inj1zkmp7m0u0hll3k5w5598g4qs75t7j8qqvmjspz",
+ "logo": "unknown.png",
+ "symbol": "GIRL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zkmp7m0u0hll3k5w5598g4qs75t7j8qqvmjspz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GIRL",
+ "baseDenom": "GIRL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Glodiotor",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/glodiotor",
+ "logo": "unknown.png",
+ "symbol": "GLODIOTOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/glodiotor",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GLODIOTOR",
+ "baseDenom": "GLODIOTOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GMO JPY",
+ "denom": "peggy0xC08512927D12348F6620a698105e1BAac6EcD911",
+ "logo": "unknown.png",
+ "symbol": "GYEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xC08512927D12348F6620a698105e1BAac6EcD911",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GYEN",
+ "baseDenom": "GYEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GOD",
+ "denom": "inj1whzt6ct4v3zf28a6h08lpf90pglzw7fdh0d384",
+ "logo": "unknown.png",
+ "symbol": "GOD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1whzt6ct4v3zf28a6h08lpf90pglzw7fdh0d384",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GOD",
+ "baseDenom": "GOD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Goddard",
+ "denom": "ibc/CABB197E23D81F1D1A4CE56A304488C35830F81AC9647F817313AE657221420D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/goddardntrn.png",
+ "symbol": "GODRD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CABB197E23D81F1D1A4CE56A304488C35830F81AC9647F817313AE657221420D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GODRD",
+ "baseDenom": "GODRD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Goddard",
+ "denom": "ibc/3E89FBB226585CF08EB2E3C2625D1D2B0156CCC2233CAB56165125CACCBE731A",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/goddard.svg",
+ "symbol": "GODDARD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3E89FBB226585CF08EB2E3C2625D1D2B0156CCC2233CAB56165125CACCBE731A",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GODDARD",
+ "baseDenom": "GODDARD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GODS",
+ "denom": "factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS",
+ "logo": "unknown.png",
+ "symbol": "GODS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GODS",
+ "baseDenom": "GODS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GodStrike Protocol (Wormhole)",
+ "denom": "inj1deejw5k4sxnlxgxnzsy5k2vgc9fzu257ajjcy7",
+ "logo": "unknown.png",
+ "symbol": "GODSTRIKE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1deejw5k4sxnlxgxnzsy5k2vgc9fzu257ajjcy7",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GODSTRIKE",
+ "baseDenom": "GODSTRIKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "godzilla",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/godzilla",
+ "logo": "unknown.png",
+ "symbol": "GODZILLA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/godzilla",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GODZILLA",
+ "baseDenom": "GODZILLA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GODZILLA",
+ "denom": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/GODZILLA",
+ "logo": "unknown.png",
+ "symbol": "GODZILLA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/GODZILLA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GODZILLA",
+ "baseDenom": "GODZILLA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GOJO",
+ "denom": "factory/inj13qhzj4fr4u7t7gqj5pqy0yts07eu6k6dkjdcsx/gojo",
+ "logo": "unknown.png",
+ "symbol": "GOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13qhzj4fr4u7t7gqj5pqy0yts07eu6k6dkjdcsx/gojo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GOJO",
+ "baseDenom": "GOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GOKU",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/goku",
+ "logo": "unknown.png",
+ "symbol": "GOKU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/goku",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GOKU",
+ "baseDenom": "GOKU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Goldman Mines (Wormhole)",
+ "denom": "inj140ypzhrxyt7n3fhrgk866hnha29u5l2pv733d0",
+ "logo": "unknown.png",
+ "symbol": "GOLDMAN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj140ypzhrxyt7n3fhrgk866hnha29u5l2pv733d0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GOLDMAN",
+ "baseDenom": "GOLDMAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "goldtest10",
+ "denom": "inj1ehnt0lcek8wdf0xj7y5mmz7nzr8j7ytjgk6l7g",
+ "logo": "unknown.png",
+ "symbol": "gto",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ehnt0lcek8wdf0xj7y5mmz7nzr8j7ytjgk6l7g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "gto",
+ "baseDenom": "gto",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gonzo",
+ "denom": "inj1xhvj4u6xtx3p9kr4pqzl3fdu2vedh3e2y8a79z",
+ "logo": "unknown.png",
+ "symbol": "HST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xhvj4u6xtx3p9kr4pqzl3fdu2vedh3e2y8a79z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HST",
+ "baseDenom": "HST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "goose wif knife",
+ "denom": "factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/goose",
+ "logo": "unknown.png",
+ "symbol": "GOOSE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/goose",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GOOSE",
+ "baseDenom": "GOOSE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GorillaGang (Wormhole)",
+ "denom": "inj1cef5deszfl232ws7nxjgma4deaydd7e7aj6hyf",
+ "logo": "unknown.png",
+ "symbol": "GORILLA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cef5deszfl232ws7nxjgma4deaydd7e7aj6hyf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GORILLA",
+ "baseDenom": "GORILLA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GPT",
+ "denom": "factory/inj168gnj4lavp3y5w40rg5qhf50tupwhaj3yvhgr0/GPT",
+ "logo": "unknown.png",
+ "symbol": "GPT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168gnj4lavp3y5w40rg5qhf50tupwhaj3yvhgr0/GPT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GPT",
+ "baseDenom": "GPT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "greatdane (Wormhole)",
+ "denom": "inj195vgq0yvykunkccdzvys548p90ejuc639ryhkg",
+ "logo": "unknown.png",
+ "symbol": "GREATDANE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj195vgq0yvykunkccdzvys548p90ejuc639ryhkg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GREATDANE",
+ "baseDenom": "GREATDANE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Green Candle Man",
+ "denom": "inj1p87lprkgg4c465scz5z49a37hf835nzkcpyeej",
+ "logo": "unknown.png",
+ "symbol": "GCM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p87lprkgg4c465scz5z49a37hf835nzkcpyeej",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GCM",
+ "baseDenom": "GCM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Greenenergy",
+ "denom": "inj1aqu4y55rg43gk09muvrcel3z45nuxczukhmfut",
+ "logo": "unknown.png",
+ "symbol": "Greenenergy",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aqu4y55rg43gk09muvrcel3z45nuxczukhmfut",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Greenenergy",
+ "baseDenom": "Greenenergy",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Greenland (Wormhole)",
+ "denom": "inj1nlt0jkqfl6f2wlnalyk2wd4g3dq97uj8z0amn0",
+ "logo": "unknown.png",
+ "symbol": "GREEN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nlt0jkqfl6f2wlnalyk2wd4g3dq97uj8z0amn0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GREEN",
+ "baseDenom": "GREEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GreenMarket (Wormhole)",
+ "denom": "inj1wjd2u3wq2dwyr7zlp09squh2xrqjlggy0vlftj",
+ "logo": "unknown.png",
+ "symbol": "GREEN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wjd2u3wq2dwyr7zlp09squh2xrqjlggy0vlftj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GREEN",
+ "baseDenom": "GREEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GrenadineSwap (Wormhole)",
+ "denom": "inj1ljquutxnpx3ut24up85e708hjk85hm47skx3xj",
+ "logo": "unknown.png",
+ "symbol": "GRENADINE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ljquutxnpx3ut24up85e708hjk85hm47skx3xj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GRENADINE",
+ "baseDenom": "GRENADINE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Grinders",
+ "denom": "inj125ry0fhlcha7fpt373kejwf8rq5h3mwewqr0y2",
+ "logo": "unknown.png",
+ "symbol": "Grind",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj125ry0fhlcha7fpt373kejwf8rq5h3mwewqr0y2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Grind",
+ "baseDenom": "Grind",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GRINJ",
+ "denom": "factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj",
+ "logo": "unknown.png",
+ "symbol": "GRINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GRINJ",
+ "baseDenom": "GRINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GRINJ",
+ "denom": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/GRINJ",
+ "logo": "unknown.png",
+ "symbol": "GRINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/GRINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GRINJ",
+ "baseDenom": "GRINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GROK",
+ "denom": "factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/GROK",
+ "logo": "unknown.png",
+ "symbol": "GROK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/GROK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GROK",
+ "baseDenom": "GROK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GROK (Wormhole)",
+ "denom": "inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch",
+ "logo": "unknown.png",
+ "symbol": "GROK",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GROK",
+ "baseDenom": "GROK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GRONI",
+ "denom": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/groni",
+ "logo": "unknown.png",
+ "symbol": "GRONI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/groni",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GRONI",
+ "baseDenom": "GRONI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GRT",
+ "denom": "peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7",
+ "logo": "unknown.png",
+ "symbol": "GRT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GRT",
+ "baseDenom": "GRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GRUMPY CAT",
+ "denom": "inj16fr4w5q629jdqt0ygknf06yna93ead2pr74gr3",
+ "logo": "unknown.png",
+ "symbol": "GRUMPY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16fr4w5q629jdqt0ygknf06yna93ead2pr74gr3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "GRUMPY",
+ "baseDenom": "GRUMPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Gryphon Staked Injective",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf",
+ "logo": "unknown.png",
+ "symbol": "nINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nINJ",
+ "baseDenom": "nINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GUGU",
+ "denom": "ibc/B1826CEA5AE790AB7FCAE84344F113F6C42E6AA3A357CAFEAC4A05BB7531927D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/gugu.png",
+ "symbol": "GUGU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B1826CEA5AE790AB7FCAE84344F113F6C42E6AA3A357CAFEAC4A05BB7531927D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GUGU",
+ "baseDenom": "GUGU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GuildFi",
+ "denom": "peggy0xAaEf88cEa01475125522e117BFe45cF32044E238",
+ "logo": "unknown.png",
+ "symbol": "GF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xAaEf88cEa01475125522e117BFe45cF32044E238",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "GF",
+ "baseDenom": "GF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GunDuck",
+ "denom": "factory/inj1fc0ngp72an2x8zxf268xe5avfan5z4g0saz6ns/gduck",
+ "logo": "unknown.png",
+ "symbol": "GDUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fc0ngp72an2x8zxf268xe5avfan5z4g0saz6ns/gduck",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GDUCK",
+ "baseDenom": "GDUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "GUPPY",
+ "denom": "ibc/F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/guppy.png",
+ "symbol": "GUPPY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GUPPY",
+ "baseDenom": "GUPPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "H3NSY (Wormhole)",
+ "denom": "inj1c22v69304zlaan50gdygmlgeaw56lcphl22n87",
+ "logo": "unknown.png",
+ "symbol": "H3NSY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c22v69304zlaan50gdygmlgeaw56lcphl22n87",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "H3NSY",
+ "baseDenom": "H3NSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HACHI",
+ "denom": "factory/inj13ze65lwstqrz4qy6vvxx3lglnkkuan436aw45e/HACHI",
+ "logo": "https://i.ibb.co/YddhZbB/logo.jpg",
+ "symbol": "HACHI",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13ze65lwstqrz4qy6vvxx3lglnkkuan436aw45e/HACHI",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "HACHI",
+ "baseDenom": "HACHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HAKI",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki",
+ "logo": "unknown.png",
+ "symbol": "HAKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HAKI",
+ "baseDenom": "HAKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HAKI",
+ "denom": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/YAKUSA",
+ "logo": "unknown.png",
+ "symbol": "HAKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/YAKUSA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HAKI",
+ "baseDenom": "HAKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HALVING",
+ "denom": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/HALVING",
+ "logo": "unknown.png",
+ "symbol": "HALVING",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/HALVING",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HALVING",
+ "baseDenom": "HALVING",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "hammer988",
+ "denom": "inj1996tdgklvleuja56gfpv9v3cc2uflmm9vavw05",
+ "logo": "unknown.png",
+ "symbol": "httuy",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1996tdgklvleuja56gfpv9v3cc2uflmm9vavw05",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "httuy",
+ "baseDenom": "httuy",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HAMURAI",
+ "denom": "factory/inj1xqf6rk5p5w3zh22xaxck9g2rnksfhpg33gm9xt/hamu",
+ "logo": "unknown.png",
+ "symbol": "HAMU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xqf6rk5p5w3zh22xaxck9g2rnksfhpg33gm9xt/hamu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HAMU",
+ "baseDenom": "HAMU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HamuraiCoin",
+ "denom": "factory/inj1t6py7esw8z6jc8c204ag3zjevqlpfx203hqyt2/HAMU",
+ "logo": "unknown.png",
+ "symbol": "HAMU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t6py7esw8z6jc8c204ag3zjevqlpfx203hqyt2/HAMU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HAMU",
+ "baseDenom": "HAMU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HappyGilmore",
+ "denom": "inj14y8j4je4gs57fgwakakreevx6ultyy7c7rcmk2",
+ "logo": "unknown.png",
+ "symbol": "HGM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14y8j4je4gs57fgwakakreevx6ultyy7c7rcmk2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HGM",
+ "baseDenom": "HGM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HappyGilmore",
+ "denom": "inj1h5d90rl5hmkp8mtuyc0zpjt00hakldm6wtseew",
+ "logo": "unknown.png",
+ "symbol": "HGM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h5d90rl5hmkp8mtuyc0zpjt00hakldm6wtseew",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HGM",
+ "baseDenom": "HGM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HarryPotterObamaSonicInu",
+ "denom": "inj1y64pkwy0m0jjd825c7amftqe2hmq2wn5ra8ap4",
+ "logo": "unknown.png",
+ "symbol": "BITCOIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y64pkwy0m0jjd825c7amftqe2hmq2wn5ra8ap4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "BITCOIN",
+ "baseDenom": "BITCOIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HATEQUNT",
+ "denom": "factory/inj1sfaqn28d0nw4q8f2cm9gvhs69ecv5x8jjtk7ul/HATEQUNT",
+ "logo": "unknown.png",
+ "symbol": "HATEQUNT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sfaqn28d0nw4q8f2cm9gvhs69ecv5x8jjtk7ul/HATEQUNT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HATEQUNT",
+ "baseDenom": "HATEQUNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HATTORI",
+ "denom": "factory/inj1h7zackjlzcld6my000mtg3uzuqdv0ly4c9g88p/HATTORI",
+ "logo": "unknown.png",
+ "symbol": "HATTORI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h7zackjlzcld6my000mtg3uzuqdv0ly4c9g88p/HATTORI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HATTORI",
+ "baseDenom": "HATTORI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hava Coin",
+ "denom": "factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/uhava",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/hava.png",
+ "symbol": "HAVA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/uhava",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HAVA",
+ "baseDenom": "HAVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hava Coin",
+ "denom": "inj1fnlfy6r22slr72ryt4wl6uwpg3dd7emrqaq7ne",
+ "logo": "unknown.png",
+ "symbol": "HAVA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fnlfy6r22slr72ryt4wl6uwpg3dd7emrqaq7ne",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HAVA",
+ "baseDenom": "HAVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HAVA COIN",
+ "denom": "inj1u759lmx8e6g8f6l2p08qvrekjwcq87dff0ks3n",
+ "logo": "unknown.png",
+ "symbol": "HAVA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u759lmx8e6g8f6l2p08qvrekjwcq87dff0ks3n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HAVA",
+ "baseDenom": "HAVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HelloJulian",
+ "denom": "inj1xj7c6r65e8asrrpgm889m8pr7x3ze7va2ypql4",
+ "logo": "unknown.png",
+ "symbol": "Hellooooo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xj7c6r65e8asrrpgm889m8pr7x3ze7va2ypql4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Hellooooo",
+ "baseDenom": "Hellooooo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hello-Kitty",
+ "denom": "inj1pfmvtdxhl2l5e245nsfwwl78sfx090asmxnmsw",
+ "logo": "unknown.png",
+ "symbol": "Kitty",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pfmvtdxhl2l5e245nsfwwl78sfx090asmxnmsw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Kitty",
+ "baseDenom": "Kitty",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hemule",
+ "denom": "inj1hqamaawcve5aum0mgupe9z7dh28fy8ghh7qxa7",
+ "logo": "unknown.png",
+ "symbol": "HEMULE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hqamaawcve5aum0mgupe9z7dh28fy8ghh7qxa7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HEMULE",
+ "baseDenom": "HEMULE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HERO",
+ "denom": "inj18mqec04e948rdz07epr9w3j20wje9rpg6flufs",
+ "logo": "unknown.png",
+ "symbol": "HERO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18mqec04e948rdz07epr9w3j20wje9rpg6flufs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HERO",
+ "baseDenom": "HERO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hero Wars (Wormhole)",
+ "denom": "inj1f63rgzp2quzxrgfchqhs6sltzf0sksxtl7wtzn",
+ "logo": "unknown.png",
+ "symbol": "HERO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f63rgzp2quzxrgfchqhs6sltzf0sksxtl7wtzn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "HERO",
+ "baseDenom": "HERO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hexagon Legacy (Wormhole)",
+ "denom": "inj13e4hazjnsnapqvd06ngrq5zapw8gegarudzehd",
+ "logo": "unknown.png",
+ "symbol": "HEXA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13e4hazjnsnapqvd06ngrq5zapw8gegarudzehd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "HEXA",
+ "baseDenom": "HEXA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HeyDay",
+ "denom": "inj1rel4r07gl38pc5xqe2q36ytfczgcrry0c4wuwf",
+ "logo": "unknown.png",
+ "symbol": "HeyDay",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rel4r07gl38pc5xqe2q36ytfczgcrry0c4wuwf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HeyDay",
+ "baseDenom": "HeyDay",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "hINJ",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc",
+ "logo": "unknown.png",
+ "symbol": "hINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "hINJ",
+ "baseDenom": "hINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HINJ",
+ "denom": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/hinj",
+ "logo": "unknown.png",
+ "symbol": "HINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/hinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HINJ",
+ "baseDenom": "HINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HonoredHumbled",
+ "denom": "inj1e8r3gxvzu34ufgfwzr6gzv6plq55lg0p95qx5w",
+ "logo": "unknown.png",
+ "symbol": "HnH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e8r3gxvzu34ufgfwzr6gzv6plq55lg0p95qx5w",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "HnH",
+ "baseDenom": "HnH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HorseShoeBar",
+ "denom": "ibc/7BE6E83B27AC96A280F40229539A1B4486AA789622255283168D237C41577D3B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/CrazyHorse.png",
+ "symbol": "CRAZYHORSE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7BE6E83B27AC96A280F40229539A1B4486AA789622255283168D237C41577D3B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CRAZYHORSE",
+ "baseDenom": "CRAZYHORSE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HRBE",
+ "denom": "factory/inj1lucykkh3kv3wf6amckf205rg5jl8rprdcq8v83/HRBE",
+ "logo": "unknown.png",
+ "symbol": "HRBE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lucykkh3kv3wf6amckf205rg5jl8rprdcq8v83/HRBE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HRBE",
+ "baseDenom": "HRBE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "https://t.me/dondinj",
+ "denom": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/don",
+ "logo": "unknown.png",
+ "symbol": "DON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/don",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DON",
+ "baseDenom": "DON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HUAHUA",
+ "denom": "ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/chihuahua/images/huahua.png",
+ "symbol": "HUAHUA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HUAHUA",
+ "baseDenom": "HUAHUA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "hug",
+ "denom": "inj1ncjqkvnxpyyhvm475std34eyn5c7eydpxxagds",
+ "logo": "unknown.png",
+ "symbol": "hug",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ncjqkvnxpyyhvm475std34eyn5c7eydpxxagds",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "hug",
+ "baseDenom": "hug",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HULK",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/HULK",
+ "logo": "unknown.png",
+ "symbol": "HULK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/HULK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HULK",
+ "baseDenom": "HULK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hump Coin",
+ "denom": "inj1v29k9gaw7gnds42mrzqdygdgjh28vx38memy0q",
+ "logo": "unknown.png",
+ "symbol": "HUMP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1v29k9gaw7gnds42mrzqdygdgjh28vx38memy0q",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "HUMP",
+ "baseDenom": "HUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HUOBINJ",
+ "denom": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/huobinj",
+ "logo": "unknown.png",
+ "symbol": "HUOBINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/huobinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HUOBINJ",
+ "baseDenom": "HUOBINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HUSKY",
+ "denom": "factory/inj1467q6d05yz02c2rp5qau95te3p74rqllda4ql7/husky",
+ "logo": "unknown.png",
+ "symbol": "HUSKY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1467q6d05yz02c2rp5qau95te3p74rqllda4ql7/husky",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HUSKY",
+ "baseDenom": "HUSKY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hydrogen oxide",
+ "denom": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/h2o",
+ "logo": "unknown.png",
+ "symbol": "h2o",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/h2o",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "h2o",
+ "baseDenom": "h2o",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hydro Protocol",
+ "denom": "factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro",
+ "logo": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/injective/factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro.png",
+ "symbol": "HDRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HDRO",
+ "baseDenom": "HDRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hydro Protocol (Wormhole)",
+ "denom": "inj1vkptqdl42csvr5tsh0gwczdxdenqm7xxg9se0z",
+ "logo": "unknown.png",
+ "symbol": "HYDRO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vkptqdl42csvr5tsh0gwczdxdenqm7xxg9se0z",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "HYDRO",
+ "baseDenom": "HYDRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hydro Protocol (Wormhole)",
+ "denom": "inj10r75ap4ztrpwnan8er49dvv4lkjxhgvqflg0f5",
+ "logo": "unknown.png",
+ "symbol": "HYDRO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10r75ap4ztrpwnan8er49dvv4lkjxhgvqflg0f5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "HYDRO",
+ "baseDenom": "HYDRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Hydro Wrapped INJ",
+ "denom": "inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc",
+ "logo": "https://raw.githubusercontent.com/chainapsis/keplr-contract-registry/main/images/injective/hINJ.png",
+ "symbol": "hINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "hINJ",
+ "baseDenom": "hINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "HYDRO WRAPPED INJ",
+ "denom": "inj1r9qgault3k4jyp60d9fkzy62dt09zwg89dn4p6",
+ "logo": "unknown.png",
+ "symbol": "hINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r9qgault3k4jyp60d9fkzy62dt09zwg89dn4p6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "hINJ",
+ "baseDenom": "hINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IBC",
+ "denom": "ibc/75BD031C1301C554833F205FAFA065178D51AC6100BCE608E6DC2759C2B71715",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ibc.png",
+ "symbol": "IBC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "75BD031C1301C554833F205FAFA065178D51AC6100BCE608E6DC2759C2B71715",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IBC",
+ "baseDenom": "IBC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IBC Index",
+ "denom": "ibc/491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ibcx.svg",
+ "symbol": "IBCX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IBCX",
+ "baseDenom": "IBCX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IBONK",
+ "denom": "factory/inj14cm9e5n5pjgzvwe5t8zshts2t9x2lxk3zp0js2/ibonk",
+ "logo": "unknown.png",
+ "symbol": "IBONK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14cm9e5n5pjgzvwe5t8zshts2t9x2lxk3zp0js2/ibonk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IBONK",
+ "baseDenom": "IBONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Identify (Wormhole)",
+ "denom": "inj13ac29xfk969qmydhq2rwekja6mxgwtdgpeq3dj",
+ "logo": "unknown.png",
+ "symbol": "IDFI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13ac29xfk969qmydhq2rwekja6mxgwtdgpeq3dj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "IDFI",
+ "baseDenom": "IDFI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IDOGE",
+ "denom": "inj18nuas38jw742ezmk942j4l935lenc6nxd4ypga",
+ "logo": "unknown.png",
+ "symbol": "IDOGE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18nuas38jw742ezmk942j4l935lenc6nxd4ypga",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "IDOGE",
+ "baseDenom": "IDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "I MONKEY",
+ "denom": "inj1jqqysx5j8uef2kyd32aczp3fktl46aqh7jckd5",
+ "logo": "unknown.png",
+ "symbol": "MKEY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jqqysx5j8uef2kyd32aczp3fktl46aqh7jckd5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MKEY",
+ "baseDenom": "MKEY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Incryption {}",
+ "denom": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/json",
+ "logo": "unknown.png",
+ "symbol": "JSON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/json",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JSON",
+ "baseDenom": "JSON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ",
+ "denom": "inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws",
+ "logo": "unknown.png",
+ "symbol": "INJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJ",
+ "baseDenom": "INJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injape",
+ "denom": "inj15ta6ukknq82qcaq38erkvv3ycvmuqc83kn2vqh",
+ "logo": "unknown.png",
+ "symbol": "injape",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15ta6ukknq82qcaq38erkvv3ycvmuqc83kn2vqh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "injape",
+ "baseDenom": "injape",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjBots",
+ "denom": "factory/inj1qfdgzwy6ppn4nq5s234smhhp9rt8z2yvjl2v49/InjBots",
+ "logo": "unknown.png",
+ "symbol": "InjBots",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qfdgzwy6ppn4nq5s234smhhp9rt8z2yvjl2v49/InjBots",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "InjBots",
+ "baseDenom": "InjBots",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjBull",
+ "denom": "factory/inj1hcymy0z58zxpm3esch2u5mps04a3vq2fup4j29/InjBull",
+ "logo": "unknown.png",
+ "symbol": "IJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hcymy0z58zxpm3esch2u5mps04a3vq2fup4j29/InjBull",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IJ",
+ "baseDenom": "IJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injbulls",
+ "denom": "factory/inj14t4aafu7v0vmls8f73ssrzptcm3prkx2r4tp0n/injbulls",
+ "logo": "unknown.png",
+ "symbol": "injbulls",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14t4aafu7v0vmls8f73ssrzptcm3prkx2r4tp0n/injbulls",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "injbulls",
+ "baseDenom": "injbulls",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJcel",
+ "denom": "factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/INJcel",
+ "logo": "unknown.png",
+ "symbol": "INJCEL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/INJcel",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJCEL",
+ "baseDenom": "INJCEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ CHIKU",
+ "denom": "factory/inj1g8s4usdsy7gujf96qma3p8r2a7m02juzfm4neh/CHIKU",
+ "logo": "unknown.png",
+ "symbol": "CHIKU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1g8s4usdsy7gujf96qma3p8r2a7m02juzfm4neh/CHIKU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHIKU",
+ "baseDenom": "CHIKU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjCroc",
+ "denom": "inj1dcl8q3yul8hu3htwxp8jf5ar5nqem62twjl0ga",
+ "logo": "unknown.png",
+ "symbol": "InjCroc",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dcl8q3yul8hu3htwxp8jf5ar5nqem62twjl0ga",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "InjCroc",
+ "baseDenom": "InjCroc",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ DINO",
+ "denom": "inj1zx9tv9jg98t0fa7u9882gjrtansggmakmwnenm",
+ "logo": "unknown.png",
+ "symbol": "DINO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zx9tv9jg98t0fa7u9882gjrtansggmakmwnenm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "DINO",
+ "baseDenom": "DINO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjDoge",
+ "denom": "inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c",
+ "logo": "unknown.png",
+ "symbol": "DOGEINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGEINJ",
+ "baseDenom": "DOGEINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJDOGE",
+ "denom": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE",
+ "logo": "unknown.png",
+ "symbol": "INJDOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJDOGE",
+ "baseDenom": "INJDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjDoge (Wormhole)",
+ "denom": "inj1hlg3pr7mtvzcczq0se4xygscmm2c99rrndh4gv",
+ "logo": "unknown.png",
+ "symbol": "INJDOGE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hlg3pr7mtvzcczq0se4xygscmm2c99rrndh4gv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJDOGE",
+ "baseDenom": "INJDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJDOGOS",
+ "denom": "inj1kl2zc5djmp8nmwsetua8gnmvug2c3dfa3uvy2e",
+ "logo": "unknown.png",
+ "symbol": "INJDOGOS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kl2zc5djmp8nmwsetua8gnmvug2c3dfa3uvy2e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJDOGOS",
+ "baseDenom": "INJDOGOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjDragon",
+ "denom": "inj1gkf6h3jwsxayy068uuf6ey55h29vjd5x45pg9g",
+ "logo": "unknown.png",
+ "symbol": "InjDragon",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gkf6h3jwsxayy068uuf6ey55h29vjd5x45pg9g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "InjDragon",
+ "baseDenom": "InjDragon",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJect",
+ "denom": "inj1tn8vjk2kdsr97nt5w3fhsslk0t8pnue7mf96wd",
+ "logo": "unknown.png",
+ "symbol": "IJT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tn8vjk2kdsr97nt5w3fhsslk0t8pnue7mf96wd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "IJT",
+ "baseDenom": "IJT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectDOGE",
+ "denom": "factory/inj13zcns55uycr8lcw8q4gvdqp0jejgknk9whv8uh/INJDOGE",
+ "logo": "unknown.png",
+ "symbol": "INJDOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13zcns55uycr8lcw8q4gvdqp0jejgknk9whv8uh/INJDOGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJDOGE",
+ "baseDenom": "INJDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectDOGE",
+ "denom": "factory/inj1nf43yjjx7sjc3eulffgfyxqhcraywwgrnqmqjc/INJDOGE",
+ "logo": "unknown.png",
+ "symbol": "INJDOGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nf43yjjx7sjc3eulffgfyxqhcraywwgrnqmqjc/INJDOGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJDOGE",
+ "baseDenom": "INJDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injected Birb",
+ "denom": "inj136zssf58vsk9uge7ulgpw9umerzcuu0kxdu5dj",
+ "logo": "unknown.png",
+ "symbol": "BIRB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj136zssf58vsk9uge7ulgpw9umerzcuu0kxdu5dj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BIRB",
+ "baseDenom": "BIRB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injection",
+ "denom": "inj1e8lv55d2nkjss7jtuht9m46cmjd83e39rppzkv",
+ "logo": "unknown.png",
+ "symbol": "INJECT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e8lv55d2nkjss7jtuht9m46cmjd83e39rppzkv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJECT",
+ "baseDenom": "INJECT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injection ",
+ "denom": "inj15sls6g6crwhax7uw704fewmktg6d64h8p46dqy",
+ "logo": "unknown.png",
+ "symbol": "INJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15sls6g6crwhax7uw704fewmktg6d64h8p46dqy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJ",
+ "baseDenom": "INJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective",
+ "denom": "inj",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/inj.png",
+ "symbol": "INJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJ",
+ "baseDenom": "INJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJECTIVE BOT (Wormhole)",
+ "denom": "inj1hhxn5p7gkcql23dpmkx6agy308xnklzsg5v5cw",
+ "logo": "unknown.png",
+ "symbol": "INJBOT",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hhxn5p7gkcql23dpmkx6agy308xnklzsg5v5cw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJBOT",
+ "baseDenom": "INJBOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveCelestiaNoFapLadyBoy420Inu",
+ "denom": "factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56eb0d476a19e7f7db58f6c859898f2cb84cdad1/img/incel.png",
+ "symbol": "INCEL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INCEL",
+ "baseDenom": "INCEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Champions",
+ "denom": "inj1rh94naxf7y20qxct44mrlawyhs79d06zmprv70",
+ "logo": "unknown.png",
+ "symbol": "CHAMPION",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rh94naxf7y20qxct44mrlawyhs79d06zmprv70",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CHAMPION",
+ "baseDenom": "CHAMPION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Cheelee",
+ "denom": "factory/inj16fsle0ywczyf8h4xfpwntg3mnv7cukd48nnjjp/CHELE",
+ "logo": "unknown.png",
+ "symbol": "CHELE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16fsle0ywczyf8h4xfpwntg3mnv7cukd48nnjjp/CHELE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CHELE",
+ "baseDenom": "CHELE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective City",
+ "denom": "factory/inj1xzl47mx87r7sx8e6cz9d3q257xtp9fue3dx073/CITY",
+ "logo": "unknown.png",
+ "symbol": "CITY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xzl47mx87r7sx8e6cz9d3q257xtp9fue3dx073/CITY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CITY",
+ "baseDenom": "CITY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective City",
+ "denom": "factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/CITY",
+ "logo": "unknown.png",
+ "symbol": "CITY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/CITY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CITY",
+ "baseDenom": "CITY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJECTIVED",
+ "denom": "inj16ccz3z2usevpyzrarggtqf5fgh8stjsql0rtew",
+ "logo": "unknown.png",
+ "symbol": "INJECTIVED",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ccz3z2usevpyzrarggtqf5fgh8stjsql0rtew",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJECTIVED",
+ "baseDenom": "INJECTIVED",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveDAO (Wormhole)",
+ "denom": "inj177wz9fpk6xjfrr7ex06sv5ukh0csgfak7x5uaq",
+ "logo": "unknown.png",
+ "symbol": "INJDAO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj177wz9fpk6xjfrr7ex06sv5ukh0csgfak7x5uaq",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJDAO",
+ "baseDenom": "INJDAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Doggos",
+ "denom": "factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO",
+ "logo": "unknown.png",
+ "symbol": "DOGGO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOGGO",
+ "baseDenom": "DOGGO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Evolution (Wormhole)",
+ "denom": "inj1f6fxh20pdyuj98c8l2svlky8k7z7hkdztttrd2",
+ "logo": "unknown.png",
+ "symbol": "INJEVO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f6fxh20pdyuj98c8l2svlky8k7z7hkdztttrd2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJEVO",
+ "baseDenom": "INJEVO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Genesis (Wormhole)",
+ "denom": "inj19gm2tefdz5lpx49veyqe3dhtqqkwmtyswv60ux",
+ "logo": "unknown.png",
+ "symbol": "INJGEN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19gm2tefdz5lpx49veyqe3dhtqqkwmtyswv60ux",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJGEN",
+ "baseDenom": "INJGEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Goat",
+ "denom": "factory/inj1ua3rm4lsrse2canapg96v8jtg9k9yqzuscu766/GoatInj",
+ "logo": "unknown.png",
+ "symbol": "GoatInj",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ua3rm4lsrse2canapg96v8jtg9k9yqzuscu766/GoatInj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GoatInj",
+ "baseDenom": "GoatInj",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Inu (Wormhole)",
+ "denom": "inj1pv567vvmkv2udn6llcnmnww78erjln35ut05kc",
+ "logo": "unknown.png",
+ "symbol": "INJINU",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pv567vvmkv2udn6llcnmnww78erjln35ut05kc",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJINU",
+ "baseDenom": "INJINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injective jump project",
+ "denom": "inj1xwr2fzkakfpx5afthuudhs90594kr2ka9wwldl",
+ "logo": "unknown.png",
+ "symbol": "INJjP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xwr2fzkakfpx5afthuudhs90594kr2ka9wwldl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJjP",
+ "baseDenom": "INJjP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Kings",
+ "denom": "factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/IKINGS",
+ "logo": "unknown.png",
+ "symbol": "IKINGS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/IKINGS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IKINGS",
+ "baseDenom": "IKINGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Memes (Wormhole)",
+ "denom": "inj1zq5mry9y76s5w7rd6eaf8kx3ak3mlssqkpzerp",
+ "logo": "unknown.png",
+ "symbol": "INJMEME",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zq5mry9y76s5w7rd6eaf8kx3ak3mlssqkpzerp",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMEME",
+ "baseDenom": "INJMEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveMEME (Wormhole)",
+ "denom": "inj179luuhr3ajhsyp92tw73w8d7c60jxzjcy22356",
+ "logo": "unknown.png",
+ "symbol": "INJMEME",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj179luuhr3ajhsyp92tw73w8d7c60jxzjcy22356",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMEME",
+ "baseDenom": "INJMEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Moon (Wormhole)",
+ "denom": "inj1tu45dzd54ugqc9fdwmce8vcpeyels45rllx4tt",
+ "logo": "unknown.png",
+ "symbol": "INJMOON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tu45dzd54ugqc9fdwmce8vcpeyels45rllx4tt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMOON",
+ "baseDenom": "INJMOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Network (Wormhole)",
+ "denom": "inj13ew774de6d3qhfm3msmhs9j57le9krrw2ezh3a",
+ "logo": "unknown.png",
+ "symbol": "INJNET",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13ew774de6d3qhfm3msmhs9j57le9krrw2ezh3a",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJNET",
+ "baseDenom": "INJNET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Of Gods (Wormhole)",
+ "denom": "inj1snaeff6pryn48fnrt6df04wysuq0rk7sg8ulje",
+ "logo": "unknown.png",
+ "symbol": "INJOFGOD",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1snaeff6pryn48fnrt6df04wysuq0rk7sg8ulje",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJOFGOD",
+ "baseDenom": "INJOFGOD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Panda AI",
+ "denom": "factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai",
+ "logo": "unknown.png",
+ "symbol": "IPDAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IPDAI",
+ "baseDenom": "IPDAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Pepe",
+ "denom": "factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/ipepe",
+ "logo": "unknown.png",
+ "symbol": "IPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/ipepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IPEPE",
+ "baseDenom": "IPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Pepe",
+ "denom": "factory/inj15hxjpac22adg3s6znhpc27zx6ufhf6z7fseue2/injpepe",
+ "logo": "unknown.png",
+ "symbol": "INJPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15hxjpac22adg3s6znhpc27zx6ufhf6z7fseue2/injpepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJPEPE",
+ "baseDenom": "INJPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectivePEPE",
+ "denom": "inj18y9v9w55v6dsp6nuk6gnjcvegf7ndtmqh9p9z4",
+ "logo": "unknown.png",
+ "symbol": "INJPEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18y9v9w55v6dsp6nuk6gnjcvegf7ndtmqh9p9z4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJPEPE",
+ "baseDenom": "INJPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Portal (Wormhole)",
+ "denom": "inj1etyzmggnjdtjazuj3eqqlngvvgu2tqt6vummfh",
+ "logo": "unknown.png",
+ "symbol": "INJPORTAL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1etyzmggnjdtjazuj3eqqlngvvgu2tqt6vummfh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJPORTAL",
+ "baseDenom": "INJPORTAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Premium (Wormhole)",
+ "denom": "inj18uw5etyyjqudtaap029u9g5qpxf85kqvtkyhq9",
+ "logo": "unknown.png",
+ "symbol": "INJPREMIUM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18uw5etyyjqudtaap029u9g5qpxf85kqvtkyhq9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJPREMIUM",
+ "baseDenom": "INJPREMIUM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Protocol (Wormhole)",
+ "denom": "inj15x75x44futqdpx7mp86qc6dcuaqcyvfh0gpxp5",
+ "logo": "unknown.png",
+ "symbol": "INJPRO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15x75x44futqdpx7mp86qc6dcuaqcyvfh0gpxp5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJPRO",
+ "baseDenom": "INJPRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Quants",
+ "denom": "factory/inj1yttneqwxxc4qju4p54549p6dq2j0d09e7gdzx8/Quants",
+ "logo": "unknown.png",
+ "symbol": "Quants",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yttneqwxxc4qju4p54549p6dq2j0d09e7gdzx8/Quants",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Quants",
+ "baseDenom": "Quants",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective-Santa (Wormhole)",
+ "denom": "inj17cqy5lr4gprjgnlv0j2mw4rhqfhr9zpupkur8t",
+ "logo": "unknown.png",
+ "symbol": "SANTAINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17cqy5lr4gprjgnlv0j2mw4rhqfhr9zpupkur8t",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SANTAINJ",
+ "baseDenom": "SANTAINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Snowy",
+ "denom": "factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY",
+ "logo": "unknown.png",
+ "symbol": "SNOWY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SNOWY",
+ "baseDenom": "SNOWY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective Snowy (Wormhole)",
+ "denom": "inj17hsx7q99utdthm9l6c6nvm2j8a92dr489car5x",
+ "logo": "unknown.png",
+ "symbol": "SNOWY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17hsx7q99utdthm9l6c6nvm2j8a92dr489car5x",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SNOWY",
+ "baseDenom": "SNOWY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveSwap",
+ "denom": "inj1t0dfz5gqfrq6exqn0sgyz4pen4lxchfka3udn4",
+ "logo": "unknown.png",
+ "symbol": "INJSWAP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t0dfz5gqfrq6exqn0sgyz4pen4lxchfka3udn4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJSWAP",
+ "baseDenom": "INJSWAP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveToMoon (Wormhole)",
+ "denom": "inj1jwms7tyq6fcr0gfzdu8q5qh906a8f44wws9pyn",
+ "logo": "unknown.png",
+ "symbol": "INJMOON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jwms7tyq6fcr0gfzdu8q5qh906a8f44wws9pyn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMOON",
+ "baseDenom": "INJMOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjectiveWolf🐺",
+ "denom": "factory/inj18pe85zjlrg5fcmna8tzqr0lysppcw5x7ecq33n/WOLF",
+ "logo": "unknown.png",
+ "symbol": "WOLF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18pe85zjlrg5fcmna8tzqr0lysppcw5x7ecq33n/WOLF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOLF",
+ "baseDenom": "WOLF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective X-Mas (Wormhole)",
+ "denom": "inj1uneeqwr3anam9qknjln6973lewv9k0cjmhj7rj",
+ "logo": "unknown.png",
+ "symbol": "INJXMAS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uneeqwr3anam9qknjln6973lewv9k0cjmhj7rj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJXMAS",
+ "baseDenom": "INJXMAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injective-X (Wormhole)",
+ "denom": "inj1uk9ac7qsjxqruva3tavqsu6mfvldu2zdws4cg2",
+ "logo": "unknown.png",
+ "symbol": "INJX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uk9ac7qsjxqruva3tavqsu6mfvldu2zdws4cg2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJX",
+ "baseDenom": "INJX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injectools",
+ "denom": "factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/INJECT",
+ "logo": "unknown.png",
+ "symbol": "INJECT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/INJECT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJECT",
+ "baseDenom": "INJECT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJenuity",
+ "denom": "inj1kxntfyzsqpug6gea7ha4pvmt44cpvmtma2mdkl",
+ "logo": "unknown.png",
+ "symbol": "NUIT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kxntfyzsqpug6gea7ha4pvmt44cpvmtma2mdkl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NUIT",
+ "baseDenom": "NUIT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injera",
+ "denom": "inj1fqn5wr483v6kvd3cs6sxdcmq4arcsjla5e5gkh",
+ "logo": "unknown.png",
+ "symbol": "INJERA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fqn5wr483v6kvd3cs6sxdcmq4arcsjla5e5gkh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJERA",
+ "baseDenom": "INJERA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJFIRE (Wormhole)",
+ "denom": "inj1544nmruy3xc3qqp84cenuzqrdnlyfkprwdfcz5",
+ "logo": "unknown.png",
+ "symbol": "INJFIRE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1544nmruy3xc3qqp84cenuzqrdnlyfkprwdfcz5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJFIRE",
+ "baseDenom": "INJFIRE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJGEN",
+ "denom": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injgen",
+ "logo": "unknown.png",
+ "symbol": "INJGEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injgen",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJGEN",
+ "baseDenom": "INJGEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJGOAT",
+ "denom": "inj1p9nluxkvuu5y9y7radpfnwemrdty74l74q2ycp",
+ "logo": "unknown.png",
+ "symbol": "INJGOAT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p9nluxkvuu5y9y7radpfnwemrdty74l74q2ycp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJGOAT",
+ "baseDenom": "INJGOAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJHAT",
+ "denom": "factory/inj1uc7awz4e4kg9dakz5t8w6zzz7r62992ezsr279/injhat",
+ "logo": "unknown.png",
+ "symbol": "INJHAT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uc7awz4e4kg9dakz5t8w6zzz7r62992ezsr279/injhat",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJHAT",
+ "baseDenom": "INJHAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injineer",
+ "denom": "factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/INJER",
+ "logo": "unknown.png",
+ "symbol": "INJER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/INJER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJER",
+ "baseDenom": "INJER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJINU",
+ "denom": "factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/INJINU",
+ "logo": "unknown.png",
+ "symbol": "INJINU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/INJINU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJINU",
+ "baseDenom": "INJINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJINU",
+ "denom": "inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5",
+ "logo": "unknown.png",
+ "symbol": "INJINU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJINU",
+ "baseDenom": "INJINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJINU",
+ "denom": "inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6",
+ "logo": "unknown.png",
+ "symbol": "INJINU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJINU",
+ "baseDenom": "INJINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INjitsu",
+ "denom": "inj1cuxse2aaggs6dqgq7ek8nkxzsnyxljpy9sylyf",
+ "logo": "unknown.png",
+ "symbol": "JITZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cuxse2aaggs6dqgq7ek8nkxzsnyxljpy9sylyf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JITZ",
+ "baseDenom": "JITZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injJay",
+ "denom": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injJay",
+ "logo": "unknown.png",
+ "symbol": "injJay",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injJay",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "injJay",
+ "baseDenom": "injJay",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ LOUNGE (Wormhole)",
+ "denom": "inj1dntqalk5gj6g5u74838lmrym3hslc9v3v9etqg",
+ "logo": "unknown.png",
+ "symbol": "INJ LOUNGE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dntqalk5gj6g5u74838lmrym3hslc9v3v9etqg",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJ LOUNGE",
+ "baseDenom": "INJ LOUNGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injmeme",
+ "denom": "inj18n3gzxa40ht824clrvg2p83fy6panstngkjakt",
+ "logo": "unknown.png",
+ "symbol": "INJMEME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18n3gzxa40ht824clrvg2p83fy6panstngkjakt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJMEME",
+ "baseDenom": "INJMEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJMEME",
+ "denom": "inj1czlt30femafl68uawedg63834vcg5z92u4ld8k",
+ "logo": "unknown.png",
+ "symbol": "INJM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1czlt30femafl68uawedg63834vcg5z92u4ld8k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJM",
+ "baseDenom": "INJM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ MIRZA",
+ "denom": "factory/inj1m6mqdp030nj6n7pa9n03y0zrkczajm96rcn7ye/MIRZA",
+ "logo": "unknown.png",
+ "symbol": "MIRZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1m6mqdp030nj6n7pa9n03y0zrkczajm96rcn7ye/MIRZA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIRZA",
+ "baseDenom": "MIRZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Inj Moon",
+ "denom": "inj1eu0zlrku7yculmcjep0n3xu3ehvms9pz96ug9e",
+ "logo": "unknown.png",
+ "symbol": "INJMOOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eu0zlrku7yculmcjep0n3xu3ehvms9pz96ug9e",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJMOOON",
+ "baseDenom": "INJMOOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjMOON (Wormhole)",
+ "denom": "inj12val9c8g0ztttfy8c5amey0adyn0su7x7f27gc",
+ "logo": "unknown.png",
+ "symbol": "INJMOON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12val9c8g0ztttfy8c5amey0adyn0su7x7f27gc",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMOON",
+ "baseDenom": "INJMOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJOY",
+ "denom": "factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy",
+ "logo": "unknown.png",
+ "symbol": "INJOY",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "INJOY",
+ "baseDenom": "INJOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injoyer",
+ "denom": "factory/inj10zvhydqqpejrfgvl2m9swcm0dkf9kc3zsj7yr4/injoy",
+ "logo": "unknown.png",
+ "symbol": "INJOY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10zvhydqqpejrfgvl2m9swcm0dkf9kc3zsj7yr4/injoy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJOY",
+ "baseDenom": "INJOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injpad",
+ "denom": "factory/inj17yqt8f5677hnxpv5gxjt7uwdrjxln0qhhfcj9j/injpad",
+ "logo": "unknown.png",
+ "symbol": "injpad",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj17yqt8f5677hnxpv5gxjt7uwdrjxln0qhhfcj9j/injpad",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "injpad",
+ "baseDenom": "injpad",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjPepe",
+ "denom": "inj1s8e7sn0f0sgtcj9jnpqnaut3tlh7z720dsxnn7",
+ "logo": "unknown.png",
+ "symbol": "JPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s8e7sn0f0sgtcj9jnpqnaut3tlh7z720dsxnn7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JPE",
+ "baseDenom": "JPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJPEPE",
+ "denom": "inj122az278echmzpccw30yy4a4kfull4sfnytqqt7",
+ "logo": "unknown.png",
+ "symbol": "INJPEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj122az278echmzpccw30yy4a4kfull4sfnytqqt7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJPEPE",
+ "baseDenom": "INJPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJPEPE",
+ "denom": "inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr",
+ "logo": "unknown.png",
+ "symbol": "INJPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJPEPE",
+ "baseDenom": "INJPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjPepe (Wormhole)",
+ "denom": "inj19xa3v0nwvdghpj4v2lzf64n70yx7wlqvaxcejn",
+ "logo": "unknown.png",
+ "symbol": "INJPEPE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19xa3v0nwvdghpj4v2lzf64n70yx7wlqvaxcejn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJPEPE",
+ "baseDenom": "INJPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ PIXEL DOG",
+ "denom": "inj1thsy9k5c90wu7sxk37r2g3u006cszqup8r39cl",
+ "logo": "unknown.png",
+ "symbol": "PIXDOG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1thsy9k5c90wu7sxk37r2g3u006cszqup8r39cl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PIXDOG",
+ "baseDenom": "PIXDOG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJS",
+ "denom": "factory/inj1yftyfrc720nhrzdep5j70rr8dm9na2thnrl7ut/injs",
+ "logo": "unknown.png",
+ "symbol": "INJS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yftyfrc720nhrzdep5j70rr8dm9na2thnrl7ut/injs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJS",
+ "baseDenom": "INJS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ Shiba",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/injshiba",
+ "logo": "unknown.png",
+ "symbol": "injshiba",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/injshiba",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "injshiba",
+ "baseDenom": "injshiba",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Inj-Shib (Wormhole)",
+ "denom": "inj1tty2w6sacjpc0ma6mefns27qtudmmp780rxlch",
+ "logo": "unknown.png",
+ "symbol": "INJSHIB",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tty2w6sacjpc0ma6mefns27qtudmmp780rxlch",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJSHIB",
+ "baseDenom": "INJSHIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjSwap (Wormhole)",
+ "denom": "inj1pn5u0rs8qprush2e6re775kyf7jdzk7hrm3gpj",
+ "logo": "unknown.png",
+ "symbol": "INJSWAP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pn5u0rs8qprush2e6re775kyf7jdzk7hrm3gpj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJSWAP",
+ "baseDenom": "INJSWAP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ TEST",
+ "denom": "factory/inj1gxf874xgdcza4rtkashrc8w2s3ulaxa3c7lmeh/inj-tt",
+ "logo": "unknown.png",
+ "symbol": "INJ TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gxf874xgdcza4rtkashrc8w2s3ulaxa3c7lmeh/inj-tt",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJ TEST",
+ "baseDenom": "INJ TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injtestclub",
+ "denom": "inj1r63ncppq6shw6z6pfrlflvxm6ysjm6ucx7ddnh",
+ "logo": "unknown.png",
+ "symbol": "ITSC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r63ncppq6shw6z6pfrlflvxm6ysjm6ucx7ddnh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ITSC",
+ "baseDenom": "ITSC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ Tools",
+ "denom": "factory/inj105a0fdpnq0wt5zygrhc0th5rlamd982r6ua75r/injtools",
+ "logo": "unknown.png",
+ "symbol": "INJTOOLS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj105a0fdpnq0wt5zygrhc0th5rlamd982r6ua75r/injtools",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJTOOLS",
+ "baseDenom": "INJTOOLS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ TO THE MOON",
+ "denom": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/MOON",
+ "logo": "unknown.png",
+ "symbol": "MOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/MOON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOON",
+ "baseDenom": "MOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjTwitterX (Wormhole)",
+ "denom": "inj1pykhnt3l4ekxe6ra5gjc03pgdglavsv34vdjmx",
+ "logo": "unknown.png",
+ "symbol": "INJXXX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pykhnt3l4ekxe6ra5gjc03pgdglavsv34vdjmx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJXXX",
+ "baseDenom": "INJXXX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUNI (Wormhole)",
+ "denom": "inj1dz8acarv345mk5uarfef99ecxuhne3vxux606r",
+ "logo": "unknown.png",
+ "symbol": "INJUNI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dz8acarv345mk5uarfef99ecxuhne3vxux606r",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJUNI",
+ "baseDenom": "INJUNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJusd",
+ "denom": "inj1qchqhwkzzws94rpfe22qr2v5cv529t93xgrdfv",
+ "logo": "unknown.png",
+ "symbol": "INJusd",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qchqhwkzzws94rpfe22qr2v5cv529t93xgrdfv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJusd",
+ "baseDenom": "INJusd",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "injussy",
+ "denom": "factory/inj1s9smy53dtqq087usaf02sz984uddndwuj2f0wt/injussy",
+ "logo": "unknown.png",
+ "symbol": "INJUSSY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s9smy53dtqq087usaf02sz984uddndwuj2f0wt/injussy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJUSSY",
+ "baseDenom": "INJUSSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUSSY",
+ "denom": "inj1qydw0aj2gwv27zkrp7xulrg43kx88rv27ymw6m",
+ "logo": "unknown.png",
+ "symbol": "JUSSY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qydw0aj2gwv27zkrp7xulrg43kx88rv27ymw6m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JUSSY",
+ "baseDenom": "JUSSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUSSY",
+ "denom": "inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns",
+ "logo": "unknown.png",
+ "symbol": "INJUSSY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INJUSSY",
+ "baseDenom": "INJUSSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUSSY",
+ "denom": "inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc",
+ "logo": "unknown.png",
+ "symbol": "INJUSSY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJUSSY",
+ "baseDenom": "INJUSSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUST",
+ "denom": "factory/inj123hzxzuee7knt0lf7w9grkxtumg4kxszklmps6/INJUST",
+ "logo": "unknown.png",
+ "symbol": "INJUST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj123hzxzuee7knt0lf7w9grkxtumg4kxszklmps6/INJUST",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJUST",
+ "baseDenom": "INJUST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUSTICE",
+ "denom": "inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449",
+ "logo": "unknown.png",
+ "symbol": "INJUST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJUST",
+ "baseDenom": "INJUST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJUSTICE",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/INJUSTICE",
+ "logo": "unknown.png",
+ "symbol": "INJUSTICE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/INJUSTICE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJUSTICE",
+ "baseDenom": "INJUSTICE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Injverse (Wormhole)",
+ "denom": "inj1leqzwmk6xkczjrum5nefcysqt8k6qnmq5v043y",
+ "logo": "unknown.png",
+ "symbol": "INJVERSE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1leqzwmk6xkczjrum5nefcysqt8k6qnmq5v043y",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJVERSE",
+ "baseDenom": "INJVERSE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INJ WIF HAT",
+ "denom": "factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/IWH",
+ "logo": "unknown.png",
+ "symbol": "IWH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/IWH",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IWH",
+ "baseDenom": "IWH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjXBonk (Wormhole)",
+ "denom": "inj1p0tvxzfhht5ychd6vj8rqhm0u7g5zxl6prrzpk",
+ "logo": "unknown.png",
+ "symbol": "IXB",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p0tvxzfhht5ychd6vj8rqhm0u7g5zxl6prrzpk",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "IXB",
+ "baseDenom": "IXB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjXsolana (Wormhole)",
+ "denom": "inj1u82h7d8l47q3kzwvkm2mgzrskk5au4lrkntkjn",
+ "logo": "unknown.png",
+ "symbol": "INJXSOL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u82h7d8l47q3kzwvkm2mgzrskk5au4lrkntkjn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJXSOL",
+ "baseDenom": "INJXSOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "InjXsolana (Wormhole)",
+ "denom": "inj174p4dt45793vylmt8575cltj6wadtc62nakczq",
+ "logo": "unknown.png",
+ "symbol": "INJXSOL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj174p4dt45793vylmt8575cltj6wadtc62nakczq",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJXSOL",
+ "baseDenom": "INJXSOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INTERNET EXPLORER",
+ "denom": "factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/INJEX",
+ "logo": "unknown.png",
+ "symbol": "INJEX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/INJEX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJEX",
+ "baseDenom": "INJEX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Inu",
+ "denom": "factory/inj1z0my390aysyk276lazp4h6c8c49ndnm8splv7n/Inu",
+ "logo": "unknown.png",
+ "symbol": "Inu",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z0my390aysyk276lazp4h6c8c49ndnm8splv7n/Inu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Inu",
+ "baseDenom": "Inu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Inujective",
+ "denom": "inj13jhpsn63j6p693ffnfag3efadm9ds5dqqpuml9",
+ "logo": "unknown.png",
+ "symbol": "INUJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13jhpsn63j6p693ffnfag3efadm9ds5dqqpuml9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INUJ",
+ "baseDenom": "INUJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "INUWIFHAT",
+ "denom": "inj1xtrzl67q5rkdrgcauljpwzwpt7pgs3jm32zcaz",
+ "logo": "unknown.png",
+ "symbol": "INUWIFHAT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xtrzl67q5rkdrgcauljpwzwpt7pgs3jm32zcaz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INUWIFHAT",
+ "baseDenom": "INUWIFHAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Invictus ",
+ "denom": "inj1ajzrh9zffh0j4ktjczcjgp87v0vf59nhyvye9v",
+ "logo": "unknown.png",
+ "symbol": "Inv",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ajzrh9zffh0j4ktjczcjgp87v0vf59nhyvye9v",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Inv",
+ "baseDenom": "Inv",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IOA",
+ "denom": "inj1xwkqem29z2faqhjgr6jnpl7n62f2wy4nme8v77",
+ "logo": "unknown.png",
+ "symbol": "IOA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xwkqem29z2faqhjgr6jnpl7n62f2wy4nme8v77",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "IOA",
+ "baseDenom": "IOA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ion DAO",
+ "denom": "ibc/1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png",
+ "symbol": "ION",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ION",
+ "baseDenom": "ION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IPEPE",
+ "denom": "factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/IPEPE",
+ "logo": "unknown.png",
+ "symbol": "IPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/IPEPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IPEPE",
+ "baseDenom": "IPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IPEPER",
+ "denom": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/IPEPER",
+ "logo": "unknown.png",
+ "symbol": "IPEPER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/IPEPER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "IPEPER",
+ "baseDenom": "IPEPER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ISILLY",
+ "denom": "factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY",
+ "logo": "unknown.png",
+ "symbol": "ISILLY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ISILLY",
+ "baseDenom": "ISILLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ISILLY",
+ "denom": "factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/iSILLY",
+ "logo": "unknown.png",
+ "symbol": "ISILLY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/iSILLY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ISILLY",
+ "baseDenom": "ISILLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ito",
+ "denom": "ibc/E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/I.png",
+ "symbol": "ITO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ITO",
+ "baseDenom": "ITO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "it’s not DOJO",
+ "denom": "inj1n2l9mq2ndyp83u6me4hf7yw76xkx7h792juksq",
+ "logo": "unknown.png",
+ "symbol": "notDOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n2l9mq2ndyp83u6me4hf7yw76xkx7h792juksq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "notDOJO",
+ "baseDenom": "notDOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "IUSD",
+ "denom": "factory/inj1l7u9lv8dfqkjnc7antm5lk7lmskh8zldh9yg05/iUSD",
+ "logo": "unknown.png",
+ "symbol": "IUSD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1l7u9lv8dfqkjnc7antm5lk7lmskh8zldh9yg05/iUSD",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "IUSD",
+ "baseDenom": "IUSD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Iwk",
+ "denom": "inj1a0rphvxxgr56354vqz8jhlzuhwyqs8p4zag2kn",
+ "logo": "unknown.png",
+ "symbol": "Eik",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a0rphvxxgr56354vqz8jhlzuhwyqs8p4zag2kn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Eik",
+ "baseDenom": "Eik",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Jai Shree Ram",
+ "denom": "inj1hdc2qk2epr5fehdjkquz3s4pa0u4alyrd7ews9",
+ "logo": "unknown.png",
+ "symbol": "JSR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hdc2qk2epr5fehdjkquz3s4pa0u4alyrd7ews9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JSR",
+ "baseDenom": "JSR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JAKE",
+ "denom": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/JAKE",
+ "logo": "unknown.png",
+ "symbol": "JAKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/JAKE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JAKE",
+ "baseDenom": "JAKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Japanese token",
+ "denom": "factory/inj13vtsydqxwya3mpmnqa20lhjg4uhg8pp42wvl7t/japan",
+ "logo": "unknown.png",
+ "symbol": "JAPAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13vtsydqxwya3mpmnqa20lhjg4uhg8pp42wvl7t/japan",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JAPAN",
+ "baseDenom": "JAPAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Jay",
+ "denom": "inj1qt007zcu57qd4nq9u7g5ffgeyyqkx2h4qfzmn4",
+ "logo": "unknown.png",
+ "symbol": "Jay",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qt007zcu57qd4nq9u7g5ffgeyyqkx2h4qfzmn4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Jay",
+ "baseDenom": "Jay",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Jedi",
+ "denom": "inj1ejfu0rrx4ypfehpms8qzlwvyqs3p6c0tk2y7w7",
+ "logo": "unknown.png",
+ "symbol": "JEDI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ejfu0rrx4ypfehpms8qzlwvyqs3p6c0tk2y7w7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JEDI",
+ "baseDenom": "JEDI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JEDI",
+ "denom": "inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf",
+ "logo": "unknown.png",
+ "symbol": "JEDI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JEDI",
+ "baseDenom": "JEDI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JEET",
+ "denom": "inj1sjff8grguxkzp2wft4xnvsmrksera5l5hhr2nt",
+ "logo": "unknown.png",
+ "symbol": "JEET",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sjff8grguxkzp2wft4xnvsmrksera5l5hhr2nt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JEET",
+ "baseDenom": "JEET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JEETERS",
+ "denom": "factory/inj1jxj9u5y02w4veajmke39jnzmymy5538n420l9z/jeeters",
+ "logo": "unknown.png",
+ "symbol": "JEETERS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jxj9u5y02w4veajmke39jnzmymy5538n420l9z/jeeters",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JEETERS",
+ "baseDenom": "JEETERS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Jenner",
+ "denom": "inj1yjecs8uklzruxphv447l7urdnlguwynm5f45z7",
+ "logo": "unknown.png",
+ "symbol": "Jenner",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yjecs8uklzruxphv447l7urdnlguwynm5f45z7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Jenner",
+ "baseDenom": "Jenner",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JESUS",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/JESUS",
+ "logo": "unknown.png",
+ "symbol": "JESUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/JESUS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JESUS",
+ "baseDenom": "JESUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Jesus Injective (Wormhole)",
+ "denom": "inj12d7qq0lp656jkrr2d3ez55cr330f3we9c75ml6",
+ "logo": "unknown.png",
+ "symbol": "INJESUS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12d7qq0lp656jkrr2d3ez55cr330f3we9c75ml6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJESUS",
+ "baseDenom": "INJESUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JesusInjective (Wormhole)",
+ "denom": "inj13tnc70qhxuhc2efyvadc35rgq8uxeztl4ajvkf",
+ "logo": "unknown.png",
+ "symbol": "JESUSINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13tnc70qhxuhc2efyvadc35rgq8uxeztl4ajvkf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "JESUSINJ",
+ "baseDenom": "JESUSINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "jim",
+ "denom": "inj13f6gll3666sa2wnj978lhrvjv2803tu5q8kuqd",
+ "logo": "unknown.png",
+ "symbol": "jim",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13f6gll3666sa2wnj978lhrvjv2803tu5q8kuqd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "jim",
+ "baseDenom": "jim",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "jimmy",
+ "denom": "ibc/BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/jimmy.png",
+ "symbol": "JIMMY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JIMMY",
+ "baseDenom": "JIMMY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JINJA",
+ "denom": "factory/inj1kr66vwdpxmcgqgw30t6duhtmfdpcvlkljgn5f7/JINJA",
+ "logo": "unknown.png",
+ "symbol": "JINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kr66vwdpxmcgqgw30t6duhtmfdpcvlkljgn5f7/JINJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JINJA",
+ "baseDenom": "JINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JINJAO",
+ "denom": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL",
+ "logo": "unknown.png",
+ "symbol": "JINJAO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JINJAO",
+ "baseDenom": "JINJAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JINJAO",
+ "denom": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/JINJAO",
+ "logo": "unknown.png",
+ "symbol": "JINJAO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/JINJAO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JINJAO",
+ "baseDenom": "JINJAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JINXCoin",
+ "denom": "factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/JINX",
+ "logo": "unknown.png",
+ "symbol": "JINX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/JINX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JINX",
+ "baseDenom": "JINX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JJTEST",
+ "denom": "inj1vvekjsupcth0g2w0tkp6347xxzk5cpx87hwqdm",
+ "logo": "unknown.png",
+ "symbol": "JTEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vvekjsupcth0g2w0tkp6347xxzk5cpx87hwqdm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JTEST",
+ "baseDenom": "JTEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JNI",
+ "denom": "factory/inj140ddmtvnfytfy4htnqk06um3dmq5l79rl3wlgy/jni",
+ "logo": "unknown.png",
+ "symbol": "JNI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj140ddmtvnfytfy4htnqk06um3dmq5l79rl3wlgy/jni",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JNI",
+ "baseDenom": "JNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Joe",
+ "denom": "inj14jgu6cs42decuqdfwfz2j462n8lrwhs2d5qdsy",
+ "logo": "unknown.png",
+ "symbol": "Joe",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14jgu6cs42decuqdfwfz2j462n8lrwhs2d5qdsy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Joe",
+ "baseDenom": "Joe",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Joe Biden",
+ "denom": "inj1d2ymlnpvqny9x2qfqykzp8geq3gmg9qrm3qwhe",
+ "logo": "unknown.png",
+ "symbol": "BIDEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d2ymlnpvqny9x2qfqykzp8geq3gmg9qrm3qwhe",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BIDEN",
+ "baseDenom": "BIDEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Joe Boden",
+ "denom": "factory/inj1wnrxrkj59t6jeg3jxzhkc0efr2y24y6knvsnmp/boden",
+ "logo": "unknown.png",
+ "symbol": "BODEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wnrxrkj59t6jeg3jxzhkc0efr2y24y6knvsnmp/boden",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BODEN",
+ "baseDenom": "BODEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JOKER",
+ "denom": "inj1q4amkjwefyh60nhtvtzhsmpz3mukc0fmpt6vd0",
+ "logo": "unknown.png",
+ "symbol": "JOKER",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1q4amkjwefyh60nhtvtzhsmpz3mukc0fmpt6vd0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "JOKER",
+ "baseDenom": "JOKER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "jomanji",
+ "denom": "inj1gy76l9p5ar4yqquk7mqqlmpygxtluu2nf7mt4c",
+ "logo": "unknown.png",
+ "symbol": "jomanji",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gy76l9p5ar4yqquk7mqqlmpygxtluu2nf7mt4c",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "jomanji",
+ "baseDenom": "jomanji",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Judo",
+ "denom": "inj16ukv8g2jcmml7gykxn5ws8ykhxjkugl4zhft5h",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/judo.png",
+ "symbol": "JUDO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16ukv8g2jcmml7gykxn5ws8ykhxjkugl4zhft5h",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JUDO",
+ "baseDenom": "JUDO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "JUKI",
+ "denom": "inj1nj2d93q2ktlxrju2uwyevmwcatwcumuejrplxz",
+ "logo": "unknown.png",
+ "symbol": "JUKI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nj2d93q2ktlxrju2uwyevmwcatwcumuejrplxz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "JUKI",
+ "baseDenom": "JUKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "K9 LOVE KUNAI",
+ "denom": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/KU9",
+ "logo": "unknown.png",
+ "symbol": "KU9",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/KU9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KU9",
+ "baseDenom": "KU9",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KADO (Wormhole)",
+ "denom": "inj1608auvvlrz9gf3hxkpkjf90vwwgfyxfxth83g6",
+ "logo": "unknown.png",
+ "symbol": "KADO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1608auvvlrz9gf3hxkpkjf90vwwgfyxfxth83g6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KADO",
+ "baseDenom": "KADO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAGE",
+ "denom": "inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65",
+ "logo": "https://i.imgur.com/wvNCSB3.png",
+ "symbol": "KAGE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KAGE",
+ "baseDenom": "KAGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAGECoin",
+ "denom": "factory/inj1jqu8w2qqlc79aewc74r5ts7hl85ksjk4ud7jm8/KAGE",
+ "logo": "unknown.png",
+ "symbol": "KAGE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jqu8w2qqlc79aewc74r5ts7hl85ksjk4ud7jm8/KAGE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KAGE",
+ "baseDenom": "KAGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAI",
+ "denom": "factory/inj1kdvaxn5373fm4g8xxqhq08jefjhmefqjn475dc/KAI",
+ "logo": "unknown.png",
+ "symbol": "KAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kdvaxn5373fm4g8xxqhq08jefjhmefqjn475dc/KAI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KAI",
+ "baseDenom": "KAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kami",
+ "denom": "factory/inj1hyjg677dqp3uj3dh9vny874k2gjr5fuvdjjzk7/kami",
+ "logo": "unknown.png",
+ "symbol": "kami",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hyjg677dqp3uj3dh9vny874k2gjr5fuvdjjzk7/kami",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "kami",
+ "baseDenom": "kami",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "kangoroo",
+ "denom": "inj12s9a6vnmgyf8vx448cmt2hzmhhfuptw8agn2xs",
+ "logo": "unknown.png",
+ "symbol": "babyKANGAROO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12s9a6vnmgyf8vx448cmt2hzmhhfuptw8agn2xs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyKANGAROO",
+ "baseDenom": "babyKANGAROO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Karma",
+ "denom": "factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karmainj",
+ "logo": "unknown.png",
+ "symbol": "KARMA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karmainj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KARMA",
+ "baseDenom": "KARMA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kasa (傘)",
+ "denom": "factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/kasa",
+ "logo": "unknown.png",
+ "symbol": "KASA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/kasa",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KASA",
+ "baseDenom": "KASA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Katana",
+ "denom": "inj1tj4l2qmvw22nquwqkr34v83llyzu97l65zjqsf",
+ "logo": "unknown.png",
+ "symbol": "KATANA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tj4l2qmvw22nquwqkr34v83llyzu97l65zjqsf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KATANA",
+ "baseDenom": "KATANA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Katana",
+ "denom": "inj18kem7dt3tpjp2mx8khujnuuhevqg4exjcd7dnm",
+ "logo": "unknown.png",
+ "symbol": "KTN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18kem7dt3tpjp2mx8khujnuuhevqg4exjcd7dnm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KTN",
+ "baseDenom": "KTN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KATANA",
+ "denom": "inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3",
+ "logo": "unknown.png",
+ "symbol": "KATANA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KATANA",
+ "baseDenom": "KATANA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KATANA",
+ "denom": "inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8",
+ "logo": "unknown.png",
+ "symbol": "KATANA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KATANA",
+ "baseDenom": "KATANA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KATI",
+ "denom": "factory/inj1gueqq3xdek4q5uyh8jp5xnm0ah33elanvgc524/KATI",
+ "logo": "unknown.png",
+ "symbol": "KATI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gueqq3xdek4q5uyh8jp5xnm0ah33elanvgc524/KATI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KATI",
+ "baseDenom": "KATI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kava",
+ "denom": "ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/kava.png",
+ "symbol": "KAVA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KAVA",
+ "baseDenom": "KAVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAVA CHAIN",
+ "denom": "inj1t307cfqzqkm4jwqdtcwmvdrfvrz232sffatgva",
+ "logo": "unknown.png",
+ "symbol": "KAVAverified",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t307cfqzqkm4jwqdtcwmvdrfvrz232sffatgva",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KAVAverified",
+ "baseDenom": "KAVAverified",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kava Hard",
+ "denom": "ibc/D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/hard.png",
+ "symbol": "HARD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "HARD",
+ "baseDenom": "HARD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kava Swap",
+ "denom": "ibc/70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/swp.png",
+ "symbol": "SWP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SWP",
+ "baseDenom": "SWP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kava USDX",
+ "denom": "ibc/C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/usdx.png",
+ "symbol": "USDX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDX",
+ "baseDenom": "USDX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAZE BOT",
+ "denom": "factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KBT",
+ "logo": "unknown.png",
+ "symbol": "KAZE BOT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KBT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KAZE BOT",
+ "baseDenom": "KAZE BOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KAZE BOT",
+ "denom": "factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB",
+ "logo": "unknown.png",
+ "symbol": "KAZE BOT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KAZE BOT",
+ "baseDenom": "KAZE BOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kazoo",
+ "denom": "inj1vweya4us4npaa5xdf026sel0r4qazdvzx6v0v4",
+ "logo": "unknown.png",
+ "symbol": "Kaz",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vweya4us4npaa5xdf026sel0r4qazdvzx6v0v4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Kaz",
+ "baseDenom": "Kaz",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "kekemall",
+ "denom": "inj1037seqrvafhzmwffe2rqgcad3akh935d5p3kgk",
+ "logo": "unknown.png",
+ "symbol": "keke",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1037seqrvafhzmwffe2rqgcad3akh935d5p3kgk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "keke",
+ "baseDenom": "keke",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KENNY",
+ "denom": "inj19ajm97y78hpqg5pxwy4ezyf437mccy57k4krh7",
+ "logo": "unknown.png",
+ "symbol": "ken",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19ajm97y78hpqg5pxwy4ezyf437mccy57k4krh7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ken",
+ "baseDenom": "ken",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kermit",
+ "denom": "factory/inj1av2965j0asg5qwyccm8ycz3qk0eya4873dkp3u/kermit",
+ "logo": "unknown.png",
+ "symbol": "KMT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1av2965j0asg5qwyccm8ycz3qk0eya4873dkp3u/kermit",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KMT",
+ "baseDenom": "KMT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KETCHUP",
+ "denom": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/KETCHUP",
+ "logo": "unknown.png",
+ "symbol": "KETCHUP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/KETCHUP",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KETCHUP",
+ "baseDenom": "KETCHUP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KIBA",
+ "denom": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/KIBA",
+ "logo": "unknown.png",
+ "symbol": "KIBA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/KIBA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KIBA",
+ "baseDenom": "KIBA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KIKI",
+ "denom": "factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki",
+ "logo": "unknown.png",
+ "symbol": "KIKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KIKI",
+ "baseDenom": "KIKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "kimono",
+ "denom": "inj1czegjew4z5tfq8mwljx3qax5ql5k57t38zpkg5",
+ "logo": "unknown.png",
+ "symbol": "kimo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1czegjew4z5tfq8mwljx3qax5ql5k57t38zpkg5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "kimo",
+ "baseDenom": "kimo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KingElon (Wormhole)",
+ "denom": "inj195vkuzpy64f6r7mra4m5aqgtj4ldnk2qs0zx8n",
+ "logo": "unknown.png",
+ "symbol": "KINGELON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj195vkuzpy64f6r7mra4m5aqgtj4ldnk2qs0zx8n",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KINGELON",
+ "baseDenom": "KINGELON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KingFusion (Wormhole)",
+ "denom": "inj1ynehe0s2kh9fqp5tka99f8wj2xgsha74h3cmtu",
+ "logo": "unknown.png",
+ "symbol": "KINGFUSION",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ynehe0s2kh9fqp5tka99f8wj2xgsha74h3cmtu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KINGFUSION",
+ "baseDenom": "KINGFUSION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KingFusion (Wormhole)",
+ "denom": "inj1mnzwm6fvkruendv8r63vzlw72yv7fvtngkkzs9",
+ "logo": "unknown.png",
+ "symbol": "KINGFUSION",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mnzwm6fvkruendv8r63vzlw72yv7fvtngkkzs9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KINGFUSION",
+ "baseDenom": "KINGFUSION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KingInjective (Wormhole)",
+ "denom": "inj1a3ec88sxlnu3ntdjk79skr58uetrvxcm4puhth",
+ "logo": "unknown.png",
+ "symbol": "KINGINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a3ec88sxlnu3ntdjk79skr58uetrvxcm4puhth",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KINGINJ",
+ "baseDenom": "KINGINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KINJ",
+ "denom": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/kinj",
+ "logo": "unknown.png",
+ "symbol": "KINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/kinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KINJ",
+ "baseDenom": "KINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kinja",
+ "denom": "factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/Kinja",
+ "logo": "unknown.png",
+ "symbol": "Kinja",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/Kinja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Kinja",
+ "baseDenom": "Kinja",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KIRA",
+ "denom": "factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/kira.jpeg",
+ "symbol": "KIRA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KIRA",
+ "baseDenom": "KIRA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KIRAINU",
+ "denom": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/KIRAINU",
+ "logo": "unknown.png",
+ "symbol": "KIRAINU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/KIRAINU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KIRAINU",
+ "baseDenom": "KIRAINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KiraWifHat",
+ "denom": "factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat",
+ "logo": "unknown.png",
+ "symbol": "KiraWifHat",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KiraWifHat",
+ "baseDenom": "KiraWifHat",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KiraWifHat",
+ "denom": "factory/inj1kujwsrwlqa7yj9545r9tfmrlqcknlmwm3rqe0q/KiraWifHat",
+ "logo": "unknown.png",
+ "symbol": "KiraWifHat",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kujwsrwlqa7yj9545r9tfmrlqcknlmwm3rqe0q/KiraWifHat",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KiraWifHat",
+ "baseDenom": "KiraWifHat",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KISHU",
+ "denom": "factory/inj1putkaddmnnwjw096tfn7rfyl7jq447y74vmqzt/kishu",
+ "logo": "unknown.png",
+ "symbol": "KISHU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1putkaddmnnwjw096tfn7rfyl7jq447y74vmqzt/kishu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KISHU",
+ "baseDenom": "KISHU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Klaus Project (Wormhole)",
+ "denom": "inj1zgurc2nd5awcxmpq7q6zgh9elnxg0z9g5yn4k3",
+ "logo": "unknown.png",
+ "symbol": "KLAUS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zgurc2nd5awcxmpq7q6zgh9elnxg0z9g5yn4k3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KLAUS",
+ "baseDenom": "KLAUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Knight",
+ "denom": "inj1tvxfut7uayypz2ywm92dkvhm7pdjcs85khsenj",
+ "logo": "unknown.png",
+ "symbol": "KNIGHT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tvxfut7uayypz2ywm92dkvhm7pdjcs85khsenj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KNIGHT",
+ "baseDenom": "KNIGHT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KOALA",
+ "denom": "inj19lm6nrfvam539ahr0c8nuapfh6xzlhjaxv2a39",
+ "logo": "unknown.png",
+ "symbol": "babyKOALA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19lm6nrfvam539ahr0c8nuapfh6xzlhjaxv2a39",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyKOALA",
+ "baseDenom": "babyKOALA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Koga",
+ "denom": "inj1npvknmdjsk7s35gmemwalxlq4dd38p68mywgvv",
+ "logo": "unknown.png",
+ "symbol": "KOGA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1npvknmdjsk7s35gmemwalxlq4dd38p68mywgvv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KOGA",
+ "baseDenom": "KOGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Koga",
+ "denom": "factory/inj1npvrye90c9j7vfv8ldh9apt8t3a9mv9lsv52yd/KOGA",
+ "logo": "unknown.png",
+ "symbol": "KOGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1npvrye90c9j7vfv8ldh9apt8t3a9mv9lsv52yd/KOGA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KOGA",
+ "baseDenom": "KOGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "koINJ",
+ "denom": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/koinj",
+ "logo": "unknown.png",
+ "symbol": "koINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/koinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "koINJ",
+ "baseDenom": "koINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KOOG",
+ "denom": "inj1dkpmkm7j8t2dh5zqp04xnjlhljmejss3edz3wp",
+ "logo": "unknown.png",
+ "symbol": "KOOG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dkpmkm7j8t2dh5zqp04xnjlhljmejss3edz3wp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KOOG",
+ "baseDenom": "KOOG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KRINJ",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/KRINJ",
+ "logo": "unknown.png",
+ "symbol": "KRINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/KRINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KRINJ",
+ "baseDenom": "KRINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kriptic Dragons (Wormhole)",
+ "denom": "inj12txuqr77qknte82pv5uaz8fpg0rsvssjr2n6jj",
+ "logo": "unknown.png",
+ "symbol": "KRIPDRAGON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12txuqr77qknte82pv5uaz8fpg0rsvssjr2n6jj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KRIPDRAGON",
+ "baseDenom": "KRIPDRAGON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kropa",
+ "denom": "inj1smlveclt2dakmxx36zla343qyznscaxsyza3gh",
+ "logo": "unknown.png",
+ "symbol": "KROPA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1smlveclt2dakmxx36zla343qyznscaxsyza3gh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KROPA",
+ "baseDenom": "KROPA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kroppa",
+ "denom": "inj15x62fd9yy0d8lll00k3h66d3terjn79e29l60p",
+ "logo": "unknown.png",
+ "symbol": "KROPPA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15x62fd9yy0d8lll00k3h66d3terjn79e29l60p",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KROPPA",
+ "baseDenom": "KROPPA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KRYSY",
+ "denom": "inj1jxcn5t8tmnw26r6fa27m76cw0a7zrzhyenf4c5",
+ "logo": "unknown.png",
+ "symbol": "KRYSY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jxcn5t8tmnw26r6fa27m76cw0a7zrzhyenf4c5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KRYSY",
+ "baseDenom": "KRYSY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kujira",
+ "denom": "ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/kuji.png",
+ "symbol": "KUJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "KUJI",
+ "baseDenom": "KUJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "KUNAI",
+ "denom": "inj12ntgeddvyzt2vnmy2h8chz080n274df7vvr0ru",
+ "logo": "unknown.png",
+ "symbol": "KUNAI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12ntgeddvyzt2vnmy2h8chz080n274df7vvr0ru",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KUNAI",
+ "baseDenom": "KUNAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Kuso",
+ "denom": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/Kuso",
+ "logo": "unknown.png",
+ "symbol": "Kuso",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/Kuso",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Kuso",
+ "baseDenom": "Kuso",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LAB",
+ "denom": "ibc/4BFC760786BE40F8C10AA8777D68C6BEFE9C95A881AD29AF1462194018AB7C0C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/LAB.png",
+ "symbol": "LAB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4BFC760786BE40F8C10AA8777D68C6BEFE9C95A881AD29AF1462194018AB7C0C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LAB",
+ "baseDenom": "LAB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LABS",
+ "denom": "factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs",
+ "logo": "unknown.png",
+ "symbol": "LABS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LABS",
+ "baseDenom": "LABS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LADS",
+ "denom": "ibc/5631EB07DC39253B07E35FC9EA7CFB652F63A459A6B2140300EB4C253F1E06A2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/LADS.png",
+ "symbol": "LADS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5631EB07DC39253B07E35FC9EA7CFB652F63A459A6B2140300EB4C253F1E06A2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LADS",
+ "baseDenom": "LADS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LALA",
+ "denom": "inj156wqs2alkgmspj8shjje56ajgneqtjfk20w9n6",
+ "logo": "unknown.png",
+ "symbol": "LALA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj156wqs2alkgmspj8shjje56ajgneqtjfk20w9n6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LALA",
+ "baseDenom": "LALA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LAMA",
+ "denom": "factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA",
+ "logo": "unknown.png",
+ "symbol": "LAMA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LAMA",
+ "baseDenom": "LAMA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LAMBOPEPE",
+ "denom": "factory/inj1rge0wzk9hn8qgwz77m9zcznahrp5s322fa6lhu/LAMBO",
+ "logo": "unknown.png",
+ "symbol": "LAMBO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rge0wzk9hn8qgwz77m9zcznahrp5s322fa6lhu/LAMBO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LAMBO",
+ "baseDenom": "LAMBO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LAVA",
+ "denom": "inj1jrykfhmfcy4eh8t3yw6ru3ypef39s3dsu46th7",
+ "logo": "unknown.png",
+ "symbol": "LAVA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jrykfhmfcy4eh8t3yw6ru3ypef39s3dsu46th7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LAVA",
+ "baseDenom": "LAVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lazy Frog",
+ "denom": "inj176pze4mvaw2kv72sam0fwt3vn08axlj08e46ac",
+ "logo": "unknown.png",
+ "symbol": "LFR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj176pze4mvaw2kv72sam0fwt3vn08axlj08e46ac",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LFR",
+ "baseDenom": "LFR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lazy Frog",
+ "denom": "inj1vhw7xadr0366hjnvet8tnpgt898vkm47faycar",
+ "logo": "unknown.png",
+ "symbol": "LFROG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vhw7xadr0366hjnvet8tnpgt898vkm47faycar",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LFROG",
+ "baseDenom": "LFROG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LBFS",
+ "denom": "inj18ssfe746a42me2j02casptrs0y2z5yak06cy4w",
+ "logo": "unknown.png",
+ "symbol": "LBFS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18ssfe746a42me2j02casptrs0y2z5yak06cy4w",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LBFS",
+ "baseDenom": "LBFS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LBKT",
+ "denom": "inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey",
+ "logo": "unknown.png",
+ "symbol": "LBKT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LBKT",
+ "baseDenom": "LBKT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LEGE",
+ "denom": "inj122gwdl0xl6908uhdgql2ftrezsy2ru2gme8mhc",
+ "logo": "unknown.png",
+ "symbol": "LEGE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj122gwdl0xl6908uhdgql2ftrezsy2ru2gme8mhc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LEGE",
+ "baseDenom": "LEGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Leia",
+ "denom": "inj1vm24dp02njzgd35srtlfqkuvxz40dysyx7lgfl",
+ "logo": "unknown.png",
+ "symbol": "Leia",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vm24dp02njzgd35srtlfqkuvxz40dysyx7lgfl",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Leia",
+ "baseDenom": "Leia",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LENARD",
+ "denom": "factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/LENARD",
+ "logo": "unknown.png",
+ "symbol": "LENARD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/LENARD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LENARD",
+ "baseDenom": "LENARD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lenz",
+ "denom": "factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz",
+ "logo": "unknown.png",
+ "symbol": "Lenz",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Lenz",
+ "baseDenom": "Lenz",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Leonardo",
+ "denom": "inj1yndh0j4dpnjuqaap7u6csta2krvhqddjwd3p9w",
+ "logo": "unknown.png",
+ "symbol": "LEO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yndh0j4dpnjuqaap7u6csta2krvhqddjwd3p9w",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LEO",
+ "baseDenom": "LEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Leonardo",
+ "denom": "factory/inj1f0gj22j0vep9jt48tnt2mg97c8ysgyxllhvp68/LEO",
+ "logo": "unknown.png",
+ "symbol": "LEO",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1f0gj22j0vep9jt48tnt2mg97c8ysgyxllhvp68/LEO",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "LEO",
+ "baseDenom": "LEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lep",
+ "denom": "inj1xnqaq553d5awhzr68p5vkenrj64ueqpfzjjp0f",
+ "logo": "unknown.png",
+ "symbol": "Leo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xnqaq553d5awhzr68p5vkenrj64ueqpfzjjp0f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Leo",
+ "baseDenom": "Leo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Levana",
+ "denom": "ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/levana.png",
+ "symbol": "LVN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LVN",
+ "baseDenom": "LVN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Libetui Token",
+ "denom": "inj1y7cqd6x50ezv8xrgqx0lnqf4p747nyqq533ma3",
+ "logo": "unknown.png",
+ "symbol": "LIBE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y7cqd6x50ezv8xrgqx0lnqf4p747nyqq533ma3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LIBE",
+ "baseDenom": "LIBE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lido DAO Token (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy",
+ "logo": "unknown.png",
+ "symbol": "LDO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LDO",
+ "baseDenom": "LDO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lido Staked ETH",
+ "denom": "peggy0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
+ "logo": "unknown.png",
+ "symbol": "wstETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "wstETH",
+ "baseDenom": "wstETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lido Staked Ether",
+ "denom": "ibc/FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/steth.svg",
+ "symbol": "stETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stETH",
+ "baseDenom": "stETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lifestyles ",
+ "denom": "inj1rakgrkwx9hs6ye4mt4pcvnhy5zt28dt02u9ws8",
+ "logo": "unknown.png",
+ "symbol": "Elite",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rakgrkwx9hs6ye4mt4pcvnhy5zt28dt02u9ws8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Elite",
+ "baseDenom": "Elite",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LIGMABALLZ",
+ "denom": "inj17mhem35tyszwpyfh6s0sr4l5p7wkj0knja9ck3",
+ "logo": "unknown.png",
+ "symbol": "LIGMA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17mhem35tyszwpyfh6s0sr4l5p7wkj0knja9ck3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LIGMA",
+ "baseDenom": "LIGMA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LIO",
+ "denom": "factory/inj1p2nh5tx9j27eqwxvr6aj9sasttff6200tpq24k/LIO",
+ "logo": "unknown.png",
+ "symbol": "LIO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1p2nh5tx9j27eqwxvr6aj9sasttff6200tpq24k/LIO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LIO",
+ "baseDenom": "LIO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "lional massi",
+ "denom": "inj12n44z9mk0vmga7kv8gysv5w7tgdh6zh4q6t8r7",
+ "logo": "unknown.png",
+ "symbol": "massi",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12n44z9mk0vmga7kv8gysv5w7tgdh6zh4q6t8r7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "massi",
+ "baseDenom": "massi",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lion Cub DAO",
+ "denom": "ibc/5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/cub.png",
+ "symbol": "CUB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "CUB",
+ "baseDenom": "CUB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lion DAO",
+ "denom": "ibc/E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/roar.png",
+ "symbol": "ROAR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ROAR",
+ "baseDenom": "ROAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LIOR",
+ "denom": "factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/LIOR",
+ "logo": "unknown.png",
+ "symbol": "LIOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/LIOR",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LIOR",
+ "baseDenom": "LIOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LIOR",
+ "denom": "factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO",
+ "logo": "unknown.png",
+ "symbol": "LIOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LIOR",
+ "baseDenom": "LIOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LIOR",
+ "denom": "factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR",
+ "logo": "unknown.png",
+ "symbol": "LIOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LIOR",
+ "baseDenom": "LIOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj12d6gr7ky3nfwmsw8y455aryxc95f37dj9hnpuq",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12d6gr7ky3nfwmsw8y455aryxc95f37dj9hnpuq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LMAO",
+ "denom": "inj15xz5537eujskaayp600gkke7qu82p5sa76lg50",
+ "logo": "unknown.png",
+ "symbol": "LMAO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15xz5537eujskaayp600gkke7qu82p5sa76lg50",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMAO",
+ "baseDenom": "LMAO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": " lmeow",
+ "denom": "inj1wu77ndd9t2yehansltt7wkhhqfjcsah0z4jvlf",
+ "logo": "unknown.png",
+ "symbol": "LMEOW",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wu77ndd9t2yehansltt7wkhhqfjcsah0z4jvlf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LMEOW",
+ "baseDenom": "LMEOW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOCAL",
+ "denom": "ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/local.png",
+ "symbol": "LOCAL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LOCAL",
+ "baseDenom": "LOCAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Local Money",
+ "denom": "factory/kujira1swkuyt08z74n5jl7zr6hx0ru5sa2yev5v896p6/local",
+ "logo": "unknown.png",
+ "symbol": "LOCAL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/kujira1swkuyt08z74n5jl7zr6hx0ru5sa2yev5v896p6/local",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LOCAL",
+ "baseDenom": "LOCAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "localstorage",
+ "denom": "inj17auxme00fj267ccyhx9y9ue4tuwwuadgxshl7x",
+ "logo": "unknown.png",
+ "symbol": "localstorage",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17auxme00fj267ccyhx9y9ue4tuwwuadgxshl7x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "localstorage",
+ "baseDenom": "localstorage",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOL",
+ "denom": "inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq",
+ "logo": "unknown.png",
+ "symbol": "LOL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LOL",
+ "baseDenom": "LOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOL",
+ "denom": "inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9",
+ "logo": "unknown.png",
+ "symbol": "LOL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LOL",
+ "baseDenom": "LOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LONG",
+ "denom": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/long",
+ "logo": "unknown.png",
+ "symbol": "LONG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/long",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LONG",
+ "baseDenom": "LONG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LONG",
+ "denom": "inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge",
+ "logo": "unknown.png",
+ "symbol": "LONG",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LONG",
+ "baseDenom": "LONG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOOL",
+ "denom": "inj10wuysemk8ptnnt2n4my8qsalgkmw6yxe8wthu2",
+ "logo": "unknown.png",
+ "symbol": "LOOL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10wuysemk8ptnnt2n4my8qsalgkmw6yxe8wthu2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LOOL",
+ "baseDenom": "LOOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOOL",
+ "denom": "inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam",
+ "logo": "unknown.png",
+ "symbol": "LOOL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LOOL",
+ "baseDenom": "LOOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "lord",
+ "denom": "inj1xysu0n9sv5wv6aeygdegywz9qkq0v77culynum",
+ "logo": "unknown.png",
+ "symbol": "lord",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xysu0n9sv5wv6aeygdegywz9qkq0v77culynum",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "lord",
+ "baseDenom": "lord",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LORD Finance",
+ "denom": "inj1flek07wkz73a7ptxutumr4u5fukt6th4fwy9zn",
+ "logo": "unknown.png",
+ "symbol": "LORD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1flek07wkz73a7ptxutumr4u5fukt6th4fwy9zn",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LORD",
+ "baseDenom": "LORD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lord Seven",
+ "denom": "inj1xcrrweel03eu2fzlvmllhy52wdv25wvejn24dr",
+ "logo": "unknown.png",
+ "symbol": "LRDSVN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xcrrweel03eu2fzlvmllhy52wdv25wvejn24dr",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LRDSVN",
+ "baseDenom": "LRDSVN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lost Paradise AI (Wormhole)",
+ "denom": "inj1wf0d0ynpfcmpcq8h9evv2z4p0stc73x3skj96r",
+ "logo": "unknown.png",
+ "symbol": "LOST",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wf0d0ynpfcmpcq8h9evv2z4p0stc73x3skj96r",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LOST",
+ "baseDenom": "LOST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LostParadise (Wormhole)",
+ "denom": "inj150rlxjvk2trcm59mpwyg7hkkq8sfmdtu0tj873",
+ "logo": "unknown.png",
+ "symbol": "LOST",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj150rlxjvk2trcm59mpwyg7hkkq8sfmdtu0tj873",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LOST",
+ "baseDenom": "LOST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LOTUS",
+ "denom": "inj1luz09rzlytzdqnyp2n0cqevdxkf9u780uvsew5",
+ "logo": "unknown.png",
+ "symbol": "LOTUS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1luz09rzlytzdqnyp2n0cqevdxkf9u780uvsew5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LOTUS",
+ "baseDenom": "LOTUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Loxaco (Wormhole)",
+ "denom": "inj175ut0y843p0kc4secgplsrs609uwaq3d93tp0x",
+ "logo": "unknown.png",
+ "symbol": "LOXA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj175ut0y843p0kc4secgplsrs609uwaq3d93tp0x",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LOXA",
+ "baseDenom": "LOXA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: AKT-MNTA",
+ "denom": "ibc/D128AB965B69D44D80AFD886D8A252C10D6B0B792B3AEA7833C7A1F95BA4BCF8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP AKT-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D128AB965B69D44D80AFD886D8A252C10D6B0B792B3AEA7833C7A1F95BA4BCF8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP AKT-MNTA",
+ "baseDenom": "LP AKT-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: ampMNTA-MNTA",
+ "denom": "ibc/8545604BFCCC408B753EB0840FF131CB34B9ED1283A9BD551F68C324B53FEF0C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP ampMNTA-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8545604BFCCC408B753EB0840FF131CB34B9ED1283A9BD551F68C324B53FEF0C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP ampMNTA-MNTA",
+ "baseDenom": "LP ampMNTA-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: ARB-MNTA",
+ "denom": "ibc/A7BBB8697F21D2CE19732D6CCE137E00B78CE83B5F38AC5E7FB163D7E77C1325",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP ARB-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A7BBB8697F21D2CE19732D6CCE137E00B78CE83B5F38AC5E7FB163D7E77C1325",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP ARB-MNTA",
+ "baseDenom": "LP ARB-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: ATOM-MNTA",
+ "denom": "ibc/67E901393C5DE5F1D26A0DBC86F352EA9CEBC6F5A1791ADAB33AB557136CD4D0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP ATOM-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "67E901393C5DE5F1D26A0DBC86F352EA9CEBC6F5A1791ADAB33AB557136CD4D0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP ATOM-MNTA",
+ "baseDenom": "LP ATOM-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: AXL-MNTA",
+ "denom": "ibc/F829D655E96C070395E364658EFB2EC4B93906D44A6C1AE6A2A8821FCB7BA4B8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP AXL-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F829D655E96C070395E364658EFB2EC4B93906D44A6C1AE6A2A8821FCB7BA4B8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP AXL-MNTA",
+ "baseDenom": "LP AXL-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: CHEQ-MNTA",
+ "denom": "ibc/454555FFF0452DD86BC65DDE0158300132DE275CB22183ECE357EA07EBA18528",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP CHEQ-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "454555FFF0452DD86BC65DDE0158300132DE275CB22183ECE357EA07EBA18528",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP CHEQ-MNTA",
+ "baseDenom": "LP CHEQ-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: DOT.axl-MNTA",
+ "denom": "ibc/E9BC2E73393C6C1AD36B04109F5C20CC1CDC4BCB913C8038993C8F68A0CD8474",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP DOT.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E9BC2E73393C6C1AD36B04109F5C20CC1CDC4BCB913C8038993C8F68A0CD8474",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP DOT.axl-MNTA",
+ "baseDenom": "LP DOT.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: DYDX-MNTA",
+ "denom": "ibc/0FC1BAA3BF09FA73946A6412088FCED87D1D2368F30BDC771FB5FF6EAE0EB5E9",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP DYDX-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0FC1BAA3BF09FA73946A6412088FCED87D1D2368F30BDC771FB5FF6EAE0EB5E9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP DYDX-MNTA",
+ "baseDenom": "LP DYDX-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: DYM-MNTA",
+ "denom": "ibc/CC151284BE8E76C67E78ADAE3892C0D9084F0C802CC1EC44BFBE91EE695206E8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP DYM-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CC151284BE8E76C67E78ADAE3892C0D9084F0C802CC1EC44BFBE91EE695206E8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP DYM-MNTA",
+ "baseDenom": "LP DYM-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: FUZN-MNTA",
+ "denom": "ibc/A064F58ADEAA6DF2AE8006787DFF5E1F144FECF79F880F0140CB38800C295AC2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP FUZN-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A064F58ADEAA6DF2AE8006787DFF5E1F144FECF79F880F0140CB38800C295AC2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP FUZN-MNTA",
+ "baseDenom": "LP FUZN-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: INJ-MNTA",
+ "denom": "ibc/4229FC85617819AFFE8543D646BE8A41CD9F8257985A198E0DF09E54F23EC6D3",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP INJ-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4229FC85617819AFFE8543D646BE8A41CD9F8257985A198E0DF09E54F23EC6D3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP INJ-MNTA",
+ "baseDenom": "LP INJ-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: LINK.axl-MNTA",
+ "denom": "ibc/BA3A7ACF9AEF1F3D1973ED4406EB35CF2DCB9B545D71A7F06B27A7EA918F8396",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP LINK.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "BA3A7ACF9AEF1F3D1973ED4406EB35CF2DCB9B545D71A7F06B27A7EA918F8396",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP LINK.axl-MNTA",
+ "baseDenom": "LP LINK.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: MNTA-KUJI",
+ "denom": "ibc/AE8EDE6CB769E0EAB809204D5E770F5DF03BC35D3E5977272E6CE5147229F938",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP MNTA-KUJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AE8EDE6CB769E0EAB809204D5E770F5DF03BC35D3E5977272E6CE5147229F938",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP MNTA-KUJI",
+ "baseDenom": "LP MNTA-KUJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: NTRN-MNTA",
+ "denom": "ibc/77011B441A8655A392E5B6DA8AE4ADFB0D3DF3E26B069803D64B89208EC8C07E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP NTRN-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "77011B441A8655A392E5B6DA8AE4ADFB0D3DF3E26B069803D64B89208EC8C07E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP NTRN-MNTA",
+ "baseDenom": "LP NTRN-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: OSMO-MNTA",
+ "denom": "ibc/CF0564CF0C15332430432E8D7C417521004EBB2EA4CB922C577BA751A64B6599",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP OSMO-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CF0564CF0C15332430432E8D7C417521004EBB2EA4CB922C577BA751A64B6599",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP OSMO-MNTA",
+ "baseDenom": "LP OSMO-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: PAXG.grv-MNTA",
+ "denom": "ibc/8C1E93AB13F5FC3E907751DA5BE4C7518E930A4C9F441523E608323C1CA35F6B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP PAXG.grv-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8C1E93AB13F5FC3E907751DA5BE4C7518E930A4C9F441523E608323C1CA35F6B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP PAXG.grv-MNTA",
+ "baseDenom": "LP PAXG.grv-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: qcMNTA-MNTA",
+ "denom": "ibc/23ADD2AC1D22776CE8CB37FB446E552B9AE5532B76008ADF73F75222A6ACFE19",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP qcMNTA-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "23ADD2AC1D22776CE8CB37FB446E552B9AE5532B76008ADF73F75222A6ACFE19",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP qcMNTA-MNTA",
+ "baseDenom": "LP qcMNTA-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: SCRT-MNTA",
+ "denom": "ibc/9FE7DE3797BC1F75E8CBE30B16CE84A3835B8A280E7E7780CE2C86C244F6253C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP SCRT-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9FE7DE3797BC1F75E8CBE30B16CE84A3835B8A280E7E7780CE2C86C244F6253C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP SCRT-MNTA",
+ "baseDenom": "LP SCRT-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: SHD-MNTA",
+ "denom": "ibc/B512CFCA199DCBDF098824846D2D78E1E04EBA6A5091A99472236B69B24C979E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP SHD-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B512CFCA199DCBDF098824846D2D78E1E04EBA6A5091A99472236B69B24C979E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP SHD-MNTA",
+ "baseDenom": "LP SHD-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: SOL.wh-MNTA",
+ "denom": "ibc/D765CDBB85910E131773AF7072439F9C382DF0B894D2209E09D2EEFE0298EADC",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP SOL.wh-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D765CDBB85910E131773AF7072439F9C382DF0B894D2209E09D2EEFE0298EADC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP SOL.wh-MNTA",
+ "baseDenom": "LP SOL.wh-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: SOMM-MNTA",
+ "denom": "ibc/457CF9F4112FB7E765A83A1F93DE93246C1E0D5A1C83F9A909B5890A172AAC34",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP SOMM-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "457CF9F4112FB7E765A83A1F93DE93246C1E0D5A1C83F9A909B5890A172AAC34",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP SOMM-MNTA",
+ "baseDenom": "LP SOMM-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: STARS-MNTA",
+ "denom": "ibc/B6B6EB8527A6EE9040DBE926D378EC23CB231AC8680AF75372DBF6B7B64625A7",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP STARS-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B6B6EB8527A6EE9040DBE926D378EC23CB231AC8680AF75372DBF6B7B64625A7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP STARS-MNTA",
+ "baseDenom": "LP STARS-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: stOSMO-OSMO",
+ "denom": "ibc/20D8F1713F8DF3B990E23E205F1CCD99492390558022FF3FE60B1FAFCF955689",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP stOSMO-OSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "20D8F1713F8DF3B990E23E205F1CCD99492390558022FF3FE60B1FAFCF955689",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP stOSMO-OSMO",
+ "baseDenom": "LP stOSMO-OSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: TIA-MNTA",
+ "denom": "ibc/59F96C9AAFC26E872D534D483EF8648305AD440EF2E9A506F061BADFC378CE13",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP TIA-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "59F96C9AAFC26E872D534D483EF8648305AD440EF2E9A506F061BADFC378CE13",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP TIA-MNTA",
+ "baseDenom": "LP TIA-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: UNI.axl-MNTA",
+ "denom": "ibc/4E4B25966A3CF92B796F5F5D1A70A375F32D8EF4C7E49DEC1C38441B7CA8C7CA",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP UNI.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4E4B25966A3CF92B796F5F5D1A70A375F32D8EF4C7E49DEC1C38441B7CA8C7CA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP UNI.axl-MNTA",
+ "baseDenom": "LP UNI.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wAVAX.axl-MNTA",
+ "denom": "ibc/57CC0316BFD206E1A8953DD6EC629F1556998EB9454152F21D51EFB5A35851EF",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wAVAX.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "57CC0316BFD206E1A8953DD6EC629F1556998EB9454152F21D51EFB5A35851EF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wAVAX.axl-MNTA",
+ "baseDenom": "LP wAVAX.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wBNB.axl-MNTA",
+ "denom": "ibc/2961FC233B605E5D179611D7D5C88E89DD3717081B5D06469FF27DFE83AF9BEB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wBNB.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2961FC233B605E5D179611D7D5C88E89DD3717081B5D06469FF27DFE83AF9BEB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wBNB.axl-MNTA",
+ "baseDenom": "LP wBNB.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wBTC.axl-MNTA",
+ "denom": "ibc/B73EDDE38FFE4C5782B5C6108F4977B8B4A0C13AA9EBABEBCCFC049ED5CC0968",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wBTC.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B73EDDE38FFE4C5782B5C6108F4977B8B4A0C13AA9EBABEBCCFC049ED5CC0968",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wBTC.axl-MNTA",
+ "baseDenom": "LP wBTC.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wETH.axl-MNTA",
+ "denom": "ibc/83DDCD6991A94C4ED287A029243527A14A86D4A62FB69BBEC51FB9B0156C6683",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wETH.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "83DDCD6991A94C4ED287A029243527A14A86D4A62FB69BBEC51FB9B0156C6683",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wETH.axl-MNTA",
+ "baseDenom": "LP wETH.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wETH.axl-USK",
+ "denom": "ibc/6E2B993CA402C047E232E4722D1CE0C73DBD47CBBE465E16F6E3732D27F37649",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wETH.axl-USK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6E2B993CA402C047E232E4722D1CE0C73DBD47CBBE465E16F6E3732D27F37649",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wETH.axl-USK",
+ "baseDenom": "LP wETH.axl-USK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wFTM.axl-MNTA",
+ "denom": "ibc/EBF34B929B7744BD0C97ECF6F8B8331E2BCA464F1E5EA702B6B40ED2F55433BD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wFTM.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EBF34B929B7744BD0C97ECF6F8B8331E2BCA464F1E5EA702B6B40ED2F55433BD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wFTM.axl-MNTA",
+ "baseDenom": "LP wFTM.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: WHALE-MNTA",
+ "denom": "ibc/89E80D95AF2FD42A47E9746F7CFF32F3B56FE3E113B81241A6A818C8B3221C17",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP WHALE-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "89E80D95AF2FD42A47E9746F7CFF32F3B56FE3E113B81241A6A818C8B3221C17",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP WHALE-MNTA",
+ "baseDenom": "LP WHALE-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wMATIC.axl-MNTA",
+ "denom": "ibc/942AA5D504B03747AF67B19A874D4E47DAD307E455AEB34E3A4A2ECF7B9D64C8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wMATIC.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "942AA5D504B03747AF67B19A874D4E47DAD307E455AEB34E3A4A2ECF7B9D64C8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wMATIC.axl-MNTA",
+ "baseDenom": "LP wMATIC.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wstETH.axl-MNTA",
+ "denom": "ibc/BAB4B518D0972626B854BE5139FCAD7F1113E3787BC13013CB6A370298EFE0C1",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wstETH.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "BAB4B518D0972626B854BE5139FCAD7F1113E3787BC13013CB6A370298EFE0C1",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wstETH.axl-MNTA",
+ "baseDenom": "LP wstETH.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wstETH.axl-wETH.axl",
+ "denom": "ibc/CEECB0B01EC9BF90822BCA6A1D6D2BF4DC6291BD0C947BEE512BD4639045EAD1",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wstETH.axl-wETH.axl",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CEECB0B01EC9BF90822BCA6A1D6D2BF4DC6291BD0C947BEE512BD4639045EAD1",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wstETH.axl-wETH.axl",
+ "baseDenom": "LP wstETH.axl-wETH.axl",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: wTAO.grv-MNTA",
+ "denom": "ibc/51BB7FAEEDCFC7782519C8A6FB0D7168609B2450B56FED6883ABD742AEED8CC4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP wTAO.grv-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "51BB7FAEEDCFC7782519C8A6FB0D7168609B2450B56FED6883ABD742AEED8CC4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP wTAO.grv-MNTA",
+ "baseDenom": "LP wTAO.grv-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LP Bow: yieldETH.axl-MNTA",
+ "denom": "ibc/D410037544911319AB9F3BF0C375598AAD69A7555A5B23158484DFFC10651316",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/bow.svg",
+ "symbol": "LP yieldETH.axl-MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D410037544911319AB9F3BF0C375598AAD69A7555A5B23158484DFFC10651316",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LP yieldETH.axl-MNTA",
+ "baseDenom": "LP yieldETH.axl-MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "lsdSHARK",
+ "denom": "ibc/E62FEA8924CD79277BD5170852416E863466FB39A6EC0E6AE95E98D6A487AE5F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/lsdshark.png",
+ "symbol": "lsdSHARK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E62FEA8924CD79277BD5170852416E863466FB39A6EC0E6AE95E98D6A487AE5F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "lsdSHARK",
+ "baseDenom": "lsdSHARK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUCK",
+ "denom": "factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/LUCK",
+ "logo": "unknown.png",
+ "symbol": "LUCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/LUCK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUCK",
+ "baseDenom": "LUCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUCKY",
+ "denom": "inj1v8vkngk2pn2sye2zduy77lfdeaqq9cd924f5le",
+ "logo": "unknown.png",
+ "symbol": "LUCKY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1v8vkngk2pn2sye2zduy77lfdeaqq9cd924f5le",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LUCKY",
+ "baseDenom": "LUCKY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUFFY (Wormhole)",
+ "denom": "inj1yzz7pvx7e98u3xv4uz0tkqrm6uj684j9lvv0z4",
+ "logo": "unknown.png",
+ "symbol": "LUFFY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yzz7pvx7e98u3xv4uz0tkqrm6uj684j9lvv0z4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUFFY",
+ "baseDenom": "LUFFY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Luigi",
+ "denom": "inj1vrz0yfrlxe6mqaadmeup8g6nhhzmg7hwpfr6kz",
+ "logo": "unknown.png",
+ "symbol": "LUIGI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vrz0yfrlxe6mqaadmeup8g6nhhzmg7hwpfr6kz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "LUIGI",
+ "baseDenom": "LUIGI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Luke",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/luke",
+ "logo": "unknown.png",
+ "symbol": "LUKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/luke",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUKE",
+ "baseDenom": "LUKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lum",
+ "denom": "ibc/2C58CBDF1C96FAD7E6B1C5EC0A484E9BD9A27E126E36AFBDD7E45F0EA17F3640",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/lumnetwork/images/lum.png",
+ "symbol": "LUM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2C58CBDF1C96FAD7E6B1C5EC0A484E9BD9A27E126E36AFBDD7E45F0EA17F3640",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUM",
+ "baseDenom": "LUM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Luna",
+ "denom": "ibc/0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/luna.png",
+ "symbol": "LUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUNA",
+ "baseDenom": "LUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUNA",
+ "denom": "ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/luna.png",
+ "symbol": "LUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUNA",
+ "baseDenom": "LUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LunarVerse (Wormhole)",
+ "denom": "inj1hpu5e5620hvd7hf3t4t4em96cx9t58yefcr3uu",
+ "logo": "unknown.png",
+ "symbol": "LUNAR",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hpu5e5620hvd7hf3t4t4em96cx9t58yefcr3uu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "LUNAR",
+ "baseDenom": "LUNAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUNA-USDC LP Token URA",
+ "denom": "ibc/CBC3DCBC6559DB851F487B6A41C547A2D75DB0C54A143DDF39C04250E50DA888",
+ "logo": "unknown.png",
+ "symbol": "LUNA-USDC-LP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CBC3DCBC6559DB851F487B6A41C547A2D75DB0C54A143DDF39C04250E50DA888",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUNA-USDC-LP",
+ "baseDenom": "LUNA-USDC-LP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "LUNA-USDT LP Token URA",
+ "denom": "ibc/E06B8ECC4B080937AFD0AD0308C4E9354AB169C297F45E087D6057F0010E502D",
+ "logo": "unknown.png",
+ "symbol": "LUNA-USDT-LP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E06B8ECC4B080937AFD0AD0308C4E9354AB169C297F45E087D6057F0010E502D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LUNA-USDT-LP",
+ "baseDenom": "LUNA-USDT-LP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Lunc Candy (Wormhole)",
+ "denom": "inj18epz5afrhu0zehdlj0mp8cfmv3vtusq6fd6ufw",
+ "logo": "unknown.png",
+ "symbol": "LNC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18epz5afrhu0zehdlj0mp8cfmv3vtusq6fd6ufw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "LNC",
+ "baseDenom": "LNC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MADARA",
+ "denom": "factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA",
+ "logo": "unknown.png",
+ "symbol": "MDRA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MDRA",
+ "baseDenom": "MDRA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MADdog",
+ "denom": "inj1y942sn0su2wxzh65xnd6h6fplajm04zl8fh0xy",
+ "logo": "unknown.png",
+ "symbol": "MADDOG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y942sn0su2wxzh65xnd6h6fplajm04zl8fh0xy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MADDOG",
+ "baseDenom": "MADDOG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MADPROFESSOR",
+ "denom": "inj1u97mcn0sx00hnksfc9775gh5vtjhn4my340t0j",
+ "logo": "unknown.png",
+ "symbol": "MAD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u97mcn0sx00hnksfc9775gh5vtjhn4my340t0j",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MAD",
+ "baseDenom": "MAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mafia z",
+ "denom": "factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MAFIAz",
+ "logo": "unknown.png",
+ "symbol": "MAFIAz",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MAFIAz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MAFIAz",
+ "baseDenom": "MAFIAz",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Maga",
+ "denom": "inj1wey50ukykccy8h6uaacln8naz5aahhsy09h4x0",
+ "logo": "unknown.png",
+ "symbol": "Trump",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wey50ukykccy8h6uaacln8naz5aahhsy09h4x0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Trump",
+ "baseDenom": "Trump",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MainnetZ (Wormhole)",
+ "denom": "inj1dg27j0agxx8prrrzj5y8hkw0tccgwfuwzr3h50",
+ "logo": "unknown.png",
+ "symbol": "NETZ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dg27j0agxx8prrrzj5y8hkw0tccgwfuwzr3h50",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NETZ",
+ "baseDenom": "NETZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mai on INJ",
+ "denom": "inj1wd3vgvjur8du5zxktj4v4xvny4n8skjezadpp2",
+ "logo": "unknown.png",
+ "symbol": "MAI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wd3vgvjur8du5zxktj4v4xvny4n8skjezadpp2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MAI",
+ "baseDenom": "MAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Makaveli",
+ "denom": "inj1vpks54yg6kwtsmt9r2psclcp0gmkgma3c3rvmg",
+ "logo": "unknown.png",
+ "symbol": "Mak",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vpks54yg6kwtsmt9r2psclcp0gmkgma3c3rvmg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Mak",
+ "baseDenom": "Mak",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Maker",
+ "denom": "ibc/E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/mkr.svg",
+ "symbol": "MKR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MKR",
+ "baseDenom": "MKR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "mama",
+ "denom": "inj1ayukjh6wufyuymv6ehl2cmjjpvrqjf5m75ty90",
+ "logo": "unknown.png",
+ "symbol": "MAMA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ayukjh6wufyuymv6ehl2cmjjpvrqjf5m75ty90",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MAMA",
+ "baseDenom": "MAMA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MANEKI",
+ "denom": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/MANEKI",
+ "logo": "unknown.png",
+ "symbol": "MANEKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/MANEKI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MANEKI",
+ "baseDenom": "MANEKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MANIACS",
+ "denom": "inj1fr693adew9nnl64ez2mmp46smgn48c9vq2gv6t",
+ "logo": "unknown.png",
+ "symbol": "MNC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fr693adew9nnl64ez2mmp46smgn48c9vq2gv6t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MNC",
+ "baseDenom": "MNC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MAN I LOVE FROGS",
+ "denom": "inj1mlahaecngtx3f5l4k6mq882h9r2fhhplsatgur",
+ "logo": "unknown.png",
+ "symbol": "MILF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mlahaecngtx3f5l4k6mq882h9r2fhhplsatgur",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MILF",
+ "baseDenom": "MILF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MantaDAO",
+ "denom": "ibc/A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/mnta.png",
+ "symbol": "MNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MNTA",
+ "baseDenom": "MNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MantaInj",
+ "denom": "inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs",
+ "logo": "unknown.png",
+ "symbol": "MANTAINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MANTAINJ",
+ "baseDenom": "MANTAINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MantaInjective (Wormhole)",
+ "denom": "inj14mf5jzda45w25d2w20z5t2ee9a47wh2tqh6ndg",
+ "logo": "unknown.png",
+ "symbol": "MANTAINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14mf5jzda45w25d2w20z5t2ee9a47wh2tqh6ndg",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MANTAINJ",
+ "baseDenom": "MANTAINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MantaInj (Wormhole)",
+ "denom": "inj1qzc2djpnpg9n5jjcjzayl0dn4gjvft77yfau52",
+ "logo": "unknown.png",
+ "symbol": "MANTAINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qzc2djpnpg9n5jjcjzayl0dn4gjvft77yfau52",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MANTAINJ",
+ "baseDenom": "MANTAINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mantis",
+ "denom": "inj1s6hmmyy9f2k37qqw2pryufg4arqxegurddkdp9",
+ "logo": "unknown.png",
+ "symbol": "MANTIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s6hmmyy9f2k37qqw2pryufg4arqxegurddkdp9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MANTIS",
+ "baseDenom": "MANTIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARA",
+ "denom": "inj1kaqrfnqy59dm6rf7skn8j05fdmdya9af0g56we",
+ "logo": "unknown.png",
+ "symbol": "MARA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kaqrfnqy59dm6rf7skn8j05fdmdya9af0g56we",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARA",
+ "baseDenom": "MARA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARB",
+ "denom": "inj1up4k6vxrq4nhzvp5ssksqejk3e26q2jfvngjlj",
+ "logo": "unknown.png",
+ "symbol": "MARB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1up4k6vxrq4nhzvp5ssksqejk3e26q2jfvngjlj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARB",
+ "baseDenom": "MARB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARC",
+ "denom": "inj1xg8d0nf0f9075zj3h5p4hku8r6ahtssxs4sq5q",
+ "logo": "unknown.png",
+ "symbol": "MARC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xg8d0nf0f9075zj3h5p4hku8r6ahtssxs4sq5q",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARC",
+ "baseDenom": "MARC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARD",
+ "denom": "inj177n6een54mcs8sg3hgdruumky308ehgkp9mghr",
+ "logo": "unknown.png",
+ "symbol": "MARD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj177n6een54mcs8sg3hgdruumky308ehgkp9mghr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARD",
+ "baseDenom": "MARD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARE",
+ "denom": "inj1k4ytnwu0luen8vyvahqmusxmt362r8xw3mmu55",
+ "logo": "unknown.png",
+ "symbol": "MARE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k4ytnwu0luen8vyvahqmusxmt362r8xw3mmu55",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARE",
+ "baseDenom": "MARE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARF",
+ "denom": "inj1phkfvvrzqtsq6ajklt0vsha78jsl3kg6wcd68m",
+ "logo": "unknown.png",
+ "symbol": "MARF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1phkfvvrzqtsq6ajklt0vsha78jsl3kg6wcd68m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARF",
+ "baseDenom": "MARF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARG",
+ "denom": "inj14qypf8qd0zw3t7405n4rj86whxhyqnvacl8c9n",
+ "logo": "unknown.png",
+ "symbol": "MARG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14qypf8qd0zw3t7405n4rj86whxhyqnvacl8c9n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARG",
+ "baseDenom": "MARG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARH",
+ "denom": "inj1sarc5fq8rlqxl9q3y6f6u5qnzumsqdn6vvvgyh",
+ "logo": "unknown.png",
+ "symbol": "MARH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sarc5fq8rlqxl9q3y6f6u5qnzumsqdn6vvvgyh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARH",
+ "baseDenom": "MARH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARI",
+ "denom": "inj1x5wvc0k7xht6jyh04vj2dtstcrv68lps4r58d5",
+ "logo": "unknown.png",
+ "symbol": "MARI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x5wvc0k7xht6jyh04vj2dtstcrv68lps4r58d5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARI",
+ "baseDenom": "MARI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARJ",
+ "denom": "inj1sdxdvnn6g2c7qwfts55w4043x8qzdzrku0qp3z",
+ "logo": "unknown.png",
+ "symbol": "MARJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sdxdvnn6g2c7qwfts55w4043x8qzdzrku0qp3z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARJ",
+ "baseDenom": "MARJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARJ",
+ "denom": "inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s",
+ "logo": "unknown.png",
+ "symbol": "MARJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARJ",
+ "baseDenom": "MARJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARK",
+ "denom": "inj1mnv033jcerdf4d3xw2kfreakahtuf0ue3xgr3u",
+ "logo": "unknown.png",
+ "symbol": "MARK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mnv033jcerdf4d3xw2kfreakahtuf0ue3xgr3u",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARK",
+ "baseDenom": "MARK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MarkoCrypto",
+ "denom": "inj10wufg9exwgr8qgehee9q8m8pk25c62wwul4xjx",
+ "logo": "unknown.png",
+ "symbol": "MRKO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10wufg9exwgr8qgehee9q8m8pk25c62wwul4xjx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MRKO",
+ "baseDenom": "MRKO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARM",
+ "denom": "inj1qls0sp552zw55df5klhv98zjueagtn6ugq292f",
+ "logo": "unknown.png",
+ "symbol": "MARM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qls0sp552zw55df5klhv98zjueagtn6ugq292f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARM",
+ "baseDenom": "MARM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MARN",
+ "denom": "inj1q4swwrf6kvut57k8hpul7ef39vr5ka3h74dcwj",
+ "logo": "unknown.png",
+ "symbol": "MARN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1q4swwrf6kvut57k8hpul7ef39vr5ka3h74dcwj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MARN",
+ "baseDenom": "MARN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "marshmello",
+ "denom": "inj1aw5t8shvcesdrh47xfyy9x9j0vzkhxuadzv6dw",
+ "logo": "unknown.png",
+ "symbol": "Marshmello",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aw5t8shvcesdrh47xfyy9x9j0vzkhxuadzv6dw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Marshmello",
+ "baseDenom": "Marshmello",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Master Fighter",
+ "denom": "inj1at4cjadsrags6c65g4vmtnwzw93pv55kky796l",
+ "logo": "unknown.png",
+ "symbol": "MASTER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1at4cjadsrags6c65g4vmtnwzw93pv55kky796l",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MASTER",
+ "baseDenom": "MASTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Master Soke",
+ "denom": "inj1ryqavpjvhfj0lewule2tvafnjga46st2q7dkee",
+ "logo": "unknown.png",
+ "symbol": "SOKE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ryqavpjvhfj0lewule2tvafnjga46st2q7dkee",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SOKE",
+ "baseDenom": "SOKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Matr1x AI (Wormhole)",
+ "denom": "inj1gu7vdyclf2fjf9jlr6dhzf34kcxchjavevuktl",
+ "logo": "unknown.png",
+ "symbol": "MATR1X",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gu7vdyclf2fjf9jlr6dhzf34kcxchjavevuktl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MATR1X",
+ "baseDenom": "MATR1X",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Matr1x AI (Wormhole)",
+ "denom": "inj1367pnje9e8myaw04av6j2n5z7827407k4sa4m8",
+ "logo": "unknown.png",
+ "symbol": "MATR1X",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1367pnje9e8myaw04av6j2n5z7827407k4sa4m8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MATR1X",
+ "baseDenom": "MATR1X",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MATR1X AI (Wormhole)",
+ "denom": "inj18d3wkfajxh7t9cq280ggrksrchj0ymjf7cxwcf",
+ "logo": "unknown.png",
+ "symbol": "MATR1X",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18d3wkfajxh7t9cq280ggrksrchj0ymjf7cxwcf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MATR1X",
+ "baseDenom": "MATR1X",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MAX",
+ "denom": "factory/inj164jk46xjwsn6x4rzu6sfuvtlzy2nza0nxfj0nz/MAX",
+ "logo": "unknown.png",
+ "symbol": "MAX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj164jk46xjwsn6x4rzu6sfuvtlzy2nza0nxfj0nz/MAX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MAX",
+ "baseDenom": "MAX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Maxi",
+ "denom": "inj1h97mmp9v36ljlmhllyqas0srsfsaq2ppq4dhez",
+ "logo": "unknown.png",
+ "symbol": "MAXH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h97mmp9v36ljlmhllyqas0srsfsaq2ppq4dhez",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MAXH",
+ "baseDenom": "MAXH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MCdonald",
+ "denom": "inj10gsw06ee0ppy7ltqeqhagle35h0pnue9nnsetg",
+ "logo": "unknown.png",
+ "symbol": "MacTRUMP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10gsw06ee0ppy7ltqeqhagle35h0pnue9nnsetg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MacTRUMP",
+ "baseDenom": "MacTRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MEAT",
+ "denom": "inj1naxd5z6h78khd90nmfguxht55eecvttus8vfuh",
+ "logo": "unknown.png",
+ "symbol": "MEAT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1naxd5z6h78khd90nmfguxht55eecvttus8vfuh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MEAT",
+ "baseDenom": "MEAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Megalodon",
+ "denom": "inj1yycep5ey53zh2388k6m2jmy4s4qaaurmjhcatj",
+ "logo": "unknown.png",
+ "symbol": "MOGD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yycep5ey53zh2388k6m2jmy4s4qaaurmjhcatj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOGD",
+ "baseDenom": "MOGD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "melonmask",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/melonmask",
+ "logo": "unknown.png",
+ "symbol": "MelonMask",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/melonmask",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MelonMask",
+ "baseDenom": "MelonMask",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Membrane",
+ "denom": "ibc/7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/MBRN.svg",
+ "symbol": "MBRN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MBRN",
+ "baseDenom": "MBRN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MEME",
+ "denom": "inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu",
+ "logo": "unknown.png",
+ "symbol": "MEME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MEME",
+ "baseDenom": "MEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MEME",
+ "denom": "inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2",
+ "logo": "unknown.png",
+ "symbol": "MEME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MEME",
+ "baseDenom": "MEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MEME",
+ "denom": "inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e",
+ "logo": "unknown.png",
+ "symbol": "MEME",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MEME",
+ "baseDenom": "MEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MemeAI (Wormhole)",
+ "denom": "inj1ps72fm7jpvnp3n0ysmjcece6rje9yp7dg8ep5j",
+ "logo": "unknown.png",
+ "symbol": "MEMEAI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ps72fm7jpvnp3n0ysmjcece6rje9yp7dg8ep5j",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MEMEAI",
+ "baseDenom": "MEMEAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MemeCoin (Wormhole)",
+ "denom": "inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl",
+ "logo": "unknown.png",
+ "symbol": "MEME",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MEME",
+ "baseDenom": "MEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Meme God",
+ "denom": "factory/inj18fql07frqe0lkvk6ajmpq4smk3q6c0f0qa5yfw/memegod",
+ "logo": "unknown.png",
+ "symbol": "memegod",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18fql07frqe0lkvk6ajmpq4smk3q6c0f0qa5yfw/memegod",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "memegod",
+ "baseDenom": "memegod",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Meme Mint",
+ "denom": "factory/inj1vust6dc470q02c35vh8z4qz22ddr0zv35pxaxe/MEMEMINT",
+ "logo": "unknown.png",
+ "symbol": "MEMT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vust6dc470q02c35vh8z4qz22ddr0zv35pxaxe/MEMEMINT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MEMT",
+ "baseDenom": "MEMT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Men In Black",
+ "denom": "factory/inj1q3xa3r638hmpu2mywg5r0w8a3pz2u5l9n7x4q2/MeninblackINJ",
+ "logo": "unknown.png",
+ "symbol": "MIB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1q3xa3r638hmpu2mywg5r0w8a3pz2u5l9n7x4q2/MeninblackINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIB",
+ "baseDenom": "MIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Men In Black",
+ "denom": "factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB",
+ "logo": "unknown.png",
+ "symbol": "MIB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIB",
+ "baseDenom": "MIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Men In Black",
+ "denom": "factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB",
+ "logo": "unknown.png",
+ "symbol": "MIB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIB",
+ "baseDenom": "MIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MEOW",
+ "denom": "factory/inj13wngn7gt8mt2k66x3ykp9tvfk5x89ajwd7yrtr/meow",
+ "logo": "unknown.png",
+ "symbol": "MEOW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13wngn7gt8mt2k66x3ykp9tvfk5x89ajwd7yrtr/meow",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MEOW",
+ "baseDenom": "MEOW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MESSI",
+ "denom": "inj1upun866849c4kh4yddzkd7s88sxhvn3ldllqjq",
+ "logo": "unknown.png",
+ "symbol": "MESSI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1upun866849c4kh4yddzkd7s88sxhvn3ldllqjq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MESSI",
+ "baseDenom": "MESSI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Messinj",
+ "denom": "inj1lvq52czuxncydg3f9z430glfysk4yru6p4apfr",
+ "logo": "unknown.png",
+ "symbol": "Messi",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lvq52czuxncydg3f9z430glfysk4yru6p4apfr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Messi",
+ "baseDenom": "Messi",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaInjective (Wormhole)",
+ "denom": "inj1m7264u6ytz43uh5hpup7cg78h6a8xus9dnugeh",
+ "logo": "unknown.png",
+ "symbol": "INJMETA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m7264u6ytz43uh5hpup7cg78h6a8xus9dnugeh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJMETA",
+ "baseDenom": "INJMETA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaOasis (Wormhole)",
+ "denom": "inj1303k783m2ukvgn8n4a2u5jvm25ffqe97236rx2",
+ "logo": "unknown.png",
+ "symbol": "METAOASIS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1303k783m2ukvgn8n4a2u5jvm25ffqe97236rx2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "METAOASIS",
+ "baseDenom": "METAOASIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaOasis (Wormhole)",
+ "denom": "inj1uk7dm0ws0eum6rqqfvu8d2s5vrwkr9y2p7vtxh",
+ "logo": "unknown.png",
+ "symbol": "METAOASIS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uk7dm0ws0eum6rqqfvu8d2s5vrwkr9y2p7vtxh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "METAOASIS",
+ "baseDenom": "METAOASIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaPixels (Wormhole)",
+ "denom": "inj1dntprsalugnudg7n38303l3l577sxkxc6q7qt5",
+ "logo": "unknown.png",
+ "symbol": "MetaPX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dntprsalugnudg7n38303l3l577sxkxc6q7qt5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MetaPX",
+ "baseDenom": "MetaPX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaTron (Wormhole)",
+ "denom": "inj1exeh9j6acv6375mv9rhwtzp4qhfne5hajncllk",
+ "logo": "unknown.png",
+ "symbol": "MT",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1exeh9j6acv6375mv9rhwtzp4qhfne5hajncllk",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MT",
+ "baseDenom": "MT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MetaWorld (Wormhole)",
+ "denom": "inj1lafjpyp045430pgddc8wkkg23uxz3gjlsaf4t3",
+ "logo": "unknown.png",
+ "symbol": "METAWORLD",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lafjpyp045430pgddc8wkkg23uxz3gjlsaf4t3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "METAWORLD",
+ "baseDenom": "METAWORLD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Metti Inu (Wormhole)",
+ "denom": "inj1lgnrkj6lkrckyx23jkchdyuy62fj4773vjp3jf",
+ "logo": "unknown.png",
+ "symbol": "Metti",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lgnrkj6lkrckyx23jkchdyuy62fj4773vjp3jf",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Metti",
+ "baseDenom": "Metti",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "mew",
+ "denom": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/mew",
+ "logo": "unknown.png",
+ "symbol": "MEW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/mew",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MEW",
+ "baseDenom": "MEW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mew Cat",
+ "denom": "inj12pykmszt7g2l5h2q9h8vfk0w6aq2nj8waaqs7d",
+ "logo": "unknown.png",
+ "symbol": "MEW",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12pykmszt7g2l5h2q9h8vfk0w6aq2nj8waaqs7d",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MEW",
+ "baseDenom": "MEW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MIB",
+ "denom": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/MIB",
+ "logo": "unknown.png",
+ "symbol": "MIB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/MIB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIB",
+ "baseDenom": "MIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MICE",
+ "denom": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/MICE",
+ "logo": "unknown.png",
+ "symbol": "MICE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/MICE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MICE",
+ "baseDenom": "MICE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Micromines (Wormhole)",
+ "denom": "inj1jnn7uf83lpl9ug5y6d9pxes9v7vqphd379rfeh",
+ "logo": "unknown.png",
+ "symbol": "MICRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jnn7uf83lpl9ug5y6d9pxes9v7vqphd379rfeh",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MICRO",
+ "baseDenom": "MICRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "migmig",
+ "denom": "inj1vl8swymtge55tncm8j6f02yemxqueaj7n5atkv",
+ "logo": "unknown.png",
+ "symbol": "MIGMIG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vl8swymtge55tncm8j6f02yemxqueaj7n5atkv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIGMIG",
+ "baseDenom": "MIGMIG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MILA",
+ "denom": "factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/MILA",
+ "logo": "unknown.png",
+ "symbol": "MILA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/MILA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MILA",
+ "baseDenom": "MILA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MILK",
+ "denom": "factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/MILK",
+ "logo": "unknown.png",
+ "symbol": "MILK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/MILK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MILK",
+ "baseDenom": "MILK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "milkTIA",
+ "denom": "ibc/C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/milktia.png",
+ "symbol": "milkTIA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "milkTIA",
+ "baseDenom": "milkTIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MINIDOG",
+ "denom": "inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3",
+ "logo": "unknown.png",
+ "symbol": "MINIDOG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MINIDOG",
+ "baseDenom": "MINIDOG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MiniNinja",
+ "denom": "inj1cv3dxtjpngy029k5j0mmsye3qrg0uh979ur920",
+ "logo": "unknown.png",
+ "symbol": "MNINJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cv3dxtjpngy029k5j0mmsye3qrg0uh979ur920",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MNINJA",
+ "baseDenom": "MNINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "minions",
+ "denom": "inj1wezquktplhkx9gheczc95gh98xemuxqv4mtc84",
+ "logo": "unknown.png",
+ "symbol": "Minions",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wezquktplhkx9gheczc95gh98xemuxqv4mtc84",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Minions",
+ "baseDenom": "Minions",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "minions",
+ "denom": "inj1tq0fhr0p05az32c0ehx425c63xrm6ajhak2zpw",
+ "logo": "unknown.png",
+ "symbol": "minions",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tq0fhr0p05az32c0ehx425c63xrm6ajhak2zpw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "minions",
+ "baseDenom": "minions",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MINJ",
+ "denom": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/minj",
+ "logo": "unknown.png",
+ "symbol": "MINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/minj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MINJ",
+ "baseDenom": "MINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MIRZA",
+ "denom": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/mirza",
+ "logo": "unknown.png",
+ "symbol": "MRZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/mirza",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MRZ",
+ "baseDenom": "MRZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MissingSock",
+ "denom": "inj1jdpc9y459hmce8yd699l9uf2aw97q3y7kwhg7t",
+ "logo": "unknown.png",
+ "symbol": "SOK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jdpc9y459hmce8yd699l9uf2aw97q3y7kwhg7t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SOK",
+ "baseDenom": "SOK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mithu",
+ "denom": "inj1uh3nt2d0q69hwsgge4z38rm2vg9h7hugdnf5wx",
+ "logo": "unknown.png",
+ "symbol": "MITHU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uh3nt2d0q69hwsgge4z38rm2vg9h7hugdnf5wx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MITHU",
+ "baseDenom": "MITHU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Miyoyo",
+ "denom": "factory/inj1xuds68kdmuhextjew8zlt73g5ku7aj0g7tlyjr/miyoyo",
+ "logo": "unknown.png",
+ "symbol": "MIYOYO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xuds68kdmuhextjew8zlt73g5ku7aj0g7tlyjr/miyoyo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MIYOYO",
+ "baseDenom": "MIYOYO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOBIX",
+ "denom": "ibc/D80D1912495833112073348F460F603B496092385558F836D574F86825B031B4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/fetchhub/images/mobx.png",
+ "symbol": "MOBX",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D80D1912495833112073348F460F603B496092385558F836D574F86825B031B4",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "MOBX",
+ "baseDenom": "MOBX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "mockBERB",
+ "denom": "inj1s4fua53u7argmq3npm0x9lnm8hkamjjtwayznf",
+ "logo": "unknown.png",
+ "symbol": "mBERB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s4fua53u7argmq3npm0x9lnm8hkamjjtwayznf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "mBERB",
+ "baseDenom": "mBERB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOCKBERB",
+ "denom": "inj1d6wle0ugcg2u3hcl9unkuz7usdvhv6tx44l9qn",
+ "logo": "unknown.png",
+ "symbol": "MBERB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d6wle0ugcg2u3hcl9unkuz7usdvhv6tx44l9qn",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MBERB",
+ "baseDenom": "MBERB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mojo",
+ "denom": "inj14ttljn98g36yp6s9qn59y3xsgej69t53ja2m3n",
+ "logo": "unknown.png",
+ "symbol": "MOJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14ttljn98g36yp6s9qn59y3xsgej69t53ja2m3n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MOJO",
+ "baseDenom": "MOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Money",
+ "denom": "inj108rxfpdh8q0pyrnnp286ftj6jctwtajjeur773",
+ "logo": "unknown.png",
+ "symbol": "Money",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj108rxfpdh8q0pyrnnp286ftj6jctwtajjeur773",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Money",
+ "baseDenom": "Money",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MONKEY",
+ "denom": "factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY",
+ "logo": "unknown.png",
+ "symbol": "MONKEY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MONKEY",
+ "baseDenom": "MONKEY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MONKEY",
+ "denom": "factory/inj1v88cetqty588vkc5anxnm3zjcj2dmf4dwpdxry/monkey",
+ "logo": "unknown.png",
+ "symbol": "MONKEY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1v88cetqty588vkc5anxnm3zjcj2dmf4dwpdxry/monkey",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MONKEY",
+ "baseDenom": "MONKEY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MONKS",
+ "denom": "inj1fy4hd7gqtdzp6j84v9phacm3f998382yz37rjd",
+ "logo": "unknown.png",
+ "symbol": "MONKS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fy4hd7gqtdzp6j84v9phacm3f998382yz37rjd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MONKS",
+ "baseDenom": "MONKS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MooCoin",
+ "denom": "factory/inj10tj05gfpxgnmpr4q7rhxthuknc6csatrp0uxff/moo",
+ "logo": "unknown.png",
+ "symbol": "MOO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10tj05gfpxgnmpr4q7rhxthuknc6csatrp0uxff/moo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOO",
+ "baseDenom": "MOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Moon",
+ "denom": "inj143ccar58qxmwgxr0zcp32759z5nsvseyr2gm7c",
+ "logo": "unknown.png",
+ "symbol": "Moon",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj143ccar58qxmwgxr0zcp32759z5nsvseyr2gm7c",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Moon",
+ "baseDenom": "Moon",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Moon ",
+ "denom": "inj1e3gqdkr2v7ld6m3620lgddfcarretrca0e7gn5",
+ "logo": "unknown.png",
+ "symbol": "Moon",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e3gqdkr2v7ld6m3620lgddfcarretrca0e7gn5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Moon",
+ "baseDenom": "Moon",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOON",
+ "denom": "factory/inj1d2gl87f9ldwemvhm8rskqzuqprrsvc5fr5nllc/MOON",
+ "logo": "unknown.png",
+ "symbol": "MOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1d2gl87f9ldwemvhm8rskqzuqprrsvc5fr5nllc/MOON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOON",
+ "baseDenom": "MOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOON",
+ "denom": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON",
+ "logo": "unknown.png",
+ "symbol": "MOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOON",
+ "baseDenom": "MOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Moon App",
+ "denom": "peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439",
+ "logo": "https://helixapp.com/vendor/@injectivelabs/token-metadata/app.jpeg",
+ "symbol": "APP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "APP",
+ "baseDenom": "APP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Moonlana (Wormhole)",
+ "denom": "inj1trg4pfcu07ft2dhd9mljp9s8pajxeclzq5cnuw",
+ "logo": "unknown.png",
+ "symbol": "Moonlana",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1trg4pfcu07ft2dhd9mljp9s8pajxeclzq5cnuw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Moonlana",
+ "baseDenom": "Moonlana",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MoonPup",
+ "denom": "inj1s02f4aygftq6yhpev9dmnzp8889g5h3juhd5re",
+ "logo": "unknown.png",
+ "symbol": "MNP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s02f4aygftq6yhpev9dmnzp8889g5h3juhd5re",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MNP",
+ "baseDenom": "MNP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MoonTrade (Wormhole)",
+ "denom": "inj19fzjd8rungrlmkujr85v0v7u7xm2aygxsl03cy",
+ "logo": "unknown.png",
+ "symbol": "MOONTRADE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19fzjd8rungrlmkujr85v0v7u7xm2aygxsl03cy",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MOONTRADE",
+ "baseDenom": "MOONTRADE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MORKIE",
+ "denom": "inj1k30vrj8q6x6nfyn6gpkxt633v3u2cwncpxflaa",
+ "logo": "unknown.png",
+ "symbol": "MOR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k30vrj8q6x6nfyn6gpkxt633v3u2cwncpxflaa",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MOR",
+ "baseDenom": "MOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MorOank",
+ "denom": "inj13vyz379revr8w4p2a59ethm53z6grtw6cvljlt",
+ "logo": "unknown.png",
+ "symbol": "MOR",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13vyz379revr8w4p2a59ethm53z6grtw6cvljlt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MOR",
+ "baseDenom": "MOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOTHER",
+ "denom": "inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36",
+ "logo": "unknown.png",
+ "symbol": "MOTHER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MOTHER",
+ "baseDenom": "MOTHER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MOTHER",
+ "denom": "ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE",
+ "logo": "unknown.png",
+ "symbol": "MOTHER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOTHER",
+ "baseDenom": "MOTHER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Mox",
+ "denom": "inj1w86sch2d2zmpw0vaj5sn2hdy6evlvqy5kx3mf0",
+ "logo": "unknown.png",
+ "symbol": "MOX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w86sch2d2zmpw0vaj5sn2hdy6evlvqy5kx3mf0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MOX",
+ "baseDenom": "MOX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MUBI",
+ "denom": "factory/inj1fzhwjv2kjv7xr2h4phue5yqsjawjypcamcpl5a/mubi",
+ "logo": "unknown.png",
+ "symbol": "MUBI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fzhwjv2kjv7xr2h4phue5yqsjawjypcamcpl5a/mubi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MUBI",
+ "baseDenom": "MUBI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Multichain USDC",
+ "denom": "ibc/610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8",
+ "logo": "unknown.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Musk",
+ "denom": "inj1em3kmw6dmef39t7gs8v9atsvzkprdr03k5h5ej",
+ "logo": "unknown.png",
+ "symbol": "MUSK",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1em3kmw6dmef39t7gs8v9atsvzkprdr03k5h5ej",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MUSK",
+ "baseDenom": "MUSK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "mycelium",
+ "denom": "factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/mycelium",
+ "logo": "unknown.png",
+ "symbol": "mycelium",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/mycelium",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "mycelium",
+ "baseDenom": "mycelium",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MYRK",
+ "denom": "ibc/48D1DA9AA68C949E27BAB39B409681292035ABF63EAB663017C7BEF98A3D118E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/odin/images/MYRK_Logo.png",
+ "symbol": "MYRK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "48D1DA9AA68C949E27BAB39B409681292035ABF63EAB663017C7BEF98A3D118E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MYRK",
+ "baseDenom": "MYRK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MyTokenOne",
+ "denom": "inj13m7h8rdfvr0hwvzzvufwe2sghlfd6e45rz0txa",
+ "logo": "unknown.png",
+ "symbol": "MyTokenOne",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13m7h8rdfvr0hwvzzvufwe2sghlfd6e45rz0txa",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MyTokenOne",
+ "baseDenom": "MyTokenOne",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "MyTokenZero",
+ "denom": "inj1kzk2h0g6glmlwamvmzq5jekshshkdez6dnqemf",
+ "logo": "unknown.png",
+ "symbol": "MyTokenZero",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kzk2h0g6glmlwamvmzq5jekshshkdez6dnqemf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MyTokenZero",
+ "baseDenom": "MyTokenZero",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NAKI INU",
+ "denom": "factory/inj10lauc4jvzyacjtyk7tp3mmwtep0pjnencdsnuc/NAKI",
+ "logo": "unknown.png",
+ "symbol": "NAKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10lauc4jvzyacjtyk7tp3mmwtep0pjnencdsnuc/NAKI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NAKI",
+ "baseDenom": "NAKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NAMI",
+ "denom": "ibc/B82AA4A3CB90BA24FACE9F9997B75359EC72788B8D82451DCC93986CB450B953",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/nami.png",
+ "symbol": "NAMI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B82AA4A3CB90BA24FACE9F9997B75359EC72788B8D82451DCC93986CB450B953",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NAMI",
+ "baseDenom": "NAMI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Naruto Token",
+ "denom": "factory/inj1gwkdx7lkpvq2ewpv29ptxdy9r95vh648nm8mp0/naruto",
+ "logo": "unknown.png",
+ "symbol": "NARUTO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gwkdx7lkpvq2ewpv29ptxdy9r95vh648nm8mp0/naruto",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NARUTO",
+ "baseDenom": "NARUTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Naruto Token",
+ "denom": "factory/inj16x0d8udzf2z2kjkdlr9ehdt7mawn9cckzt927t/naruto",
+ "logo": "unknown.png",
+ "symbol": "NARUTO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16x0d8udzf2z2kjkdlr9ehdt7mawn9cckzt927t/naruto",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NARUTO",
+ "baseDenom": "NARUTO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Naruto Uzumaki",
+ "denom": "factory/inj1j53ejjhlya29m4w8l9sxa7pxxyhjplrz4xsjqw/naruto",
+ "logo": "unknown.png",
+ "symbol": "Naruto",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1j53ejjhlya29m4w8l9sxa7pxxyhjplrz4xsjqw/naruto",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Naruto",
+ "baseDenom": "Naruto",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NCACToken",
+ "denom": "factory/inj1zpgcfma4ynpte8lwfxqfszddf4nveq95prqyht/NCACTE",
+ "logo": "unknown.png",
+ "symbol": "NCACTE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zpgcfma4ynpte8lwfxqfszddf4nveq95prqyht/NCACTE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NCACTE",
+ "baseDenom": "NCACTE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nebula",
+ "denom": "factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla",
+ "logo": "unknown.png",
+ "symbol": "NBLA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NBLA",
+ "baseDenom": "NBLA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "needle",
+ "denom": "inj145ueepjcu9xd42vkwvvwvqa3fvk0q66rnzdkxn",
+ "logo": "unknown.png",
+ "symbol": "needle",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj145ueepjcu9xd42vkwvvwvqa3fvk0q66rnzdkxn",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "needle",
+ "baseDenom": "needle",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neokingdom DAO",
+ "denom": "ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/evmos/images/neok.png",
+ "symbol": "NEOK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NEOK",
+ "baseDenom": "NEOK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neo Labs (Wormhole)",
+ "denom": "inj12hnvz0xs4mnaqh0vt9suwf8puxzd7he0mukgnu",
+ "logo": "unknown.png",
+ "symbol": "NEO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12hnvz0xs4mnaqh0vt9suwf8puxzd7he0mukgnu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NEO",
+ "baseDenom": "NEO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NeonFinance",
+ "denom": "inj1t3lzvya9p4zslzetpzcmc968a9c5jjkdycwlzf",
+ "logo": "unknown.png",
+ "symbol": "FINNEON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t3lzvya9p4zslzetpzcmc968a9c5jjkdycwlzf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FINNEON",
+ "baseDenom": "FINNEON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune",
+ "denom": "inj1464m9k0njt596t88chlp3nqg73j2fzd7t6kvac",
+ "logo": "unknown.png",
+ "symbol": "NEPT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1464m9k0njt596t88chlp3nqg73j2fzd7t6kvac",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NEPT",
+ "baseDenom": "NEPT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune Receipt ATOM",
+ "denom": "inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780",
+ "logo": "unknown.png",
+ "symbol": "nATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "nATOM",
+ "baseDenom": "nATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune Receipt INJ",
+ "denom": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f",
+ "logo": "unknown.png",
+ "symbol": "nINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nINJ",
+ "baseDenom": "nINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune Receipt TIA",
+ "denom": "inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv",
+ "logo": "unknown.png",
+ "symbol": "nTIA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "nTIA",
+ "baseDenom": "nTIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune Receipt USDT",
+ "denom": "inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s",
+ "logo": "unknown.png",
+ "symbol": "nUSDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "nUSDT",
+ "baseDenom": "nUSDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neptune Receipt WETH",
+ "denom": "inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt",
+ "logo": "unknown.png",
+ "symbol": "nWETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nWETH",
+ "baseDenom": "nWETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Neutron",
+ "denom": "ibc/6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.png",
+ "symbol": "NTRN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NTRN",
+ "baseDenom": "NTRN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "newcoin",
+ "denom": "inj1gadcw96ha8fpd6ulgzulsuqj9vjz8dv0s57at8",
+ "logo": "unknown.png",
+ "symbol": "FRANKLYN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gadcw96ha8fpd6ulgzulsuqj9vjz8dv0s57at8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "FRANKLYN",
+ "baseDenom": "FRANKLYN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NEWFY",
+ "denom": "inj1uhqyzzmjq2czlsejqjg8gpc00gm5llw54gr806",
+ "logo": "unknown.png",
+ "symbol": "NEWF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uhqyzzmjq2czlsejqjg8gpc00gm5llw54gr806",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NEWF",
+ "baseDenom": "NEWF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NEWS",
+ "denom": "factory/inj1uw4cjg4nw20zy0y8z8kyug7hum48tt8ytljv50/NEWS",
+ "logo": "unknown.png",
+ "symbol": "NEWS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uw4cjg4nw20zy0y8z8kyug7hum48tt8ytljv50/NEWS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NEWS",
+ "baseDenom": "NEWS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "new sushi token",
+ "denom": "inj1ex7an3yw5hvw7a6rzd8ljaq9vfd4vc0a06skdp",
+ "logo": "unknown.png",
+ "symbol": "miniSUSHI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ex7an3yw5hvw7a6rzd8ljaq9vfd4vc0a06skdp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "miniSUSHI",
+ "baseDenom": "miniSUSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Newt",
+ "denom": "ibc/B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/newt.png",
+ "symbol": "NEWT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NEWT",
+ "baseDenom": "NEWT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NEWT",
+ "denom": "inj1k4gxlzrqvmttwzt2el9fltnzcdtcywutxqnahw",
+ "logo": "unknown.png",
+ "symbol": "NEWT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k4gxlzrqvmttwzt2el9fltnzcdtcywutxqnahw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NEWT",
+ "baseDenom": "NEWT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Newton Exchange (Wormhole)",
+ "denom": "inj14a7q9frkgtvn53xldccsvmz8lr5u6qffu7jmmx",
+ "logo": "unknown.png",
+ "symbol": "NEWTON",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14a7q9frkgtvn53xldccsvmz8lr5u6qffu7jmmx",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NEWTON",
+ "baseDenom": "NEWTON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Newtroll",
+ "denom": "ibc/4D228A037CE6EDD54034D9656AE5850BDE871EF71D6DD290E8EC81603AD40899",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/newtroll.svg",
+ "symbol": "NTRL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4D228A037CE6EDD54034D9656AE5850BDE871EF71D6DD290E8EC81603AD40899",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NTRL",
+ "baseDenom": "NTRL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NewYear-Injective (Wormhole)",
+ "denom": "inj1980cshwxa5mnptp6vzngha6h2qe556anm4zjtt",
+ "logo": "unknown.png",
+ "symbol": "NEWYEARINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1980cshwxa5mnptp6vzngha6h2qe556anm4zjtt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NEWYEARINJ",
+ "baseDenom": "NEWYEARINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NEYMAR",
+ "denom": "inj1s2ealpaglaz24fucgjlmtrwq0esagd0yq0f5w5",
+ "logo": "unknown.png",
+ "symbol": "NEYMAR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s2ealpaglaz24fucgjlmtrwq0esagd0yq0f5w5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NEYMAR",
+ "baseDenom": "NEYMAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NFA",
+ "denom": "factory/inj1c5gk9y20ptuyjlul0w86dsxhfttpjgajhvf9lh/NFA",
+ "logo": "unknown.png",
+ "symbol": "NFA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c5gk9y20ptuyjlul0w86dsxhfttpjgajhvf9lh/NFA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NFA",
+ "baseDenom": "NFA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NFT",
+ "denom": "factory/inj1zchn2chqyv0cqfva8asg4lx58pxxhmhhhgx3t5/NFT",
+ "logo": "unknown.png",
+ "symbol": "NFT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1zchn2chqyv0cqfva8asg4lx58pxxhmhhhgx3t5/NFT",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NFT",
+ "baseDenom": "NFT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nibba",
+ "denom": "inj1rk68f3a4kvcrt2nra6klz6npealww2g2avknuj",
+ "logo": "unknown.png",
+ "symbol": "nibba",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rk68f3a4kvcrt2nra6klz6npealww2g2avknuj",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nibba",
+ "baseDenom": "nibba",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nico",
+ "denom": "ibc/EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/nicodao.png",
+ "symbol": "NICO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NICO",
+ "baseDenom": "NICO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nigga",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/nigga",
+ "logo": "unknown.png",
+ "symbol": "NIGGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/nigga",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NIGGA",
+ "baseDenom": "NIGGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nijo",
+ "denom": "inj1c8jk5qh2lhmvqs33z4y0l84trdu7zhgtd3aqrd",
+ "logo": "unknown.png",
+ "symbol": "NJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c8jk5qh2lhmvqs33z4y0l84trdu7zhgtd3aqrd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NJO",
+ "baseDenom": "NJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NIJO",
+ "denom": "inj1lwgzxuv0wkz86906dfssuwgmhld8705tzcfhml",
+ "logo": "unknown.png",
+ "symbol": "NIJIO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lwgzxuv0wkz86906dfssuwgmhld8705tzcfhml",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NIJIO",
+ "baseDenom": "NIJIO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nike Inject",
+ "denom": "inj1e2ee7hk8em3kxqxc0uuupzpzvrcda85s3lx37h",
+ "logo": "unknown.png",
+ "symbol": "NIKE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e2ee7hk8em3kxqxc0uuupzpzvrcda85s3lx37h",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NIKE",
+ "baseDenom": "NIKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NIM Network",
+ "denom": "ibc/C1BA2AC55B969517F1FCCFC47779EC83C901BE2FC3E1AFC8A59681481C74C399",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/nim/images/nim.svg",
+ "symbol": "NIM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C1BA2AC55B969517F1FCCFC47779EC83C901BE2FC3E1AFC8A59681481C74C399",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NIM",
+ "baseDenom": "NIM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NIN-INJ",
+ "denom": "inj1d0z43f50a950e2vdzrlu7w8yeyy0rp5pdey43v",
+ "logo": "unknown.png",
+ "symbol": "NIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d0z43f50a950e2vdzrlu7w8yeyy0rp5pdey43v",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NIN",
+ "baseDenom": "NIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninja ",
+ "denom": "factory/inj1p0w30l464lxl8afxqfda5zxeeypnvdtx4yjc30/Ninja",
+ "logo": "unknown.png",
+ "symbol": "Ninja",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1p0w30l464lxl8afxqfda5zxeeypnvdtx4yjc30/Ninja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Ninja",
+ "baseDenom": "Ninja",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaAI",
+ "denom": "inj1vun8dfgm6rr9xv40p4tpmd8lcc9cvt3384dv7w",
+ "logo": "unknown.png",
+ "symbol": "AININJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vun8dfgm6rr9xv40p4tpmd8lcc9cvt3384dv7w",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "AININJA",
+ "baseDenom": "AININJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninja Blaze Token",
+ "denom": "ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/NBZ.png",
+ "symbol": "NBZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NBZ",
+ "baseDenom": "NBZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaBot",
+ "denom": "factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb",
+ "logo": "unknown.png",
+ "symbol": "NINJB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJB",
+ "baseDenom": "NINJB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaBoy",
+ "denom": "inj1vz8h0tlxt5qv3hegqlajzn4egd8fxy3mty2w0h",
+ "logo": "unknown.png",
+ "symbol": "NBOY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vz8h0tlxt5qv3hegqlajzn4egd8fxy3mty2w0h",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NBOY",
+ "baseDenom": "NBOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaBoy",
+ "denom": "factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/NBOY",
+ "logo": "unknown.png",
+ "symbol": "NBOY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/NBOY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NBOY",
+ "baseDenom": "NBOY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaCoq",
+ "denom": "inj1aapaljp62znaxy0s2huc6ka7cx7zksqtq8xnar",
+ "logo": "unknown.png",
+ "symbol": "NCOQ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aapaljp62znaxy0s2huc6ka7cx7zksqtq8xnar",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NCOQ",
+ "baseDenom": "NCOQ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJA GENESIS",
+ "denom": "inj1e8eqle6queaywa8w2ns0u9m7tldz9vv44s28p2",
+ "logo": "unknown.png",
+ "symbol": "NNJG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e8eqle6queaywa8w2ns0u9m7tldz9vv44s28p2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NNJG",
+ "baseDenom": "NNJG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAGO",
+ "denom": "factory/inj19025raqd5rquku4ha42age7c6r7ws9jg6hrulx/NINJAGO",
+ "logo": "unknown.png",
+ "symbol": "NINJAGO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj19025raqd5rquku4ha42age7c6r7ws9jg6hrulx/NINJAGO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJAGO",
+ "baseDenom": "NINJAGO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjAI",
+ "denom": "inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u",
+ "logo": "unknown.png",
+ "symbol": "NinjAI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NinjAI",
+ "baseDenom": "NinjAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJA INU",
+ "denom": "inj14057e7c29klms2fzgjsm5s6serwwpeswxry6tk",
+ "logo": "unknown.png",
+ "symbol": "NINU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14057e7c29klms2fzgjsm5s6serwwpeswxry6tk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINU",
+ "baseDenom": "NINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninja Labs Coin",
+ "denom": "factory/inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4/NLC",
+ "logo": "unknown.png",
+ "symbol": "NLC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4/NLC",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NLC",
+ "baseDenom": "NLC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJA MEME",
+ "denom": "inj1dypt8q7gc97vfqe37snleawaz2gp7hquxkvh34",
+ "logo": "unknown.png",
+ "symbol": "MINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dypt8q7gc97vfqe37snleawaz2gp7hquxkvh34",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MINJ",
+ "baseDenom": "MINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAMOON",
+ "denom": "inj1etlxd0j3u83d8jqhwwu3krp0t4chrvk9tzh75e",
+ "logo": "unknown.png",
+ "symbol": "NINJAMOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1etlxd0j3u83d8jqhwwu3krp0t4chrvk9tzh75e",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJAMOON",
+ "baseDenom": "NINJAMOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaNgrok",
+ "denom": "inj17006r28luxtfaf7hn3jd76pjn7l49lv9le3983",
+ "logo": "unknown.png",
+ "symbol": "NINJANGROK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17006r28luxtfaf7hn3jd76pjn7l49lv9le3983",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJANGROK",
+ "baseDenom": "NINJANGROK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAPE",
+ "denom": "factory/inj13sdyzwu7l4kwcjkyuyepxufjxtk2u59xkksp69/NINJAPE",
+ "logo": "unknown.png",
+ "symbol": "NINJAPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13sdyzwu7l4kwcjkyuyepxufjxtk2u59xkksp69/NINJAPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJAPE",
+ "baseDenom": "NINJAPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAPE",
+ "denom": "factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE",
+ "logo": "unknown.png",
+ "symbol": "NINJAPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJAPE",
+ "baseDenom": "NINJAPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaPepe",
+ "denom": "factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/NPEPE",
+ "logo": "unknown.png",
+ "symbol": "NPEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/NPEPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NPEPE",
+ "baseDenom": "NPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAPEPE",
+ "denom": "inj1jhufny7g2wjv4yjh5za97jauemwmecflvuguty",
+ "logo": "unknown.png",
+ "symbol": "NINJAPEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jhufny7g2wjv4yjh5za97jauemwmecflvuguty",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NINJAPEPE",
+ "baseDenom": "NINJAPEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaRoll",
+ "denom": "inj15wuxx78q5p9h7fqg3ux7zljczj7jh5qxqhrevv",
+ "logo": "unknown.png",
+ "symbol": "Roll",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15wuxx78q5p9h7fqg3ux7zljczj7jh5qxqhrevv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Roll",
+ "baseDenom": "Roll",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninjaro Woofuji",
+ "denom": "inj1y5qs5nm0q5qz62lxkeq5q9hpkh050pfn2j6mh4",
+ "logo": "unknown.png",
+ "symbol": "NAWU",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y5qs5nm0q5qz62lxkeq5q9hpkh050pfn2j6mh4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NAWU",
+ "baseDenom": "NAWU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaSamurai",
+ "denom": "inj1kfr9r9vvflgyka50yykjm9l02wsazl958jffl2",
+ "logo": "unknown.png",
+ "symbol": "NINJASAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kfr9r9vvflgyka50yykjm9l02wsazl958jffl2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJASAMURAI",
+ "baseDenom": "NINJASAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninja Swap (Wormhole)",
+ "denom": "inj1lzdvr2d257lazc2824xqlpnn4q50vuyhnndqhv",
+ "logo": "unknown.png",
+ "symbol": "NINJA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lzdvr2d257lazc2824xqlpnn4q50vuyhnndqhv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NINJA",
+ "baseDenom": "NINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJA TRUMP",
+ "denom": "inj16dv3vfngtaqfsvd07436f6v4tgzxu90f0hq0lz",
+ "logo": "unknown.png",
+ "symbol": "NTRUMP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16dv3vfngtaqfsvd07436f6v4tgzxu90f0hq0lz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NTRUMP",
+ "baseDenom": "NTRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ninjawifhat",
+ "denom": "factory/inj10l4tnj73fl3wferljef802t63n9el49ppnv6a8/nwif",
+ "logo": "unknown.png",
+ "symbol": "NWIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10l4tnj73fl3wferljef802t63n9el49ppnv6a8/nwif",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NWIF",
+ "baseDenom": "NWIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninja Wif Hat",
+ "denom": "factory/inj1pnwrzhnjfncxgf4jkv3zadf542tpfc3xx3x4xw/NIF",
+ "logo": "unknown.png",
+ "symbol": "NIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pnwrzhnjfncxgf4jkv3zadf542tpfc3xx3x4xw/NIF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NIF",
+ "baseDenom": "NIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NinjaWifHat",
+ "denom": "inj1gmch7h49qwvnn05d3nj2rzqw4l7f0y8s4g2gpf",
+ "logo": "unknown.png",
+ "symbol": "NinjaWifHat",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gmch7h49qwvnn05d3nj2rzqw4l7f0y8s4g2gpf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NinjaWifHat",
+ "baseDenom": "NinjaWifHat",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJA WIF HAT",
+ "denom": "inj1pj40tpv7algd067muqukfer37swt7esymxx2ww",
+ "logo": "unknown.png",
+ "symbol": "NWIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pj40tpv7algd067muqukfer37swt7esymxx2ww",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NWIF",
+ "baseDenom": "NWIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAWIFHAT",
+ "denom": "factory/inj1xukaxxx4yuaz6xys5dpuhe60un7ct9umju5ash/NWIF",
+ "logo": "unknown.png",
+ "symbol": "NWIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xukaxxx4yuaz6xys5dpuhe60un7ct9umju5ash/NWIF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NWIF",
+ "baseDenom": "NWIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJAWIFHAT",
+ "denom": "inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0",
+ "logo": "unknown.png",
+ "symbol": "WIF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WIF",
+ "baseDenom": "WIF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninjutsu",
+ "denom": "inj1tp3cszqlqa7e08zcm78r4j0kqkvaccayhx97qh",
+ "logo": "unknown.png",
+ "symbol": "NINJT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tp3cszqlqa7e08zcm78r4j0kqkvaccayhx97qh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NINJT",
+ "baseDenom": "NINJT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NINJUTSU",
+ "denom": "factory/inj13m5k0v69lrrng4y3h5895dlkr6zcp272jmhrve/Ninjutsu",
+ "logo": "unknown.png",
+ "symbol": "NINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13m5k0v69lrrng4y3h5895dlkr6zcp272jmhrve/Ninjutsu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJ",
+ "baseDenom": "NINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninpo",
+ "denom": "inj1sudjgsyhufqu95yp7rqad3g78ws8g6htf32h88",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/ninpo.png",
+ "symbol": "NINPO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sudjgsyhufqu95yp7rqad3g78ws8g6htf32h88",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINPO",
+ "baseDenom": "NINPO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ninza",
+ "denom": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/NINZA",
+ "logo": "unknown.png",
+ "symbol": "NINZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/NINZA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINZA",
+ "baseDenom": "NINZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NitroID (Wormhole)",
+ "denom": "inj1f7srklvw4cf6net8flmes4mz5xl53mcv3gs8j9",
+ "logo": "unknown.png",
+ "symbol": "NITROID",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f7srklvw4cf6net8flmes4mz5xl53mcv3gs8j9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NITROID",
+ "baseDenom": "NITROID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NLB",
+ "denom": "inj10s6mwhlv44sf03d5lfk4ntmplsujgftu587rzq",
+ "logo": "unknown.png",
+ "symbol": "NLB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10s6mwhlv44sf03d5lfk4ntmplsujgftu587rzq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NLB",
+ "baseDenom": "NLB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NLBZ",
+ "denom": "inj1qfmf6gmpsna8a3k6da2zcf7ha3tvf2wdep6cky",
+ "logo": "unknown.png",
+ "symbol": "NLBZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qfmf6gmpsna8a3k6da2zcf7ha3tvf2wdep6cky",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NLBZ",
+ "baseDenom": "NLBZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NLBZZ",
+ "denom": "inj1rn2yv784zf90yyq834n7juwgeurjxly8xfkh9d",
+ "logo": "unknown.png",
+ "symbol": "NLBZZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rn2yv784zf90yyq834n7juwgeurjxly8xfkh9d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NLBZZ",
+ "baseDenom": "NLBZZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nlc",
+ "denom": "inj17uhjy4u4aqhtwdn3mfc4w60dnaa6usg30ppr4x",
+ "logo": "unknown.png",
+ "symbol": "Nlc",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17uhjy4u4aqhtwdn3mfc4w60dnaa6usg30ppr4x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Nlc",
+ "baseDenom": "Nlc",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NLT",
+ "denom": "factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/NLT",
+ "logo": "unknown.png",
+ "symbol": "NLT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/NLT",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NLT",
+ "baseDenom": "NLT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NODEV NORUG",
+ "denom": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/NODEVNORUG",
+ "logo": "unknown.png",
+ "symbol": "nodevnorug",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/NODEVNORUG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "nodevnorug",
+ "baseDenom": "nodevnorug",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NOGGA",
+ "denom": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/NOGGA",
+ "logo": "unknown.png",
+ "symbol": "NOGGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/NOGGA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NOGGA",
+ "baseDenom": "NOGGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NOIA",
+ "denom": "peggy0XA8C8CFB141A3BB59FEA1E2EA6B79B5ECBCD7B6CA",
+ "logo": "unknown.png",
+ "symbol": "NOIA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0XA8C8CFB141A3BB59FEA1E2EA6B79B5ECBCD7B6CA",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NOIA",
+ "baseDenom": "NOIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nois",
+ "denom": "ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/nois/images/nois.png",
+ "symbol": "NOIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NOIS",
+ "baseDenom": "NOIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nonja",
+ "denom": "inj1zwhu648g5zm9dqtxfaa6vcja56q7rqz4vff988",
+ "logo": "unknown.png",
+ "symbol": "mininonja",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zwhu648g5zm9dqtxfaa6vcja56q7rqz4vff988",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "mininonja",
+ "baseDenom": "mininonja",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nonja",
+ "denom": "inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck",
+ "logo": "unknown.png",
+ "symbol": "NONJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NONJA",
+ "baseDenom": "NONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NONJA",
+ "denom": "inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw",
+ "logo": "unknown.png",
+ "symbol": "NONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NONJA",
+ "baseDenom": "NONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NONJA",
+ "denom": "factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA",
+ "logo": "unknown.png",
+ "symbol": "NONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NONJA",
+ "baseDenom": "NONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NONJA",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck",
+ "logo": "unknown.png",
+ "symbol": "NONJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NONJA",
+ "baseDenom": "NONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NONJA",
+ "denom": "inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz",
+ "logo": "unknown.png",
+ "symbol": "NONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NONJA",
+ "baseDenom": "NONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nonjaktif",
+ "denom": "factory/inj1x6u4muldaqn2cm95yn7g07z5wwvpd6d6rpt4da/nonjaktif",
+ "logo": "unknown.png",
+ "symbol": "nonjaktif",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1x6u4muldaqn2cm95yn7g07z5wwvpd6d6rpt4da/nonjaktif",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "nonjaktif",
+ "baseDenom": "nonjaktif",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nonjaktif",
+ "denom": "inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst",
+ "logo": "unknown.png",
+ "symbol": "nonjaktif",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nonjaktif",
+ "baseDenom": "nonjaktif",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NoRug",
+ "denom": "inj1vh38phzhnytvwepqv57jj3d7q2gerf8627dje3",
+ "logo": "unknown.png",
+ "symbol": "NORUG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vh38phzhnytvwepqv57jj3d7q2gerf8627dje3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NORUG",
+ "baseDenom": "NORUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nova Network (Wormhole)",
+ "denom": "inj1dqcyzn9p48f0dh9xh3wxqv3hs5y3lhqr43ecs0",
+ "logo": "unknown.png",
+ "symbol": "NOVA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dqcyzn9p48f0dh9xh3wxqv3hs5y3lhqr43ecs0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NOVA",
+ "baseDenom": "NOVA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NTRN",
+ "denom": "ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.png",
+ "symbol": "NTRN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NTRN",
+ "baseDenom": "NTRN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NTY",
+ "denom": "inj1zzfltckwxs7tlsudadul960w7rdfjemlrehmrd",
+ "logo": "unknown.png",
+ "symbol": "NTY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zzfltckwxs7tlsudadul960w7rdfjemlrehmrd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NTY",
+ "baseDenom": "NTY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nub cat",
+ "denom": "inj1jaahfnl4zf5azy8x20kw43j2qv2vlhavecy9u5",
+ "logo": "unknown.png",
+ "symbol": "nub",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jaahfnl4zf5azy8x20kw43j2qv2vlhavecy9u5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "nub",
+ "baseDenom": "nub",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nunchaku",
+ "denom": "inj12q6sut4npwhnvjedht574tmz9vfrdqavwq7ufw",
+ "logo": "unknown.png",
+ "symbol": "NUNCHAKU",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12q6sut4npwhnvjedht574tmz9vfrdqavwq7ufw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NUNCHAKU",
+ "baseDenom": "NUNCHAKU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Nunchuck",
+ "denom": "inj15sgutwwu0ha5dfs5zwk4ctjz8hjmkc3tgzvjgf",
+ "logo": "unknown.png",
+ "symbol": "NUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15sgutwwu0ha5dfs5zwk4ctjz8hjmkc3tgzvjgf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NUN",
+ "baseDenom": "NUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "nUSD",
+ "denom": "factory/inj18nm3q7r2rckklp7h8hgfzu2dlc20sftvd2893w/nUSD",
+ "logo": "unknown.png",
+ "symbol": "nUSD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18nm3q7r2rckklp7h8hgfzu2dlc20sftvd2893w/nUSD",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "nUSD",
+ "baseDenom": "nUSD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NWJNS",
+ "denom": "inj1slwarzmdgzwulzwzlr2fe87k7qajd59hggvcha",
+ "logo": "unknown.png",
+ "symbol": "NWJNS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1slwarzmdgzwulzwzlr2fe87k7qajd59hggvcha",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NWJNS",
+ "baseDenom": "NWJNS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NYAN",
+ "denom": "factory/inj1lttm52qk6hs43vqak5qyk4hl4fzu2snq2gmg0c/nyan",
+ "logo": "unknown.png",
+ "symbol": "NYAN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lttm52qk6hs43vqak5qyk4hl4fzu2snq2gmg0c/nyan",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NYAN",
+ "baseDenom": "NYAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "NYX",
+ "denom": "factory/inj1fnq8xx5hye89jvhmkqycj7luyy08f3tudus0cd/nyx",
+ "logo": "unknown.png",
+ "symbol": "NYX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fnq8xx5hye89jvhmkqycj7luyy08f3tudus0cd/nyx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NYX",
+ "baseDenom": "NYX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "O9W",
+ "denom": "ibc/AA206C13A2AD46401BD1E8E65F96EC9BF86051A8156A92DD08BEF70381D39CE2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/odin/images/o9w.png",
+ "symbol": "O9W",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AA206C13A2AD46401BD1E8E65F96EC9BF86051A8156A92DD08BEF70381D39CE2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "O9W",
+ "baseDenom": "O9W",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "obema",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/obema",
+ "logo": "unknown.png",
+ "symbol": "OBEMA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/obema",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OBEMA",
+ "baseDenom": "OBEMA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Obsessed",
+ "denom": "inj19zcnfvv3qazdhgtpnynm0456zdda5yy8nmsw6t",
+ "logo": "unknown.png",
+ "symbol": "Cosmic",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19zcnfvv3qazdhgtpnynm0456zdda5yy8nmsw6t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Cosmic",
+ "baseDenom": "Cosmic",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ocean Protocol",
+ "denom": "inj1cxnqp39cn972gn2qaw2qc7hrryaa52chx7lnpk",
+ "logo": "unknown.png",
+ "symbol": "OCEAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cxnqp39cn972gn2qaw2qc7hrryaa52chx7lnpk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OCEAN",
+ "baseDenom": "OCEAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ochokochi (Wormhole)",
+ "denom": "inj1ltzx4qjtgmjyglf3nnhae0qxaxezkraqdhtgcn",
+ "logo": "unknown.png",
+ "symbol": "OCHO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ltzx4qjtgmjyglf3nnhae0qxaxezkraqdhtgcn",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "OCHO",
+ "baseDenom": "OCHO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ODIN",
+ "denom": "ibc/6ED95AEFA5D9A6F9EF9CDD05FED7D7C9D7F42D9892E7236EB9B251CE9E999701",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/odin/images/odin.png",
+ "symbol": "ODIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6ED95AEFA5D9A6F9EF9CDD05FED7D7C9D7F42D9892E7236EB9B251CE9E999701",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ODIN",
+ "baseDenom": "ODIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OIN STORE OF VALUE",
+ "denom": "ibc/486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
+ "symbol": "OIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OIN",
+ "baseDenom": "OIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ojo",
+ "denom": "inj1hg5ag8w3kwdn5hedn3mejujayvcy2gknn39rnl",
+ "logo": "unknown.png",
+ "symbol": "OJO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hg5ag8w3kwdn5hedn3mejujayvcy2gknn39rnl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OJO",
+ "baseDenom": "OJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OjoD",
+ "denom": "inj1ku6t0pgaejg2ykmyzvfwd2qulx5gjjsae23kgm",
+ "logo": "unknown.png",
+ "symbol": "OjoD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ku6t0pgaejg2ykmyzvfwd2qulx5gjjsae23kgm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OjoD",
+ "baseDenom": "OjoD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OMG",
+ "denom": "inj14wpqhfcd4q6424vskcv8xch4s0chc8cs82v4qp",
+ "logo": "unknown.png",
+ "symbol": "OMG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14wpqhfcd4q6424vskcv8xch4s0chc8cs82v4qp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OMG",
+ "baseDenom": "OMG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OMG",
+ "denom": "inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9",
+ "logo": "unknown.png",
+ "symbol": "OMG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OMG",
+ "baseDenom": "OMG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OMG",
+ "denom": "inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0",
+ "logo": "unknown.png",
+ "symbol": "OMG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OMG",
+ "baseDenom": "OMG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OMNI",
+ "denom": "peggy0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4",
+ "logo": "unknown.png",
+ "symbol": "OMNI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OMNI",
+ "baseDenom": "OMNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Omni Cat",
+ "denom": "factory/inj1vzmmdd2prja64hs4n2vk8n4dr8luk6522wdrgk/OMNI",
+ "logo": "unknown.png",
+ "symbol": "OMNI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vzmmdd2prja64hs4n2vk8n4dr8luk6522wdrgk/OMNI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OMNI",
+ "baseDenom": "OMNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OmniCat (Wormhole)",
+ "denom": "inj188rmn0k9hzdy35ue7nt5lvyd9g9ldnm0v9neyz",
+ "logo": "unknown.png",
+ "symbol": "OMNI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj188rmn0k9hzdy35ue7nt5lvyd9g9ldnm0v9neyz",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "OMNI",
+ "baseDenom": "OMNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ONE",
+ "denom": "inj1wu086fnygcr0sgytmt6pk8lsnqr9uev3dj700v",
+ "logo": "unknown.png",
+ "symbol": "ONE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wu086fnygcr0sgytmt6pk8lsnqr9uev3dj700v",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ONE",
+ "baseDenom": "ONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "oneCENT",
+ "denom": "inj12fdu6zgd9z5pv9cm8klv9w98ue7hs25z7uukdg",
+ "logo": "unknown.png",
+ "symbol": "oneCENT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12fdu6zgd9z5pv9cm8klv9w98ue7hs25z7uukdg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "oneCENT",
+ "baseDenom": "oneCENT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ONIGIRI",
+ "denom": "inj1aexws9pf9g0h3032fvdmxd3a9l2u9ex9aklugs",
+ "logo": "unknown.png",
+ "symbol": "ONI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aexws9pf9g0h3032fvdmxd3a9l2u9ex9aklugs",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ONI",
+ "baseDenom": "ONI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Onj",
+ "denom": "inj1p9kk998d6rapzmfhjdp4ee7r5n4f2klu7xf8td",
+ "logo": "unknown.png",
+ "symbol": "Onj",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p9kk998d6rapzmfhjdp4ee7r5n4f2klu7xf8td",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Onj",
+ "baseDenom": "Onj",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Only UP",
+ "denom": "inj15wvxl4xq4zrx37kvh6tsqyqysukws46reywy06",
+ "logo": "unknown.png",
+ "symbol": "ONP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15wvxl4xq4zrx37kvh6tsqyqysukws46reywy06",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ONP",
+ "baseDenom": "ONP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ONTON",
+ "denom": "inj1a3hxfatcu7yfz0ufp233m3q2egu8al2tesu4k5",
+ "logo": "unknown.png",
+ "symbol": "ONTON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a3hxfatcu7yfz0ufp233m3q2egu8al2tesu4k5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ONTON",
+ "baseDenom": "ONTON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "oogabooga",
+ "denom": "inj1rysrq2nzm0fz3h7t25deh5wetlqz4k9rl06guu",
+ "logo": "unknown.png",
+ "symbol": "ooga",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rysrq2nzm0fz3h7t25deh5wetlqz4k9rl06guu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ooga",
+ "baseDenom": "ooga",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Oozaru",
+ "denom": "ibc/9E161F95E105436E3DB9AFD49D9C8C4C386461271A46DBA1AB2EDF6EC9364D62",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oozaru.png",
+ "symbol": "OOZARU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9E161F95E105436E3DB9AFD49D9C8C4C386461271A46DBA1AB2EDF6EC9364D62",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OOZARU",
+ "baseDenom": "OOZARU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Open Exchange Token",
+ "denom": "ibc/3DC896EFF521814E914264A691D9D462A7108E96E53DE135FC4D91A370F4CD77",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/ox.svg",
+ "symbol": "OX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3DC896EFF521814E914264A691D9D462A7108E96E53DE135FC4D91A370F4CD77",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OX",
+ "baseDenom": "OX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OPHIR",
+ "denom": "ibc/19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ophir.png",
+ "symbol": "OPHIR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OPHIR",
+ "baseDenom": "OPHIR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "opps",
+ "denom": "inj1wazl9873fqgs4p7rjvn6a4qgqfdafacz9jzzjd",
+ "logo": "unknown.png",
+ "symbol": "opps",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wazl9873fqgs4p7rjvn6a4qgqfdafacz9jzzjd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "opps",
+ "baseDenom": "opps",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Oraichain",
+ "denom": "ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/oraichain/images/orai-white.png",
+ "symbol": "ORAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ORAI",
+ "baseDenom": "ORAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Orcat",
+ "denom": "inj1ldp0pssszyguhhey5dufagdwc5ara09fnlq8ms",
+ "logo": "unknown.png",
+ "symbol": "Orcat",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ldp0pssszyguhhey5dufagdwc5ara09fnlq8ms",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Orcat",
+ "baseDenom": "Orcat",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Organic Milk",
+ "denom": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk",
+ "logo": "unknown.png",
+ "symbol": "MILK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MILK",
+ "baseDenom": "MILK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ORNE",
+ "denom": "ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E",
+ "logo": "unknown.png",
+ "symbol": "ORNE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ORNE",
+ "baseDenom": "ORNE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OSMO",
+ "denom": "inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m",
+ "logo": "unknown.png",
+ "symbol": "OSMO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "OSMO",
+ "baseDenom": "OSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OSMO",
+ "denom": "ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
+ "symbol": "OSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OSMO",
+ "baseDenom": "OSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Osmosis",
+ "denom": "ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
+ "symbol": "OSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OSMO",
+ "baseDenom": "OSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "OSMO Squared",
+ "denom": "ibc/AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqosmo.svg",
+ "symbol": "sqOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sqOSMO",
+ "baseDenom": "sqOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Outlines",
+ "denom": "inj1zutqugjm9nfz4tx6rv5zzj77ts4ert0umnqsjm",
+ "logo": "unknown.png",
+ "symbol": "OUTLINES",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zutqugjm9nfz4tx6rv5zzj77ts4ert0umnqsjm",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "OUTLINES",
+ "baseDenom": "OUTLINES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pambicoin",
+ "denom": "factory/inj1wa976p5kzd5v2grzaz9uhdlcd2jcexaxlwghyj/PAMBI",
+ "logo": "unknown.png",
+ "symbol": "PAMBI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wa976p5kzd5v2grzaz9uhdlcd2jcexaxlwghyj/PAMBI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PAMBI",
+ "baseDenom": "PAMBI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Panda Itamae",
+ "denom": "factory/inj1wpttce7eccrutxkddtzug4xyz4ztny88httxpg/panda",
+ "logo": "unknown.png",
+ "symbol": "PANDA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wpttce7eccrutxkddtzug4xyz4ztny88httxpg/panda",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PANDA",
+ "baseDenom": "PANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Panda Moonshot",
+ "denom": "inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d",
+ "logo": "unknown.png",
+ "symbol": "PANDA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PANDA",
+ "baseDenom": "PANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Panda_Moonshot",
+ "denom": "inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl",
+ "logo": "unknown.png",
+ "symbol": "PANDA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PANDA",
+ "baseDenom": "PANDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PANDANINJA",
+ "denom": "factory/inj1ekvx0ftc46hqk5vfxcgw0ytd8r7u94ywjpjtt8/pandaninja",
+ "logo": "unknown.png",
+ "symbol": "PANDANINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ekvx0ftc46hqk5vfxcgw0ytd8r7u94ywjpjtt8/pandaninja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PANDANINJA",
+ "baseDenom": "PANDANINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pantera Capital (Wormhole)",
+ "denom": "inj1hl4y29q5na4krdpk4umejwvpw4v5c3kpmxm69q",
+ "logo": "unknown.png",
+ "symbol": "PANTERA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hl4y29q5na4krdpk4umejwvpw4v5c3kpmxm69q",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PANTERA",
+ "baseDenom": "PANTERA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pedro",
+ "denom": "inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7",
+ "logo": "unknown.png",
+ "symbol": "Pedro",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Pedro",
+ "baseDenom": "Pedro",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pedro",
+ "denom": "inj1c6lxety9hqn9q4khwqvjcfa24c2qeqvvfsg4fm",
+ "logo": "unknown.png",
+ "symbol": "Pedro",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c6lxety9hqn9q4khwqvjcfa24c2qeqvvfsg4fm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Pedro",
+ "baseDenom": "Pedro",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "denom": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "logo": "unknown.png",
+ "symbol": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "baseDenom": "peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "pepe",
+ "denom": "inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k",
+ "logo": "unknown.png",
+ "symbol": "pepe",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "pepe",
+ "baseDenom": "pepe",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pepe",
+ "denom": "peggy0x6982508145454Ce325dDbE47a25d4ec3d2311933",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x6982508145454Ce325dDbE47a25d4ec3d2311933",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pepe",
+ "denom": "ibc/9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/pepe.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE",
+ "denom": "inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE",
+ "denom": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE",
+ "denom": "inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PepeFork",
+ "denom": "inj14u3qj9fhrc6d337vlx4z7h3zucjsfrwwvnsrnt",
+ "logo": "unknown.png",
+ "symbol": "PORK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14u3qj9fhrc6d337vlx4z7h3zucjsfrwwvnsrnt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PORK",
+ "baseDenom": "PORK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE Injective",
+ "denom": "inj1ytxxfuajl0fvhgy2qsx85s3t882u7qgv64kf2g",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ytxxfuajl0fvhgy2qsx85s3t882u7qgv64kf2g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE MEME ",
+ "denom": "inj1jev373k3l77mnhugwzke0ytuygrn8r8497zn6e",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jev373k3l77mnhugwzke0ytuygrn8r8497zn6e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "pepe on inj",
+ "denom": "inj1rd0ympknmutwvvq8egl6j7ukjyqeh2uteqyyx7",
+ "logo": "unknown.png",
+ "symbol": "peipei",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rd0ympknmutwvvq8egl6j7ukjyqeh2uteqyyx7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "peipei",
+ "baseDenom": "peipei",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPE on INJ",
+ "denom": "factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/pepe",
+ "logo": "unknown.png",
+ "symbol": "PEPE",
+ "decimals": 1,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/pepe",
+ "path": "",
+ "channelId": "",
+ "decimals": 1,
+ "symbol": "PEPE",
+ "baseDenom": "PEPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PEPINJ",
+ "denom": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/pepinj",
+ "logo": "unknown.png",
+ "symbol": "PEPINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/pepinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PEPINJ",
+ "baseDenom": "PEPINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Persistence",
+ "denom": "ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/xprt.png",
+ "symbol": "XPRT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "XPRT",
+ "baseDenom": "XPRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PETER",
+ "denom": "inj1xuqedjshmrqadvqhk4evn9kwzgkk5u9ewdua6z",
+ "logo": "unknown.png",
+ "symbol": "PETER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xuqedjshmrqadvqhk4evn9kwzgkk5u9ewdua6z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PETER",
+ "baseDenom": "PETER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Phantom Pepe (Wormhole)",
+ "denom": "inj1mtt0a4evtfxazpxjqlv5aesdn3mnysl78lppts",
+ "logo": "unknown.png",
+ "symbol": "Phepe",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mtt0a4evtfxazpxjqlv5aesdn3mnysl78lppts",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Phepe",
+ "baseDenom": "Phepe",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PHEW",
+ "denom": "inj128usk4mqn69h9hmthqxhasyewkrhmprl7jp6lv",
+ "logo": "unknown.png",
+ "symbol": "PHEW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj128usk4mqn69h9hmthqxhasyewkrhmprl7jp6lv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PHEW",
+ "baseDenom": "PHEW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PHEW",
+ "denom": "inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s",
+ "logo": "unknown.png",
+ "symbol": "PHEW",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PHEW",
+ "baseDenom": "PHEW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Phuc",
+ "denom": "factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc",
+ "logo": "unknown.png",
+ "symbol": "PHUC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PHUC",
+ "baseDenom": "PHUC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pica",
+ "denom": "ibc/9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/composable/images/pica.svg",
+ "symbol": "PICA",
+ "decimals": 12,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8",
+ "path": "",
+ "channelId": "",
+ "decimals": 12,
+ "symbol": "PICA",
+ "baseDenom": "PICA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PIG",
+ "denom": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/pig",
+ "logo": "unknown.png",
+ "symbol": "PIG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/pig",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIG",
+ "baseDenom": "PIG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pigeon",
+ "denom": "inj1gx88hu6xjfvps4ddyap27kvgd5uxktl8ndauvp",
+ "logo": "unknown.png",
+ "symbol": "PGN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gx88hu6xjfvps4ddyap27kvgd5uxktl8ndauvp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PGN",
+ "baseDenom": "PGN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pig Fucker",
+ "denom": "factory/inj17p7p03yn0z6zmjwk4kjfd7jh7uasxwmgt8wv26/pigfucker",
+ "logo": "unknown.png",
+ "symbol": "PigFucker",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj17p7p03yn0z6zmjwk4kjfd7jh7uasxwmgt8wv26/pigfucker",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PigFucker",
+ "baseDenom": "PigFucker",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pigs",
+ "denom": "inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf",
+ "logo": "unknown.png",
+ "symbol": "PIGS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PIGS",
+ "baseDenom": "PIGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pikachu",
+ "denom": "factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/PIKA",
+ "logo": "unknown.png",
+ "symbol": "PIKA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/PIKA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIKA",
+ "baseDenom": "PIKA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PIKACHU ",
+ "denom": "inj1x3m7cgzdl7402fhe29aakdwda5630r2hpx3gm2",
+ "logo": "unknown.png",
+ "symbol": "PIKA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x3m7cgzdl7402fhe29aakdwda5630r2hpx3gm2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PIKA",
+ "baseDenom": "PIKA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pikachu INJ",
+ "denom": "factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/PIKACHU",
+ "logo": "unknown.png",
+ "symbol": "PIKACHU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/PIKACHU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIKACHU",
+ "baseDenom": "PIKACHU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ping",
+ "denom": "inj1ty0274r9754kq8qn7hnlhmv35suq6ars7y2qnt",
+ "logo": "unknown.png",
+ "symbol": "PING",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ty0274r9754kq8qn7hnlhmv35suq6ars7y2qnt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PING",
+ "baseDenom": "PING",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PING",
+ "denom": "inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5",
+ "logo": "unknown.png",
+ "symbol": "PING",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PING",
+ "baseDenom": "PING",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PING dev fan token",
+ "denom": "inj17dlj84plm8yqjtp82mmg35494v8wjqfk29lzyf",
+ "logo": "unknown.png",
+ "symbol": "PINGDEV",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17dlj84plm8yqjtp82mmg35494v8wjqfk29lzyf",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PINGDEV",
+ "baseDenom": "PINGDEV",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PingDevRtard",
+ "denom": "inj1c8v52n2wyye96m4xwama3pwqkdc56gw03dlkcq",
+ "logo": "unknown.png",
+ "symbol": "PingDevRtard",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1c8v52n2wyye96m4xwama3pwqkdc56gw03dlkcq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PingDevRtard",
+ "baseDenom": "PingDevRtard",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PING's BROTHER PONG",
+ "denom": "inj1lgy5ne3a5fja6nxag2vv2mwaan69sql9zfj7cl",
+ "logo": "unknown.png",
+ "symbol": "PONG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lgy5ne3a5fja6nxag2vv2mwaan69sql9zfj7cl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PONG",
+ "baseDenom": "PONG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PING'S BROTHER PONG",
+ "denom": "inj1qrcr0xqraaldk9c85pfzxryjquvy9jfsgdkur7",
+ "logo": "unknown.png",
+ "symbol": "PONG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qrcr0xqraaldk9c85pfzxryjquvy9jfsgdkur7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PONG",
+ "baseDenom": "PONG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PINJA",
+ "denom": "factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja",
+ "logo": "unknown.png",
+ "symbol": "PINJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PINJA",
+ "baseDenom": "PINJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pinjeon (pīpiō)",
+ "denom": "factory/inj1l73eqd7w5vu4srwmc722uwv7u9px7k5azzsqm2/pinjeon",
+ "logo": "unknown.png",
+ "symbol": "PINJEON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1l73eqd7w5vu4srwmc722uwv7u9px7k5azzsqm2/pinjeon",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PINJEON",
+ "baseDenom": "PINJEON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PIPI",
+ "denom": "factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/pipi",
+ "logo": "unknown.png",
+ "symbol": "PIPI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/pipi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIPI",
+ "baseDenom": "PIPI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PIRATE",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/PIRATE",
+ "logo": "unknown.png",
+ "symbol": "PIRATE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/PIRATE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIRATE",
+ "baseDenom": "PIRATE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pirates",
+ "denom": "inj1m707m3ngxje4adfr86tll8z7yzm5e6eln8e3kr",
+ "logo": "unknown.png",
+ "symbol": "Pie",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m707m3ngxje4adfr86tll8z7yzm5e6eln8e3kr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Pie",
+ "baseDenom": "Pie",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pirates King's",
+ "denom": "inj1m4z4gjrcq9wg6508ds4z2g43wcgynlyflaawef",
+ "logo": "unknown.png",
+ "symbol": "PKS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m4z4gjrcq9wg6508ds4z2g43wcgynlyflaawef",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PKS",
+ "baseDenom": "PKS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PixelBlocks (Wormhole)",
+ "denom": "inj1wmlkhs5y6qezacddsgwxl9ykm40crwp4fpp9vl",
+ "logo": "unknown.png",
+ "symbol": "PIXEL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wmlkhs5y6qezacddsgwxl9ykm40crwp4fpp9vl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PIXEL",
+ "baseDenom": "PIXEL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PIZZA",
+ "denom": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/PIZZA",
+ "logo": "unknown.png",
+ "symbol": "PIZZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/PIZZA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PIZZA",
+ "baseDenom": "PIZZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Plankton",
+ "denom": "ibc/020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/PLNK_drk.png",
+ "symbol": "PLNK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PLNK",
+ "baseDenom": "PLNK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Point Token",
+ "denom": "inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0",
+ "logo": "unknown.png",
+ "symbol": "POINT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "POINT",
+ "baseDenom": "POINT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "POKPOK",
+ "denom": "inj18nzsj7sef46q7puphfxvr5jrva6xtpm9zsqvhh",
+ "logo": "unknown.png",
+ "symbol": "POK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18nzsj7sef46q7puphfxvr5jrva6xtpm9zsqvhh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "POK",
+ "baseDenom": "POK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Polargeist (Wormhole)",
+ "denom": "inj1kgdp3wu5pr5ftuzczpgl5arg28tz44ucsjqsn9",
+ "logo": "unknown.png",
+ "symbol": "POLAR",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kgdp3wu5pr5ftuzczpgl5arg28tz44ucsjqsn9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "POLAR",
+ "baseDenom": "POLAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "polly",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/POLLY",
+ "logo": "unknown.png",
+ "symbol": "POLLY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/POLLY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POLLY",
+ "baseDenom": "POLLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Polygon",
+ "denom": "peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/matic.png",
+ "symbol": "MATIC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MATIC",
+ "baseDenom": "MATIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pondo",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/pondo",
+ "logo": "unknown.png",
+ "symbol": "PONDO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/pondo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PONDO",
+ "baseDenom": "PONDO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Poopdick ",
+ "denom": "inj13m85m3pj3ndll30fxeudavyp85ffjaapdmhel5",
+ "logo": "unknown.png",
+ "symbol": "PDIX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13m85m3pj3ndll30fxeudavyp85ffjaapdmhel5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PDIX",
+ "baseDenom": "PDIX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Popcat",
+ "denom": "inj1pfx2k2mtflde5yz0gz6f7xfks9klx3lv93llr6",
+ "logo": "unknown.png",
+ "symbol": "POPCAT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pfx2k2mtflde5yz0gz6f7xfks9klx3lv93llr6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "POPCAT",
+ "baseDenom": "POPCAT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Popeye",
+ "denom": "ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
+ "symbol": "POPEYE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POPEYE",
+ "baseDenom": "POPEYE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Popeye",
+ "denom": "ibc/833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
+ "symbol": "POPEYE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POPEYE",
+ "baseDenom": "POPEYE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Popeye",
+ "denom": "ibc/7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
+ "symbol": "POPEYE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POPEYE",
+ "baseDenom": "POPEYE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "popINJay",
+ "denom": "factory/inj1rn2snthhvdt4m62uakp7snzk7melj2x8nfqkx5/popINJay",
+ "logo": "unknown.png",
+ "symbol": "POP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rn2snthhvdt4m62uakp7snzk7melj2x8nfqkx5/popINJay",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POP",
+ "baseDenom": "POP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PornGPT (Wormhole)",
+ "denom": "inj1ptlmxvkjxmjap436v9wrryd20r2gqf94fr57ga",
+ "logo": "unknown.png",
+ "symbol": "PORNGPT",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ptlmxvkjxmjap436v9wrryd20r2gqf94fr57ga",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PORNGPT",
+ "baseDenom": "PORNGPT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Portal Stone",
+ "denom": "factory/inj163072g64wsn8a9n2mydwlx7c0aqt4l7pjseeuu/PORTAL",
+ "logo": "unknown.png",
+ "symbol": "PORTAL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj163072g64wsn8a9n2mydwlx7c0aqt4l7pjseeuu/PORTAL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PORTAL",
+ "baseDenom": "PORTAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "POTIN",
+ "denom": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN",
+ "logo": "unknown.png",
+ "symbol": "POTIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POTIN",
+ "baseDenom": "POTIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "POTTER",
+ "denom": "factory/inj1c7h6wnfdz0dpc5llsdxfq9yemmq9nwfpr0c59r/potter",
+ "logo": "unknown.png",
+ "symbol": "POTTER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c7h6wnfdz0dpc5llsdxfq9yemmq9nwfpr0c59r/potter",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "POTTER",
+ "baseDenom": "POTTER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Power Bottom",
+ "denom": "ibc/05EC5AA673220183DBBA6825C66DB1446D3E56E5C9DA3D57D0DE5215BA7DE176",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/PBB.png",
+ "symbol": "PBB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "05EC5AA673220183DBBA6825C66DB1446D3E56E5C9DA3D57D0DE5215BA7DE176",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PBB",
+ "baseDenom": "PBB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pre Rich Inj",
+ "denom": "factory/inj18p952tvf264784sf9f90rpge4w7dhsjrtgn4lw/prerich",
+ "logo": "unknown.png",
+ "symbol": "PRERICH",
+ "decimals": 7,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18p952tvf264784sf9f90rpge4w7dhsjrtgn4lw/prerich",
+ "path": "",
+ "channelId": "",
+ "decimals": 7,
+ "symbol": "PRERICH",
+ "baseDenom": "PRERICH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ProBonk-Injective (Wormhole)",
+ "denom": "inj1k4v0wzgxm5zln8asekgkdljvctee45l7ujwlr4",
+ "logo": "unknown.png",
+ "symbol": "PBinj",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k4v0wzgxm5zln8asekgkdljvctee45l7ujwlr4",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PBinj",
+ "baseDenom": "PBinj",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PROD",
+ "denom": "inj1y2mev78vrd4mcfrjunnktctwqhm7hznguue7fc",
+ "logo": "unknown.png",
+ "symbol": "PROD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y2mev78vrd4mcfrjunnktctwqhm7hznguue7fc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PROD",
+ "baseDenom": "PROD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ProjectMars Token (Wormhole)",
+ "denom": "inj1h28xpjed0xtjwe558gr2nx7nsfx2p6sey6zduc",
+ "logo": "unknown.png",
+ "symbol": "MARS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h28xpjed0xtjwe558gr2nx7nsfx2p6sey6zduc",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "MARS",
+ "baseDenom": "MARS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Prometheus Finance (Wormhole)",
+ "denom": "inj1tugjw7wy3vhtqjap22j9e62yzrurrsu4efu0ph",
+ "logo": "unknown.png",
+ "symbol": "PROMETHEUS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tugjw7wy3vhtqjap22j9e62yzrurrsu4efu0ph",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PROMETHEUS",
+ "baseDenom": "PROMETHEUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Proton-011 Exchange (Wormhole)",
+ "denom": "inj1vts6mh344msrwr885ej5naev87yesred5mp23r",
+ "logo": "unknown.png",
+ "symbol": "PROTON-011",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vts6mh344msrwr885ej5naev87yesred5mp23r",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PROTON-011",
+ "baseDenom": "PROTON-011",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pryzm",
+ "denom": "ibc/2A88907A69C27C7481E478005AAD1976F044246E0CDB4DB3367EADA4EF38373B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/pryzm/images/pryzm.png",
+ "symbol": "PRYZM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2A88907A69C27C7481E478005AAD1976F044246E0CDB4DB3367EADA4EF38373B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PRYZM",
+ "baseDenom": "PRYZM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked ATOM",
+ "denom": "ibc/B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkatom.png",
+ "symbol": "stkATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stkATOM",
+ "baseDenom": "stkATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked DYDX",
+ "denom": "ibc/93948A8FB433293F1C89970EA4596C4E8D4DD7E9F041058C7C47F0760F7C9693",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkdydx.png",
+ "symbol": "stkDYDX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "93948A8FB433293F1C89970EA4596C4E8D4DD7E9F041058C7C47F0760F7C9693",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stkDYDX",
+ "baseDenom": "stkDYDX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked HUAHUA",
+ "denom": "ibc/7DC72C8C753E145A627515EC6DFFD23CDED27D443C79E4B8DB2B1AB1F18B6A66",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkhuahua.png",
+ "symbol": "stkHUAHUA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7DC72C8C753E145A627515EC6DFFD23CDED27D443C79E4B8DB2B1AB1F18B6A66",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stkHUAHUA",
+ "baseDenom": "stkHUAHUA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked OSMO",
+ "denom": "ibc/F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkosmo.png",
+ "symbol": "stkOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stkOSMO",
+ "baseDenom": "stkOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked STARS",
+ "denom": "ibc/77F4E05BDB54051FAF0BE956FCE83D8E0E4227DD53F764BB32D8ECF685A93F55",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkstars.png",
+ "symbol": "stkSTARS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "77F4E05BDB54051FAF0BE956FCE83D8E0E4227DD53F764BB32D8ECF685A93F55",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stkSTARS",
+ "baseDenom": "stkSTARS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PSTAKE staked XPRT",
+ "denom": "ibc/6E5EEA7EC6379417CA5A661AD367753359607BD74A58FD4F60E8D26254FB8D12",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkxprt.png",
+ "symbol": "stkXPRT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6E5EEA7EC6379417CA5A661AD367753359607BD74A58FD4F60E8D26254FB8D12",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stkXPRT",
+ "baseDenom": "stkXPRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PUG",
+ "denom": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG",
+ "logo": "unknown.png",
+ "symbol": "PUG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PUG",
+ "baseDenom": "PUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Puggo",
+ "denom": "peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/main/img/pug.png",
+ "symbol": "PUG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PUG",
+ "baseDenom": "PUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PUMPA",
+ "denom": "inj1rts275s729dqcf7htz4hulrerpz85leufsh8xl",
+ "logo": "unknown.png",
+ "symbol": "pumping",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rts275s729dqcf7htz4hulrerpz85leufsh8xl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "pumping",
+ "baseDenom": "pumping",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Punk DAO Token",
+ "denom": "factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/PUNK",
+ "logo": "unknown.png",
+ "symbol": "PUNK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/PUNK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PUNK",
+ "baseDenom": "PUNK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PUNKINJ (Wormhole)",
+ "denom": "inj1vq0f9sgvg0zj5hc4vvg8yd6x9wzepzq5nekh4l",
+ "logo": "unknown.png",
+ "symbol": "PUNKINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vq0f9sgvg0zj5hc4vvg8yd6x9wzepzq5nekh4l",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "PUNKINJ",
+ "baseDenom": "PUNKINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Punk Token",
+ "denom": "inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt",
+ "logo": "unknown.png",
+ "symbol": "PUNK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "PUNK",
+ "baseDenom": "PUNK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PureSolve (Wormhole)",
+ "denom": "inj1d8pmcxk2grd62pwcy4q58l2vqh98vwkjx9nsvm",
+ "logo": "unknown.png",
+ "symbol": "NCH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d8pmcxk2grd62pwcy4q58l2vqh98vwkjx9nsvm",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "NCH",
+ "baseDenom": "NCH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "PVV",
+ "denom": "inj1rk5y4m3qgm8h68z2lp3e2dqqjmpkx7m0aa84ah",
+ "logo": "unknown.png",
+ "symbol": "PVV",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rk5y4m3qgm8h68z2lp3e2dqqjmpkx7m0aa84ah",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PVV",
+ "baseDenom": "PVV",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pyth Network",
+ "denom": "ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/solana/images/pyth.svg",
+ "symbol": "PYTH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PYTH",
+ "baseDenom": "PYTH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Pyth Network (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy",
+ "logo": "unknown.png",
+ "symbol": "PYTH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PYTH",
+ "baseDenom": "PYTH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "qcFUZN",
+ "denom": "ibc/5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qcfuzn.svg",
+ "symbol": "qcFUZN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "qcFUZN",
+ "baseDenom": "qcFUZN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "qcKUJI",
+ "denom": "ibc/B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qckuji.svg",
+ "symbol": "qcKUJI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "qcKUJI",
+ "baseDenom": "qcKUJI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "qcMNTA",
+ "denom": "ibc/F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qcmnta.svg",
+ "symbol": "qcMNTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "qcMNTA",
+ "baseDenom": "qcMNTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "QNT",
+ "denom": "peggy0x4a220E6096B25EADb88358cb44068A3248254675",
+ "logo": "unknown.png",
+ "symbol": "QNT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x4a220E6096B25EADb88358cb44068A3248254675",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "QNT",
+ "baseDenom": "QNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "QOC",
+ "denom": "inj1czcj5472ukkj6pect59z5et39esr3kvquxl6dh",
+ "logo": "unknown.png",
+ "symbol": "QOC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1czcj5472ukkj6pect59z5et39esr3kvquxl6dh",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "QOC",
+ "baseDenom": "QOC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Quants",
+ "denom": "factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56eb0d476a19e7f7db58f6c859898f2cb84cdad1/img/QUNT.png",
+ "symbol": "QUNT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "QUNT",
+ "baseDenom": "QUNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ra",
+ "denom": "factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/ra",
+ "logo": "unknown.png",
+ "symbol": "ra",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/ra",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ra",
+ "baseDenom": "ra",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAA",
+ "denom": "inj1vzpjnmm4s9qa74x2n7vgcesq46afjj5yfwvn4q",
+ "logo": "unknown.png",
+ "symbol": "RAA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vzpjnmm4s9qa74x2n7vgcesq46afjj5yfwvn4q",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAA",
+ "baseDenom": "RAA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAB",
+ "denom": "inj1xmdyafnth7g6pvg6zd687my3ekw3htvh95t2c8",
+ "logo": "unknown.png",
+ "symbol": "RAB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xmdyafnth7g6pvg6zd687my3ekw3htvh95t2c8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAB",
+ "baseDenom": "RAB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAC",
+ "denom": "inj1y6dgj675ttk2tzeasdwsk6n7etn0cfh9wz20vy",
+ "logo": "unknown.png",
+ "symbol": "RAC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y6dgj675ttk2tzeasdwsk6n7etn0cfh9wz20vy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAC",
+ "baseDenom": "RAC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAC",
+ "denom": "ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/rac.png",
+ "symbol": "RAC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAC",
+ "baseDenom": "RAC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAD",
+ "denom": "inj1r9wxpyqp4a75k9dhk5qzcfmkwtrg7utgrvx0zu",
+ "logo": "unknown.png",
+ "symbol": "RAD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r9wxpyqp4a75k9dhk5qzcfmkwtrg7utgrvx0zu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAD",
+ "baseDenom": "RAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAE",
+ "denom": "inj1lvtcdka9prgtugcdxeyw5kd9rm35p0y2whwj7j",
+ "logo": "unknown.png",
+ "symbol": "RAE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lvtcdka9prgtugcdxeyw5kd9rm35p0y2whwj7j",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAE",
+ "baseDenom": "RAE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAF",
+ "denom": "inj1l8hztn806saqkacw8rur4qdgexp6sl7k0n6xjm",
+ "logo": "unknown.png",
+ "symbol": "RAF",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l8hztn806saqkacw8rur4qdgexp6sl7k0n6xjm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAF",
+ "baseDenom": "RAF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAG",
+ "denom": "inj1k45q0qf0jwepajlkqcx5a6w833mm0lufzz0kex",
+ "logo": "unknown.png",
+ "symbol": "RAG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k45q0qf0jwepajlkqcx5a6w833mm0lufzz0kex",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAG",
+ "baseDenom": "RAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAH",
+ "denom": "inj1mpcxzhkk0c7wjrwft2xafsvds9un59gfdml706",
+ "logo": "unknown.png",
+ "symbol": "RAH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mpcxzhkk0c7wjrwft2xafsvds9un59gfdml706",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAH",
+ "baseDenom": "RAH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rai Reflex Index",
+ "denom": "ibc/27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/rai.svg",
+ "symbol": "RAI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RAI",
+ "baseDenom": "RAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramen",
+ "denom": "factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen",
+ "logo": "unknown.png",
+ "symbol": "RAMEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAMEN",
+ "baseDenom": "RAMEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramen 404",
+ "denom": "inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4",
+ "logo": "unknown.png",
+ "symbol": "Ramen404",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Ramen404",
+ "baseDenom": "Ramen404",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramen Version 2",
+ "denom": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN22",
+ "logo": "unknown.png",
+ "symbol": "RAMEN22",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN22",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAMEN22",
+ "baseDenom": "RAMEN22",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramen Version 2",
+ "denom": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2",
+ "logo": "unknown.png",
+ "symbol": "RAMENV2",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAMENV2",
+ "baseDenom": "RAMENV2",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramen Version 2",
+ "denom": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN2",
+ "logo": "unknown.png",
+ "symbol": "RAMEN2",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAMEN2",
+ "baseDenom": "RAMEN2",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ramses Protocol (Wormhole)",
+ "denom": "inj1jttaxqcjtsys54k3m6mx4kzulzasg4tc6hhpp6",
+ "logo": "unknown.png",
+ "symbol": "RAMSES",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jttaxqcjtsys54k3m6mx4kzulzasg4tc6hhpp6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "RAMSES",
+ "baseDenom": "RAMSES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RAPTR",
+ "denom": "ibc/592FDF11D4D958105B1E4620FAECAA6708655AB815F01A01C1540968893CDEBF",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/RAPTR.png",
+ "symbol": "RAPTR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "592FDF11D4D958105B1E4620FAECAA6708655AB815F01A01C1540968893CDEBF",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RAPTR",
+ "baseDenom": "RAPTR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "rat",
+ "denom": "factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/rat",
+ "logo": "unknown.png",
+ "symbol": "rat",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/rat",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "rat",
+ "baseDenom": "rat",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RATJA",
+ "denom": "inj1kl5pzllv782r8emj3umgn3dwcewc6hw6xdmvrv",
+ "logo": "unknown.png",
+ "symbol": "RATJA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kl5pzllv782r8emj3umgn3dwcewc6hw6xdmvrv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RATJA",
+ "baseDenom": "RATJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "real",
+ "denom": "ibc/444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Reis.png",
+ "symbol": "REIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "REIS",
+ "baseDenom": "REIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "REAL",
+ "denom": "inj1uhralmk73lkxeyd9zhskmzz44lsmcxneluqgp9",
+ "logo": "unknown.png",
+ "symbol": "REAL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uhralmk73lkxeyd9zhskmzz44lsmcxneluqgp9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "REAL",
+ "baseDenom": "REAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RealMadrid",
+ "denom": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/RealMadrid",
+ "logo": "https://i.ibb.co/NyJ1sXb/rm.png",
+ "symbol": "RealMadrid",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/RealMadrid",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RealMadrid",
+ "baseDenom": "RealMadrid",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "REALS",
+ "denom": "inj1g3l8chts5wrt437tkpmuy554wcky6devphqxf0",
+ "logo": "unknown.png",
+ "symbol": "REALS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1g3l8chts5wrt437tkpmuy554wcky6devphqxf0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "REALS",
+ "baseDenom": "REALS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Real Yield Eth",
+ "denom": "ibc/6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/yieldeth.png",
+ "symbol": "YieldETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YieldETH",
+ "baseDenom": "YieldETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RED",
+ "denom": "inj1jkts7lhvwx27z92l6dwgz6wpyd0xf9wu6qyfrh",
+ "logo": "unknown.png",
+ "symbol": "REDINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jkts7lhvwx27z92l6dwgz6wpyd0xf9wu6qyfrh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "REDINJ",
+ "baseDenom": "REDINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Red bot",
+ "denom": "inj15ytmt6gng36relzntgz0qmgfqnygluz894yt28",
+ "logo": "unknown.png",
+ "symbol": "RED",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15ytmt6gng36relzntgz0qmgfqnygluz894yt28",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RED",
+ "baseDenom": "RED",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Render Token",
+ "denom": "inj1092d3j7yqup5c8lp92vv5kadl567rynj59yd92",
+ "logo": "unknown.png",
+ "symbol": "RNDR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1092d3j7yqup5c8lp92vv5kadl567rynj59yd92",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RNDR",
+ "baseDenom": "RNDR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Renzo ETH",
+ "denom": "peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110",
+ "logo": "unknown.png",
+ "symbol": "ezETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ezETH",
+ "baseDenom": "ezETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RESTAKE",
+ "denom": "ibc/102810E506AC0FB1F14755ECA7A1D05066E0CBD574526521EF31E9B3237C0C02",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/rstk.png",
+ "symbol": "RSTK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "102810E506AC0FB1F14755ECA7A1D05066E0CBD574526521EF31E9B3237C0C02",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RSTK",
+ "baseDenom": "RSTK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RETARDED_DEV",
+ "denom": "inj1ek524mnenxfla235pla3cec7ukmr3fwkgf6jq3",
+ "logo": "unknown.png",
+ "symbol": "RTD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ek524mnenxfla235pla3cec7ukmr3fwkgf6jq3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RTD",
+ "baseDenom": "RTD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Retro",
+ "denom": "ibc/ACDEFBA440F37D89E2933AB2B42AA0855C30852588B7DF8CD5FBCEB0EB1471EB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/retro.svg",
+ "symbol": "RETRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "ACDEFBA440F37D89E2933AB2B42AA0855C30852588B7DF8CD5FBCEB0EB1471EB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RETRO",
+ "baseDenom": "RETRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rhino",
+ "denom": "inj1t5f60ewnq8hepuvmwnlm06h0q23fxymldh0hpr",
+ "logo": "unknown.png",
+ "symbol": "RHINO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t5f60ewnq8hepuvmwnlm06h0q23fxymldh0hpr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RHINO",
+ "baseDenom": "RHINO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rice Token",
+ "denom": "inj1j6qq40826d695eyszmekzu5muzmdey5mxelxhl",
+ "logo": "unknown.png",
+ "symbol": "RICE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j6qq40826d695eyszmekzu5muzmdey5mxelxhl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RICE",
+ "baseDenom": "RICE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RichInjective (Wormhole)",
+ "denom": "inj143l8dlvhudhzuggrp5sakwmn8kw24hutr43fe2",
+ "logo": "unknown.png",
+ "symbol": "RICHINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj143l8dlvhudhzuggrp5sakwmn8kw24hutr43fe2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "RICHINJ",
+ "baseDenom": "RICHINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rickroll Token",
+ "denom": "factory/inj1ga7xu92w0yxhedk92v6ckge6q76vx2hxcwxsxx/RICK",
+ "logo": "unknown.png",
+ "symbol": "RICK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ga7xu92w0yxhedk92v6ckge6q76vx2hxcwxsxx/RICK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RICK",
+ "baseDenom": "RICK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Riddle",
+ "denom": "inj1q6khaa8av7pet763qmz0ytvgndl6g4sn37tvs5",
+ "logo": "unknown.png",
+ "symbol": "rdl",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1q6khaa8av7pet763qmz0ytvgndl6g4sn37tvs5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "rdl",
+ "baseDenom": "rdl",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RIP",
+ "denom": "inj1eu8ty289eyjvm4hcrg70n4u95jggh9eekfxs5y",
+ "logo": "unknown.png",
+ "symbol": "RIP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eu8ty289eyjvm4hcrg70n4u95jggh9eekfxs5y",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RIP",
+ "baseDenom": "RIP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rise",
+ "denom": "inj123aevc4lmpm09j6mqemrjpxgsa7dncg2yn2xt7",
+ "logo": "unknown.png",
+ "symbol": "Rise",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj123aevc4lmpm09j6mqemrjpxgsa7dncg2yn2xt7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Rise",
+ "baseDenom": "Rise",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RITSU",
+ "denom": "inj17cqglnfpx7w20pc6urwxklw6kkews4hmfj6z28",
+ "logo": "unknown.png",
+ "symbol": "RITSU",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17cqglnfpx7w20pc6urwxklw6kkews4hmfj6z28",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RITSU",
+ "baseDenom": "RITSU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "robertoBAGGIO",
+ "denom": "inj13z8pahkrcu2zk44el6lcnw9z3amstuneay5efs",
+ "logo": "unknown.png",
+ "symbol": "rBAGGIO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13z8pahkrcu2zk44el6lcnw9z3amstuneay5efs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "rBAGGIO",
+ "baseDenom": "rBAGGIO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "robo-11",
+ "denom": "inj1gn3py3euhfunvt5qe8maanzuwzf8y2lm2ysy24",
+ "logo": "unknown.png",
+ "symbol": "roba",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gn3py3euhfunvt5qe8maanzuwzf8y2lm2ysy24",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "roba",
+ "baseDenom": "roba",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ROBOT",
+ "denom": "inj1x6lvx8s2gkjge0p0dnw4vscdld3rdcw94fhter",
+ "logo": "unknown.png",
+ "symbol": "ROB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x6lvx8s2gkjge0p0dnw4vscdld3rdcw94fhter",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ROB",
+ "baseDenom": "ROB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rocketcoin (Wormhole)",
+ "denom": "inj1zrw6acmpnghlcwjyrqv0ta5wmzute7l4f0n3dz",
+ "logo": "unknown.png",
+ "symbol": "ROCKET",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zrw6acmpnghlcwjyrqv0ta5wmzute7l4f0n3dz",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "ROCKET",
+ "baseDenom": "ROCKET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rocket Pool Ether",
+ "denom": "ibc/8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/reth.png",
+ "symbol": "rETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "rETH",
+ "baseDenom": "rETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Rocket Snail",
+ "denom": "factory/inj1uvexgrele9lr5p87kksg6gmz2telncpe0mxsm6/RSNL",
+ "logo": "unknown.png",
+ "symbol": "RSNL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uvexgrele9lr5p87kksg6gmz2telncpe0mxsm6/RSNL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RSNL",
+ "baseDenom": "RSNL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Roll Token",
+ "denom": "inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3",
+ "logo": "https://dojo.trading/images/tokens/roll.svg",
+ "symbol": "ROLL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ROLL",
+ "baseDenom": "ROLL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ROMAN",
+ "denom": "inj1h3z3gfzypugnctkkvz7vvucnanfa5nffvxgh2z",
+ "logo": "unknown.png",
+ "symbol": "ROMAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h3z3gfzypugnctkkvz7vvucnanfa5nffvxgh2z",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ROMAN",
+ "baseDenom": "ROMAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Romek",
+ "denom": "inj16w9qp30vrpng8kr83efvmveen688klvtd00qdy",
+ "logo": "unknown.png",
+ "symbol": "ROM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16w9qp30vrpng8kr83efvmveen688klvtd00qdy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ROM",
+ "baseDenom": "ROM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ronin",
+ "denom": "inj142hawfqncg5hd3z7rvpvx7us0h7c4mwjmeslpu",
+ "logo": "unknown.png",
+ "symbol": "RONIN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj142hawfqncg5hd3z7rvpvx7us0h7c4mwjmeslpu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RONIN",
+ "baseDenom": "RONIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RONIN",
+ "denom": "inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy",
+ "logo": "unknown.png",
+ "symbol": "RONIN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RONIN",
+ "baseDenom": "RONIN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ronoldo",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/ronoldo",
+ "logo": "unknown.png",
+ "symbol": "RONOLDO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/ronoldo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RONOLDO",
+ "baseDenom": "RONOLDO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ROOSTER NINJA",
+ "denom": "factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/COCK",
+ "logo": "unknown.png",
+ "symbol": "COCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/COCK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "COCK",
+ "baseDenom": "COCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RUDY",
+ "denom": "factory/inj1ykggxun6crask6eywr4a2lfy36f4we5l9rg2an/RUDY",
+ "logo": "unknown.png",
+ "symbol": "RUDY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ykggxun6crask6eywr4a2lfy36f4we5l9rg2an/RUDY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RUDY",
+ "baseDenom": "RUDY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RUG",
+ "denom": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/RUG",
+ "logo": "unknown.png",
+ "symbol": "RUG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/RUG",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RUG",
+ "baseDenom": "RUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RUGAOI",
+ "denom": "factory/inj1pe8rs2gfmem5ak8vtqkduzkgcyargk2fg6u4as/RUGAOI",
+ "logo": "unknown.png",
+ "symbol": "RUGAOI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pe8rs2gfmem5ak8vtqkduzkgcyargk2fg6u4as/RUGAOI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RUGAOI",
+ "baseDenom": "RUGAOI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RUGMYASS Token",
+ "denom": "inj18n9rpsstxsxgpmgegkn6fsvq9x3alqekqddgnq",
+ "logo": "unknown.png",
+ "symbol": "RUGMYASS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18n9rpsstxsxgpmgegkn6fsvq9x3alqekqddgnq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RUGMYASS",
+ "baseDenom": "RUGMYASS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RUGPULL",
+ "denom": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/RUGPULL",
+ "logo": "unknown.png",
+ "symbol": "RUGPULL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/RUGPULL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RUGPULL",
+ "baseDenom": "RUGPULL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RumblerZHub (Wormhole)",
+ "denom": "inj1pcwdvq866uqd8lhpmasya2xqw9hk2u0euvvqxl",
+ "logo": "unknown.png",
+ "symbol": "RUMBLERZ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pcwdvq866uqd8lhpmasya2xqw9hk2u0euvvqxl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "RUMBLERZ",
+ "baseDenom": "RUMBLERZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RYAN",
+ "denom": "inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr",
+ "logo": "unknown.png",
+ "symbol": "RYAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "RYAN",
+ "baseDenom": "RYAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "RYAN",
+ "denom": "inj1mng4fr0ckvrq8xvgtsjrj6mqzm7passfzjqxcx",
+ "logo": "unknown.png",
+ "symbol": "RYAN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mng4fr0ckvrq8xvgtsjrj6mqzm7passfzjqxcx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "RYAN",
+ "baseDenom": "RYAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sabrina",
+ "denom": "sabrina",
+ "logo": "unknown.png",
+ "symbol": "sabrina",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "sabrina",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sabrina",
+ "baseDenom": "sabrina",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAFAS",
+ "denom": "inj1vphq25x2r69mpf2arzsut8yxcav709kwd3t5ck",
+ "logo": "unknown.png",
+ "symbol": "SAFAS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vphq25x2r69mpf2arzsut8yxcav709kwd3t5ck",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SAFAS",
+ "baseDenom": "SAFAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SafeBank (Wormhole)",
+ "denom": "inj1cqq89rjk4v5a0teyaefqje3skntys7q6j5lu2p",
+ "logo": "unknown.png",
+ "symbol": "SB",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cqq89rjk4v5a0teyaefqje3skntys7q6j5lu2p",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SB",
+ "baseDenom": "SB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAFEMOON",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/safemoon",
+ "logo": "unknown.png",
+ "symbol": "SAFEMOON",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/safemoon",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAFEMOON",
+ "baseDenom": "SAFEMOON",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Saga",
+ "denom": "ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/saga/images/saga.png",
+ "symbol": "SAGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAGA",
+ "baseDenom": "SAGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Saga Bakufu (徳川幕府)",
+ "denom": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/saga",
+ "logo": "unknown.png",
+ "symbol": "SAGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/saga",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAGA",
+ "baseDenom": "SAGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sail",
+ "denom": "ibc/2718A31D59C81CD1F972C829F097BDBE32D7B84025F909FFB6163AAD314961B3",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sail.png",
+ "symbol": "SAIL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2718A31D59C81CD1F972C829F097BDBE32D7B84025F909FFB6163AAD314961B3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAIL",
+ "baseDenom": "SAIL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sailing The SeaS DAO",
+ "denom": "ibc/FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/SEAS.png",
+ "symbol": "SEAS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEAS",
+ "baseDenom": "SEAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAKE",
+ "denom": "factory/inj1mdyw30cuct3haazw546t4t92sadeuwde0tmqxx/SAKE",
+ "logo": "unknown.png",
+ "symbol": "SAKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mdyw30cuct3haazw546t4t92sadeuwde0tmqxx/SAKE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAKE",
+ "baseDenom": "SAKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAKI INU",
+ "denom": "factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAKI",
+ "logo": "unknown.png",
+ "symbol": "SAKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAKI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAKI",
+ "baseDenom": "SAKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sakura",
+ "denom": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/sakura",
+ "logo": "unknown.png",
+ "symbol": "SKR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/sakura",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SKR",
+ "baseDenom": "SKR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAKURA",
+ "denom": "factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakura",
+ "logo": "unknown.png",
+ "symbol": "SAKURA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakura",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAKURA",
+ "baseDenom": "SAKURA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAKURA",
+ "denom": "factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura",
+ "logo": "unknown.png",
+ "symbol": "SAKURA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAKURA",
+ "baseDenom": "SAKURA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sammurai",
+ "denom": "factory/inj1wuw7wa8fvp0leuyvh9ypzmndduzd5vg0xc77ha/sam",
+ "logo": "unknown.png",
+ "symbol": "SAM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wuw7wa8fvp0leuyvh9ypzmndduzd5vg0xc77ha/sam",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAM",
+ "baseDenom": "SAM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SA MOO MOO RAII",
+ "denom": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SAMOORAII",
+ "logo": "unknown.png",
+ "symbol": "SAMOORAII",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SAMOORAII",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMOORAII",
+ "baseDenom": "SAMOORAII",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SamOrai",
+ "denom": "inj1a7fqtlllaynv6l4h2dmtzcrucx2a9r04e5ntnu",
+ "logo": "unknown.png",
+ "symbol": "SamOrai",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a7fqtlllaynv6l4h2dmtzcrucx2a9r04e5ntnu",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SamOrai",
+ "baseDenom": "SamOrai",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAMP",
+ "denom": "inj1xd2l3406kypepnnczcn6fm0lnmsk6qk7dakryn",
+ "logo": "unknown.png",
+ "symbol": "SAM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xd2l3406kypepnnczcn6fm0lnmsk6qk7dakryn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SAM",
+ "baseDenom": "SAM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Samurai",
+ "denom": "factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/samurai",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/samurai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Samurai",
+ "denom": "inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAMURAI",
+ "denom": "factory/inj16nffej2c5xx93lf976wkp7vlhenau464rawhkc/samurai",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16nffej2c5xx93lf976wkp7vlhenau464rawhkc/samurai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAMURAI",
+ "denom": "factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SAMURAI",
+ "denom": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Samurai dex token",
+ "denom": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/samurai",
+ "logo": "unknown.png",
+ "symbol": "SAMURAI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/samurai",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAMURAI",
+ "baseDenom": "SAMURAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SANSU",
+ "denom": "factory/inj1x5thnvjfwzmtxxhqckrap8ysgs2duy29m4xwsp/sansu",
+ "logo": "unknown.png",
+ "symbol": "SANSU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1x5thnvjfwzmtxxhqckrap8ysgs2duy29m4xwsp/sansu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SANSU",
+ "baseDenom": "SANSU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Santa",
+ "denom": "factory/inj1mwsgdlq6rxs3xte8p2m0pcw565czhgngrxgl38/Santa",
+ "logo": "unknown.png",
+ "symbol": "Santa",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mwsgdlq6rxs3xte8p2m0pcw565czhgngrxgl38/Santa",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Santa",
+ "baseDenom": "Santa",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SANTA",
+ "denom": "factory/inj12qf874wcfxtxt004qmuhdtxw4l6d0f5w6cyfpz/santa",
+ "logo": "unknown.png",
+ "symbol": "SANTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12qf874wcfxtxt004qmuhdtxw4l6d0f5w6cyfpz/santa",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SANTA",
+ "baseDenom": "SANTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SantaBonk (Wormhole)",
+ "denom": "inj1zjdtxmvkrxcd20q8nru4ws47nemkyxwnpuk34v",
+ "logo": "unknown.png",
+ "symbol": "SANTABONK",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zjdtxmvkrxcd20q8nru4ws47nemkyxwnpuk34v",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SANTABONK",
+ "baseDenom": "SANTABONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Santadoge (Wormhole)",
+ "denom": "inj1525sjr836apd4xkz8utflsm6e4ecuhar8qckhd",
+ "logo": "unknown.png",
+ "symbol": "SDOGE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1525sjr836apd4xkz8utflsm6e4ecuhar8qckhd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SDOGE",
+ "baseDenom": "SDOGE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SantaGodX (Wormhole)",
+ "denom": "inj1j8nvansvyvhnz4vzf5d8cyjpwu85ksdhyjf3n4",
+ "logo": "unknown.png",
+ "symbol": "SANTAGODX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j8nvansvyvhnz4vzf5d8cyjpwu85ksdhyjf3n4",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SANTAGODX",
+ "baseDenom": "SANTAGODX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Santa Injective (Wormhole)",
+ "denom": "inj1qpepg77mysjjqlm9znnmmkynreq9cs2rypwf35",
+ "logo": "unknown.png",
+ "symbol": "INJSANTA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qpepg77mysjjqlm9znnmmkynreq9cs2rypwf35",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJSANTA",
+ "baseDenom": "INJSANTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SantaInjective (Wormhole)",
+ "denom": "inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3",
+ "logo": "unknown.png",
+ "symbol": "INJSANTA",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "INJSANTA",
+ "baseDenom": "INJSANTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SantaInjective (Wormhole)",
+ "denom": "inj19wccuev2399ad0ftdfyvw8h9qq5dvqxqw0pqxe",
+ "logo": "unknown.png",
+ "symbol": "SANTAINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19wccuev2399ad0ftdfyvw8h9qq5dvqxqw0pqxe",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SANTAINJ",
+ "baseDenom": "SANTAINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Santa Kurōsu",
+ "denom": "factory/inj1dzd34k9x3pt09pc68emp85usgeyk33qn9a4euv/santakurosu",
+ "logo": "unknown.png",
+ "symbol": "santakurosu",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1dzd34k9x3pt09pc68emp85usgeyk33qn9a4euv/santakurosu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "santakurosu",
+ "baseDenom": "santakurosu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SantaMemes (Wormhole)",
+ "denom": "inj1dds0a220twm3pjprypmy0qun3cn727hzj0tpaa",
+ "logo": "unknown.png",
+ "symbol": "SANTAMEME",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dds0a220twm3pjprypmy0qun3cn727hzj0tpaa",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SANTAMEME",
+ "baseDenom": "SANTAMEME",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sasuke",
+ "denom": "inj1alpg8nw7lw8uplsrah8q0qn66rqq0fxzd3wf9f",
+ "logo": "unknown.png",
+ "symbol": "SASUKE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1alpg8nw7lw8uplsrah8q0qn66rqq0fxzd3wf9f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SASUKE",
+ "baseDenom": "SASUKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Satoru Gojo",
+ "denom": "inj1hwc0ynah0xv6glpq89jvm3haydhxjs35yncuq2",
+ "logo": "unknown.png",
+ "symbol": "GOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hwc0ynah0xv6glpq89jvm3haydhxjs35yncuq2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GOJO",
+ "baseDenom": "GOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SatoshiVM",
+ "denom": "inj1jyhzeqxnh8qnupt08gadn5emxpmmm998gwhuvv",
+ "logo": "unknown.png",
+ "symbol": "SVM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jyhzeqxnh8qnupt08gadn5emxpmmm998gwhuvv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SVM",
+ "baseDenom": "SVM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SatoshiVM",
+ "denom": "inj1wuw0730q4rznqnhkw2nqwk3l2gvun7mll9ew3n",
+ "logo": "unknown.png",
+ "symbol": "SAVM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wuw0730q4rznqnhkw2nqwk3l2gvun7mll9ew3n",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAVM",
+ "baseDenom": "SAVM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SATOSHIVM",
+ "denom": "inj1y7pvzc8h05e8qs9de2c9qcypxw6xkj5wttvm70",
+ "logo": "unknown.png",
+ "symbol": "SAVM",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y7pvzc8h05e8qs9de2c9qcypxw6xkj5wttvm70",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SAVM",
+ "baseDenom": "SAVM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SATS (Wormhole)",
+ "denom": "inj1ck568jpww8wludqh463lk6h32hhe58u0nrnnxe",
+ "logo": "unknown.png",
+ "symbol": "SATS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ck568jpww8wludqh463lk6h32hhe58u0nrnnxe",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SATS",
+ "baseDenom": "SATS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sayve",
+ "denom": "ibc/DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/sayve.png",
+ "symbol": "SAYVE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SAYVE",
+ "baseDenom": "SAYVE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ScaleX",
+ "denom": "factory/inj1faq30xe497yh5ztwt00krpf9a9lyakg2zhslwh/SCLX",
+ "logo": "unknown.png",
+ "symbol": "SCLX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1faq30xe497yh5ztwt00krpf9a9lyakg2zhslwh/SCLX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SCLX",
+ "baseDenom": "SCLX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SCAM",
+ "denom": "inj1f9rppeq5yduz2te5fxxwnalg54lsa3ac6da5fg",
+ "logo": "unknown.png",
+ "symbol": "SCAM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f9rppeq5yduz2te5fxxwnalg54lsa3ac6da5fg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SCAM",
+ "baseDenom": "SCAM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SCAM",
+ "denom": "inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7",
+ "logo": "unknown.png",
+ "symbol": "SCAM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SCAM",
+ "baseDenom": "SCAM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sci-Ninjas",
+ "denom": "inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk",
+ "logo": "unknown.png",
+ "symbol": "SNJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNJ",
+ "baseDenom": "SNJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sclaleX Finance",
+ "denom": "inj1x04gt4mtdepdjy5j3dk22g8mymw3jgqkzrm0fc",
+ "logo": "unknown.png",
+ "symbol": "SCLX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x04gt4mtdepdjy5j3dk22g8mymw3jgqkzrm0fc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SCLX",
+ "baseDenom": "SCLX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "scorpion",
+ "denom": "factory/inj1a37dnkznmek8l5uyg24xl5f7rvftpvqsduex24/scorpion",
+ "logo": "unknown.png",
+ "symbol": "scorpion",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a37dnkznmek8l5uyg24xl5f7rvftpvqsduex24/scorpion",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "scorpion",
+ "baseDenom": "scorpion",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Scorpion",
+ "denom": "factory/inj10w3p2qyursc03crkhg9djdm5tnu9xg63r2zumh/scorpion",
+ "logo": "unknown.png",
+ "symbol": "SCORPION",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj10w3p2qyursc03crkhg9djdm5tnu9xg63r2zumh/scorpion",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SCORPION",
+ "baseDenom": "SCORPION",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SCRT",
+ "denom": "ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/secretnetwork/images/scrt.png",
+ "symbol": "SCRT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SCRT",
+ "baseDenom": "SCRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "second",
+ "denom": "inj1rr08epad58xlg5auytptgctysn7lmsk070qeer",
+ "logo": "unknown.png",
+ "symbol": "SECOND",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rr08epad58xlg5auytptgctysn7lmsk070qeer",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SECOND",
+ "baseDenom": "SECOND",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Secret Network",
+ "denom": "ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/secretnetwork/images/scrt.png",
+ "symbol": "SCRT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SCRT",
+ "baseDenom": "SCRT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sei",
+ "denom": "ibc/0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
+ "symbol": "SEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEI",
+ "baseDenom": "SEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sei",
+ "denom": "ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
+ "symbol": "SEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEI",
+ "baseDenom": "SEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sei",
+ "denom": "ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
+ "symbol": "SEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEI",
+ "baseDenom": "SEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEI",
+ "denom": "factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI",
+ "logo": "unknown.png",
+ "symbol": "SEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEI",
+ "baseDenom": "SEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEIFU",
+ "denom": "inj1jtenkjgqhwxdl93eak2aark5s9kl72awc4rk47",
+ "logo": "unknown.png",
+ "symbol": "SEIFU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jtenkjgqhwxdl93eak2aark5s9kl72awc4rk47",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEIFU",
+ "baseDenom": "SEIFU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sei Network",
+ "denom": "factory/inj1hae0z4qsxw90ghy249ymghyz2ewa0ww3qrkyx2/SEI",
+ "logo": "unknown.png",
+ "symbol": "SEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hae0z4qsxw90ghy249ymghyz2ewa0ww3qrkyx2/SEI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEI",
+ "baseDenom": "SEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEISEI",
+ "denom": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/SEISEI",
+ "logo": "unknown.png",
+ "symbol": "SEISEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/SEISEI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEISEI",
+ "baseDenom": "SEISEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEI WHAT ? (Wormhole)",
+ "denom": "inj1qjgtplwsrflwgqjy0ffp72mfzckwsqmlq2ml6n",
+ "logo": "unknown.png",
+ "symbol": "SEIWHAT?",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qjgtplwsrflwgqjy0ffp72mfzckwsqmlq2ml6n",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SEIWHAT?",
+ "baseDenom": "SEIWHAT?",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SeiXInj (Wormhole)",
+ "denom": "inj12mjzeu7qrhn9w85dd02fkvjt8hgaewdk6j72fj",
+ "logo": "unknown.png",
+ "symbol": "SXI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12mjzeu7qrhn9w85dd02fkvjt8hgaewdk6j72fj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SXI",
+ "baseDenom": "SXI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEIYAN",
+ "denom": "ibc/ECC41A6731F0C6B26606A03C295236AA516FA0108037565B7288868797F52B91",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/SEIYAN.png",
+ "symbol": "SEIYAN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "ECC41A6731F0C6B26606A03C295236AA516FA0108037565B7288868797F52B91",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEIYAN",
+ "baseDenom": "SEIYAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sekiro",
+ "denom": "factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/Sekiro",
+ "logo": "unknown.png",
+ "symbol": "SEKIRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/Sekiro",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEKIRO",
+ "baseDenom": "SEKIRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sekiro",
+ "denom": "factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro",
+ "logo": "unknown.png",
+ "symbol": "SEKIRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEKIRO",
+ "baseDenom": "SEKIRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sendor",
+ "denom": "inj1hpwp280wsrsgn3r3mvufx09dy4e8glj8sq4vzx",
+ "logo": "unknown.png",
+ "symbol": "Sendor",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hpwp280wsrsgn3r3mvufx09dy4e8glj8sq4vzx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Sendor",
+ "baseDenom": "Sendor",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SENJU",
+ "denom": "factory/inj1qdamq2fk7xs6m34qv8swl9un04w8fhk42k35e5/SENJU",
+ "logo": "unknown.png",
+ "symbol": "SENJU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qdamq2fk7xs6m34qv8swl9un04w8fhk42k35e5/SENJU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SENJU",
+ "baseDenom": "SENJU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sensei",
+ "denom": "factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/sensei",
+ "logo": "unknown.png",
+ "symbol": "SENSEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/sensei",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SENSEI",
+ "baseDenom": "SENSEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SENSEI ",
+ "denom": "inj1h6hma5fahwutgzynjrk3jkzygqfxf3l32hv673",
+ "logo": "unknown.png",
+ "symbol": "SNJT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h6hma5fahwutgzynjrk3jkzygqfxf3l32hv673",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNJT",
+ "baseDenom": "SNJT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sensei Dog",
+ "denom": "ibc/12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/SenseiDog.png",
+ "symbol": "SENSEI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SENSEI",
+ "baseDenom": "SENSEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sentinel",
+ "denom": "inj172tsvz4t82m28rrthmvatfzqaphen66ty06qzn",
+ "logo": "unknown.png",
+ "symbol": "sentinel",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj172tsvz4t82m28rrthmvatfzqaphen66ty06qzn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "sentinel",
+ "baseDenom": "sentinel",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SERANIUM",
+ "denom": "inj128cqeg7a78k64xdxsr6v5s6js97dxjgxynwdxc",
+ "logo": "unknown.png",
+ "symbol": "SER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj128cqeg7a78k64xdxsr6v5s6js97dxjgxynwdxc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SER",
+ "baseDenom": "SER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Service Industry Coin",
+ "denom": "inj1kkc0l4xnz2eedrtp0pxr4l45cfuyw7tywd5682",
+ "logo": "unknown.png",
+ "symbol": "INDUSTRY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kkc0l4xnz2eedrtp0pxr4l45cfuyw7tywd5682",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "INDUSTRY",
+ "baseDenom": "INDUSTRY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "seul",
+ "denom": "ibc/1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/seul.png",
+ "symbol": "SEUL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEUL",
+ "baseDenom": "SEUL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "seven",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/seven",
+ "logo": "unknown.png",
+ "symbol": "seven",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/seven",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "seven",
+ "baseDenom": "seven",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Seven Protocol",
+ "denom": "inj1u4zp264el8hyxsqkeuj5yesp8pqmfh4fya86w6",
+ "logo": "unknown.png",
+ "symbol": "SVN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1u4zp264el8hyxsqkeuj5yesp8pqmfh4fya86w6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SVN",
+ "baseDenom": "SVN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEX",
+ "denom": "factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX",
+ "logo": "unknown.png",
+ "symbol": "SEX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEX",
+ "baseDenom": "SEX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SEX",
+ "denom": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/SEX",
+ "logo": "unknown.png",
+ "symbol": "SEX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/SEX",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SEX",
+ "baseDenom": "SEX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHARK",
+ "denom": "ibc/08B66006A5DC289F8CB3D7695F16D211D8DDCA68E4701A1EB90BF641D8637ACE",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/shark.png",
+ "symbol": "SHARK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "08B66006A5DC289F8CB3D7695F16D211D8DDCA68E4701A1EB90BF641D8637ACE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHARK",
+ "baseDenom": "SHARK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shark Cat",
+ "denom": "inj13y7ft3ppnwvnwey2meslv3w60arx074vlt6zwl",
+ "logo": "unknown.png",
+ "symbol": "shark",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13y7ft3ppnwvnwey2meslv3w60arx074vlt6zwl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "shark",
+ "baseDenom": "shark",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sharp Protocol (Wormhole)",
+ "denom": "inj134p6skwcyjac60d2jtff0daps7tvzuqj4n56fr",
+ "logo": "unknown.png",
+ "symbol": "SHARP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj134p6skwcyjac60d2jtff0daps7tvzuqj4n56fr",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SHARP",
+ "baseDenom": "SHARP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sheik",
+ "denom": "inj1k59du6npg24x2wacww9lmmleh5qrscf9gl7fr5",
+ "logo": "unknown.png",
+ "symbol": "She",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k59du6npg24x2wacww9lmmleh5qrscf9gl7fr5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "She",
+ "baseDenom": "She",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHENZI",
+ "denom": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/SHENZI",
+ "logo": "unknown.png",
+ "symbol": "SHENZI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/SHENZI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHENZI",
+ "baseDenom": "SHENZI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shiba",
+ "denom": "factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba",
+ "logo": "unknown.png",
+ "symbol": "shiba",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "shiba",
+ "baseDenom": "shiba",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shiba Inju",
+ "denom": "factory/inj1my757j0ndftrsdf2tuxsdhhy5qfkpuxw4x3wnc/shinju",
+ "logo": "unknown.png",
+ "symbol": "SHINJU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1my757j0ndftrsdf2tuxsdhhy5qfkpuxw4x3wnc/shinju",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHINJU",
+ "baseDenom": "SHINJU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shiba Inu",
+ "denom": "ibc/E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/shib.svg",
+ "symbol": "SHIB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SHIB",
+ "baseDenom": "SHIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHIBA INU",
+ "denom": "peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/shiba_inu.png",
+ "symbol": "SHIB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHIB",
+ "baseDenom": "SHIB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShibaPoconkToken (Wormhole)",
+ "denom": "inj18vcz02pukdr2kak6g2p34krgdddan2vlpzmqju",
+ "logo": "unknown.png",
+ "symbol": "CONK",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18vcz02pukdr2kak6g2p34krgdddan2vlpzmqju",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "CONK",
+ "baseDenom": "CONK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shiba Samurai",
+ "denom": "inj1tsrxu2pxusyn24zgxyh2z36apxmhu22jfwd4v7",
+ "logo": "unknown.png",
+ "symbol": "SHSA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tsrxu2pxusyn24zgxyh2z36apxmhu22jfwd4v7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SHSA",
+ "baseDenom": "SHSA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShibINJ",
+ "denom": "inj19zzdev3nkvpq26nfvdcm0szp8h272u2fxf0myv",
+ "logo": "unknown.png",
+ "symbol": "SHB",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19zzdev3nkvpq26nfvdcm0szp8h272u2fxf0myv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHB",
+ "baseDenom": "SHB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShibINJ",
+ "denom": "inj1w7wwyy6pjs9k2ecxte8p6tp8g7kh6k3ut402af",
+ "logo": "unknown.png",
+ "symbol": "SHI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w7wwyy6pjs9k2ecxte8p6tp8g7kh6k3ut402af",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHI",
+ "baseDenom": "SHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShibInuINJ",
+ "denom": "factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/SHIBINJ",
+ "logo": "unknown.png",
+ "symbol": "SHIBINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/SHIBINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHIBINJ",
+ "baseDenom": "SHIBINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHIELD",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SHIELD",
+ "logo": "unknown.png",
+ "symbol": "SHIELD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SHIELD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHIELD",
+ "baseDenom": "SHIELD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShihTzu",
+ "denom": "factory/inj1x78kr9td7rk3yqylvhgg0ru2z0wwva9mq9nh92/ShihTzu",
+ "logo": "unknown.png",
+ "symbol": "ShihTzu",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1x78kr9td7rk3yqylvhgg0ru2z0wwva9mq9nh92/ShihTzu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ShihTzu",
+ "baseDenom": "ShihTzu",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHINJ",
+ "denom": "factory/inj1h3vg2546p42hr955a7fwalaexjrypn8npds0nq/SHINJ",
+ "logo": "unknown.png",
+ "symbol": "SHINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1h3vg2546p42hr955a7fwalaexjrypn8npds0nq/SHINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHINJ",
+ "baseDenom": "SHINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shinja",
+ "denom": "factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/INJA",
+ "logo": "unknown.png",
+ "symbol": "INJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/INJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "INJA",
+ "baseDenom": "INJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHINOBI",
+ "denom": "inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55",
+ "logo": "unknown.png",
+ "symbol": "SHINOBI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SHINOBI",
+ "baseDenom": "SHINOBI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHINOBI CLAN",
+ "denom": "factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/SHINOBI",
+ "logo": "unknown.png",
+ "symbol": "SHINOBI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/SHINOBI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHINOBI",
+ "baseDenom": "SHINOBI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shinobi Inu",
+ "denom": "factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/Shinobi",
+ "logo": "unknown.png",
+ "symbol": "NOBI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/Shinobi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NOBI",
+ "baseDenom": "NOBI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHIRO",
+ "denom": "factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/shiro",
+ "logo": "unknown.png",
+ "symbol": "SHIRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/shiro",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHIRO",
+ "baseDenom": "SHIRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shit Mock Berb",
+ "denom": "inj13xkzlcd490ky7uuh3wwd48r4qy35hlhqxjpe0r",
+ "logo": "unknown.png",
+ "symbol": "SMB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13xkzlcd490ky7uuh3wwd48r4qy35hlhqxjpe0r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SMB",
+ "baseDenom": "SMB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shitmos",
+ "denom": "ibc/96C34D4D443A2FBCA10B120679AB50AE61195DF9D48DEAD60F798A6AC6B3B653",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/SHITMOS.png",
+ "symbol": "SHITMOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "96C34D4D443A2FBCA10B120679AB50AE61195DF9D48DEAD60F798A6AC6B3B653",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHITMOS",
+ "baseDenom": "SHITMOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHOGUN",
+ "denom": "inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j",
+ "logo": "unknown.png",
+ "symbol": "SHOGUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHOGUN",
+ "baseDenom": "SHOGUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shōgun Okami",
+ "denom": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/shogun",
+ "logo": "unknown.png",
+ "symbol": "SHOGUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/shogun",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHOGUN",
+ "baseDenom": "SHOGUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHRK",
+ "denom": "factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK",
+ "logo": "unknown.png",
+ "symbol": "SHRK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHRK",
+ "baseDenom": "SHRK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shromin",
+ "denom": "inj1x084w0279944a2f4hwcr7hay5knrmuuf8xrvvs",
+ "logo": "unknown.png",
+ "symbol": "SHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x084w0279944a2f4hwcr7hay5knrmuuf8xrvvs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHROOM",
+ "baseDenom": "SHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1vlgszdzq75lh56t5nqvxz28u0d9ftyve6pglxr",
+ "logo": "unknown.png",
+ "symbol": "NINISHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vlgszdzq75lh56t5nqvxz28u0d9ftyve6pglxr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINISHROOM",
+ "baseDenom": "NINISHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1mcdhsphq3rkyg9d0sax0arm95tkac4qxdynlkz",
+ "logo": "unknown.png",
+ "symbol": "miniSHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mcdhsphq3rkyg9d0sax0arm95tkac4qxdynlkz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "miniSHROOM",
+ "baseDenom": "miniSHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj14zxwefzz5p3l4mltlzgmfwh2jkgjqum256qhna",
+ "logo": "unknown.png",
+ "symbol": "babySHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14zxwefzz5p3l4mltlzgmfwh2jkgjqum256qhna",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySHROOM",
+ "baseDenom": "babySHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj194l9mfrjsthrvv07d648q24pvpfkntetx68e7l",
+ "logo": "unknown.png",
+ "symbol": "DOJOshroom",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj194l9mfrjsthrvv07d648q24pvpfkntetx68e7l",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "DOJOshroom",
+ "baseDenom": "DOJOshroom",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0",
+ "logo": "unknown.png",
+ "symbol": "SHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHROOM",
+ "baseDenom": "SHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1e0957khyf2l5knwtdnzjr6t4d0x496fyz6fwja",
+ "logo": "unknown.png",
+ "symbol": "NEWSHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e0957khyf2l5knwtdnzjr6t4d0x496fyz6fwja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NEWSHROOM",
+ "baseDenom": "NEWSHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1kld2dd6xa5rs98v7afv3l57m6s30hyj8dcuhh4",
+ "logo": "unknown.png",
+ "symbol": "BIGSHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kld2dd6xa5rs98v7afv3l57m6s30hyj8dcuhh4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BIGSHROOM",
+ "baseDenom": "BIGSHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf",
+ "logo": "unknown.png",
+ "symbol": "SHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHROOM",
+ "baseDenom": "SHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1dch98v88yhksd8j4wsypdua0gk3d9zdmsj7k59",
+ "logo": "unknown.png",
+ "symbol": "BABYSHROOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dch98v88yhksd8j4wsypdua0gk3d9zdmsj7k59",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYSHROOM",
+ "baseDenom": "BABYSHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shroomin",
+ "denom": "inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8",
+ "logo": "unknown.png",
+ "symbol": "SHROOM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SHROOM",
+ "baseDenom": "SHROOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "shuriken",
+ "denom": "inj1afr2er5nrevh90nywpka0gv8ywcx3fjhlpz4w3",
+ "logo": "unknown.png",
+ "symbol": "SHRK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1afr2er5nrevh90nywpka0gv8ywcx3fjhlpz4w3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHRK",
+ "baseDenom": "SHRK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shuriken",
+ "denom": "inj1kxamn5nmsn8l7tyu752sm2tyt6qlpufupjyscl",
+ "logo": "unknown.png",
+ "symbol": "SKR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1kxamn5nmsn8l7tyu752sm2tyt6qlpufupjyscl",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SKR",
+ "baseDenom": "SKR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHURIKEN",
+ "denom": "inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHURIKEN",
+ "denom": "factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SHURIKEN",
+ "denom": "inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ShurikenLabs",
+ "denom": "factory/inj1mllxwgvx0zhhr83rfawjl05dmuwwzfcrs9xz6t/SHU",
+ "logo": "unknown.png",
+ "symbol": "SHU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mllxwgvx0zhhr83rfawjl05dmuwwzfcrs9xz6t/SHU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHU",
+ "baseDenom": "SHU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Shuriken Token",
+ "denom": "factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken",
+ "logo": "unknown.png",
+ "symbol": "SHURIKEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SHURIKEN",
+ "baseDenom": "SHURIKEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Silly Dragon (Wormhole)",
+ "denom": "inj19j6q86wt75p3pexfkajpgxhkjht589zyu0e4rd",
+ "logo": "unknown.png",
+ "symbol": "SILLY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19j6q86wt75p3pexfkajpgxhkjht589zyu0e4rd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SILLY",
+ "baseDenom": "SILLY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Simpsons",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/simpsons",
+ "logo": "unknown.png",
+ "symbol": "SIMPSONS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/simpsons",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SIMPSONS",
+ "baseDenom": "SIMPSONS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sinful",
+ "denom": "inj10fnmtl9mh95gjtgl67ww6clugl35d8lc7tewkd",
+ "logo": "unknown.png",
+ "symbol": "Sin",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10fnmtl9mh95gjtgl67ww6clugl35d8lc7tewkd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Sin",
+ "baseDenom": "Sin",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sinful",
+ "denom": "inj1lhfk33ydwwnnmtluyuu3re2g4lp79c86ge546g",
+ "logo": "unknown.png",
+ "symbol": "Sin",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1lhfk33ydwwnnmtluyuu3re2g4lp79c86ge546g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Sin",
+ "baseDenom": "Sin",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SingularityNET",
+ "denom": "inj163fdg2e00gfdx9mjvarlgljuzt4guvx8ghhwml",
+ "logo": "unknown.png",
+ "symbol": "AGIX",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj163fdg2e00gfdx9mjvarlgljuzt4guvx8ghhwml",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "AGIX",
+ "baseDenom": "AGIX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sisifos Token",
+ "denom": "inj1m7hd99423w39aug74f6vtuqqzvw5vp0h2e85u0",
+ "logo": "unknown.png",
+ "symbol": "SSFS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m7hd99423w39aug74f6vtuqqzvw5vp0h2e85u0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SSFS",
+ "baseDenom": "SSFS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SIVAS KANGALI",
+ "denom": "inj1aq9f75yaq9rwewh38r0ffdf4eqt4mlfktef0q2",
+ "logo": "unknown.png",
+ "symbol": "KANGAL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aq9f75yaq9rwewh38r0ffdf4eqt4mlfktef0q2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "KANGAL",
+ "baseDenom": "KANGAL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SJAKE",
+ "denom": "factory/inj1s4xa5jsp5sfv5nql5h3c2l8559l7rqyzckheha/SJAKE",
+ "logo": "unknown.png",
+ "symbol": "SJAKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s4xa5jsp5sfv5nql5h3c2l8559l7rqyzckheha/SJAKE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SJAKE",
+ "baseDenom": "SJAKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SKIBIDI",
+ "denom": "peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d",
+ "logo": "unknown.png",
+ "symbol": "SKIBIDI",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "SKIBIDI",
+ "baseDenom": "SKIBIDI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "skibidi toilet",
+ "denom": "factory/inj1ztugej2ytfwj9kxa8m5md85e5z3v8jvaxapz6n/skibidi",
+ "logo": "unknown.png",
+ "symbol": "SKIBIDI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ztugej2ytfwj9kxa8m5md85e5z3v8jvaxapz6n/skibidi",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SKIBIDI",
+ "baseDenom": "SKIBIDI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ski Mask Dog ",
+ "denom": "inj167xkgla9kcpz5gxz6ak4vrqs7nqxr08kvyfqkz",
+ "logo": "unknown.png",
+ "symbol": "SKI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj167xkgla9kcpz5gxz6ak4vrqs7nqxr08kvyfqkz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SKI",
+ "baseDenom": "SKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SKULL",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SKULL",
+ "logo": "unknown.png",
+ "symbol": "SKULL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SKULL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SKULL",
+ "baseDenom": "SKULL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Skulls",
+ "denom": "inj1qk4cfp3su44qzragr55fc9adeehle7lal63jpz",
+ "logo": "unknown.png",
+ "symbol": "SKULLS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qk4cfp3su44qzragr55fc9adeehle7lal63jpz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SKULLS",
+ "baseDenom": "SKULLS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SKYPE",
+ "denom": "inj1e9nezwf7wvjj4rzfkjfad7teqjfa7r0838f6cs",
+ "logo": "unknown.png",
+ "symbol": "SKYPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1e9nezwf7wvjj4rzfkjfad7teqjfa7r0838f6cs",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SKYPE",
+ "baseDenom": "SKYPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sloth",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/sloth",
+ "logo": "unknown.png",
+ "symbol": "SLOTH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/sloth",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SLOTH",
+ "baseDenom": "SLOTH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMART",
+ "denom": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART",
+ "logo": "unknown.png",
+ "symbol": "SMART",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SMART",
+ "baseDenom": "SMART",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMAUG",
+ "denom": "inj1a2wzkydpw54f8adq76dkf6kwx6zffnjju93r0y",
+ "logo": "unknown.png",
+ "symbol": "SMAUG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a2wzkydpw54f8adq76dkf6kwx6zffnjju93r0y",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SMAUG",
+ "baseDenom": "SMAUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMILE",
+ "denom": "factory/inj1tuwuzza5suj9hq4n8pwlfw2gfua8223jfaa6v7/SMILE",
+ "logo": "unknown.png",
+ "symbol": "SMILE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1tuwuzza5suj9hq4n8pwlfw2gfua8223jfaa6v7/SMILE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SMILE",
+ "baseDenom": "SMILE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMLE",
+ "denom": "inj13ent4rmkzf2dht7hnlhg89t527k8xn5ft92e69",
+ "logo": "unknown.png",
+ "symbol": "SMLE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13ent4rmkzf2dht7hnlhg89t527k8xn5ft92e69",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SMLE",
+ "baseDenom": "SMLE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMLE",
+ "denom": "inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx",
+ "logo": "unknown.png",
+ "symbol": "SMLE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SMLE",
+ "baseDenom": "SMLE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SMOKE",
+ "denom": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKE",
+ "logo": "unknown.png",
+ "symbol": "SMOKE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SMOKE",
+ "baseDenom": "SMOKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Smoking Nonja",
+ "denom": "factory/inj1907wkvrn9q256pulcc6n4dkk9425d2rd8t2qwt/smokingNONJA",
+ "logo": "unknown.png",
+ "symbol": "smokingNONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1907wkvrn9q256pulcc6n4dkk9425d2rd8t2qwt/smokingNONJA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "smokingNONJA",
+ "baseDenom": "smokingNONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Smoking Nonja",
+ "denom": "factory/inj1nvv2gplh009e4s32snu5y3ge7tny0mauy9dxzg/smokingnonja",
+ "logo": "unknown.png",
+ "symbol": "smokingNONJA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nvv2gplh009e4s32snu5y3ge7tny0mauy9dxzg/smokingnonja",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "smokingNONJA",
+ "baseDenom": "smokingNONJA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Snappy",
+ "denom": "factory/inj13y5nqf8mymy9tfxkg055th7hdm2uaahs9q6q5w/SNAPPY",
+ "logo": "unknown.png",
+ "symbol": "SNAPPY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj13y5nqf8mymy9tfxkg055th7hdm2uaahs9q6q5w/SNAPPY",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SNAPPY",
+ "baseDenom": "SNAPPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNAPPY inj",
+ "denom": "inj19dfkr2rm8g5kltyu93ppgmvdzj799vug2m9jqp",
+ "logo": "unknown.png",
+ "symbol": "SNAPPY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19dfkr2rm8g5kltyu93ppgmvdzj799vug2m9jqp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNAPPY",
+ "baseDenom": "SNAPPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "snek",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/snek",
+ "logo": "unknown.png",
+ "symbol": "SNEK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/snek",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SNEK",
+ "baseDenom": "SNEK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNIPE",
+ "denom": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/SNIPE",
+ "logo": "unknown.png",
+ "symbol": "SNIPE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/SNIPE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SNIPE",
+ "baseDenom": "SNIPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNIPE",
+ "denom": "inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e",
+ "logo": "unknown.png",
+ "symbol": "SNIPE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNIPE",
+ "baseDenom": "SNIPE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNIPEONE",
+ "denom": "inj146tnhg42q52jpj6ljefu6xstatactyd09wcgwh",
+ "logo": "unknown.png",
+ "symbol": "SNIPEONE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj146tnhg42q52jpj6ljefu6xstatactyd09wcgwh",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNIPEONE",
+ "baseDenom": "SNIPEONE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNIPER",
+ "denom": "factory/inj1qzxna8fqr56g83rvyyylxnyghpguzt2jx3dgr8/SNIPER",
+ "logo": "unknown.png",
+ "symbol": "SNIPER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qzxna8fqr56g83rvyyylxnyghpguzt2jx3dgr8/SNIPER",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SNIPER",
+ "baseDenom": "SNIPER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SNX",
+ "denom": "peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F",
+ "logo": "unknown.png",
+ "symbol": "SNX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SNX",
+ "baseDenom": "SNX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Socrates.io (Wormhole)",
+ "denom": "inj18qupdvxmgswj9kfz66vaw4d4wn0453ap6ydxmy",
+ "logo": "unknown.png",
+ "symbol": "SOCRATES",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18qupdvxmgswj9kfz66vaw4d4wn0453ap6ydxmy",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SOCRATES",
+ "baseDenom": "SOCRATES",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "soggs",
+ "denom": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/soggs",
+ "logo": "unknown.png",
+ "symbol": "SOGGS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/soggs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SOGGS",
+ "baseDenom": "SOGGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SOL",
+ "denom": "factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL",
+ "logo": "unknown.png",
+ "symbol": "SOL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SOL",
+ "baseDenom": "SOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Solana USD Coin (Wormhole)",
+ "denom": "ibc/FF3CF830E60679530072C4787A76D18E81C04F9725C3523F941DF0D8B7EB24F0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdc.svg",
+ "symbol": "solana.USDC.wh",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FF3CF830E60679530072C4787A76D18E81C04F9725C3523F941DF0D8B7EB24F0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "solana.USDC.wh",
+ "baseDenom": "solana.USDC.wh",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sold now buy lower...",
+ "denom": "inj1hgrgkrpwsu6n44ueucx0809usskkp6vdcr3ul9",
+ "logo": "unknown.png",
+ "symbol": "YOAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hgrgkrpwsu6n44ueucx0809usskkp6vdcr3ul9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YOAN",
+ "baseDenom": "YOAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SOMM",
+ "denom": "peggy0xa670d7237398238DE01267472C6f13e5B8010FD1",
+ "logo": "unknown.png",
+ "symbol": "SOMM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xa670d7237398238DE01267472C6f13e5B8010FD1",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SOMM",
+ "baseDenom": "SOMM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sommelier",
+ "denom": "ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png",
+ "symbol": "SOMM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SOMM",
+ "baseDenom": "SOMM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SONICFLOKITRUMPSPIDERMAN INU (Wormhole)",
+ "denom": "inj16afzhsepkne4vc7hhu7fzx4cjpgkqzagexqaz6",
+ "logo": "unknown.png",
+ "symbol": "BTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj16afzhsepkne4vc7hhu7fzx4cjpgkqzagexqaz6",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "BTC",
+ "baseDenom": "BTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SONINJ",
+ "denom": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/soninj",
+ "logo": "unknown.png",
+ "symbol": "SONINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/soninj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SONINJ",
+ "baseDenom": "SONINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sos",
+ "denom": "inj13wdqnmv40grlmje48akc2l0azxl38d2wzl5t92",
+ "logo": "unknown.png",
+ "symbol": "SOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13wdqnmv40grlmje48akc2l0azxl38d2wzl5t92",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SOS",
+ "baseDenom": "SOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "space candy for degens",
+ "denom": "inj1nqcrsh0fs60k06mkc2ptxa9l4g9ktu4jct8z2w",
+ "logo": "unknown.png",
+ "symbol": "babyDRUGS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nqcrsh0fs60k06mkc2ptxa9l4g9ktu4jct8z2w",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyDRUGS",
+ "baseDenom": "babyDRUGS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "space candy for degens",
+ "denom": "inj1457z9m26aqvga58demjz87uyt6su7hyf65aqvr",
+ "logo": "unknown.png",
+ "symbol": "babyDrugs",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1457z9m26aqvga58demjz87uyt6su7hyf65aqvr",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyDrugs",
+ "baseDenom": "babyDrugs",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "space candy for degens",
+ "denom": "inj1qt78z7xru0fcks54ca56uehuzwal026ghhtxdv",
+ "logo": "unknown.png",
+ "symbol": "babyDrugs",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qt78z7xru0fcks54ca56uehuzwal026ghhtxdv",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babyDrugs",
+ "baseDenom": "babyDrugs",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Spike",
+ "denom": "inj18wclk6g0qwwqxa36wd4ty8g9eqgm6q04zjgnpp",
+ "logo": "unknown.png",
+ "symbol": "SPK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18wclk6g0qwwqxa36wd4ty8g9eqgm6q04zjgnpp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPK",
+ "baseDenom": "SPK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Spirit Inu (Wormhole)",
+ "denom": "inj1mxjvtp38yj866w7djhm9yjkwqc4ug7klqrnyyj",
+ "logo": "unknown.png",
+ "symbol": "SINU",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mxjvtp38yj866w7djhm9yjkwqc4ug7klqrnyyj",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SINU",
+ "baseDenom": "SINU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sponch Bob",
+ "denom": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/sponch",
+ "logo": "unknown.png",
+ "symbol": "SPONCH",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/sponch",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SPONCH",
+ "baseDenom": "SPONCH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spore",
+ "denom": "inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02",
+ "logo": "unknown.png",
+ "symbol": "spore",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "spore",
+ "baseDenom": "spore",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spore",
+ "denom": "factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore",
+ "logo": "unknown.png",
+ "symbol": "spore",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "spore",
+ "baseDenom": "spore",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spuun",
+ "denom": "inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spuun",
+ "denom": "inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spuun",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/spuun",
+ "logo": "unknown.png",
+ "symbol": "spuun",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/spuun",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "spuun",
+ "baseDenom": "spuun",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spuun",
+ "denom": "inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "spuun",
+ "denom": "inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Spuun",
+ "denom": "inj1hs0xupdsrnwfx3lcpz56qkp72q7rn57v3jm0x7",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hs0xupdsrnwfx3lcpz56qkp72q7rn57v3jm0x7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SPUUN",
+ "denom": "factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/SPUUN",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/SPUUN",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SPUUN",
+ "denom": "inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw",
+ "logo": "unknown.png",
+ "symbol": "babySPUUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "babySPUUN",
+ "baseDenom": "babySPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SPUUN",
+ "denom": "inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8",
+ "logo": "unknown.png",
+ "symbol": "SPUUN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SPUUN",
+ "baseDenom": "SPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SPUUN ",
+ "denom": "inj1n73ty9gxej3xk7c0hhktjdq3ppsekwjnhq98p5",
+ "logo": "unknown.png",
+ "symbol": "BABYSPUUN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n73ty9gxej3xk7c0hhktjdq3ppsekwjnhq98p5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "BABYSPUUN",
+ "baseDenom": "BABYSPUUN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SPUUN INJ",
+ "denom": "inj1zrd6wwvyh4rqsx5tvje6ug6qd2xtn0xgu6ylml",
+ "logo": "unknown.png",
+ "symbol": "spuun",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zrd6wwvyh4rqsx5tvje6ug6qd2xtn0xgu6ylml",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "spuun",
+ "baseDenom": "spuun",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Spuurk",
+ "denom": "inj1m9yfd6f2dw0f6uyx4r2av2xk8s5fq5m7pt3mec",
+ "logo": "unknown.png",
+ "symbol": "Spuurk",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m9yfd6f2dw0f6uyx4r2av2xk8s5fq5m7pt3mec",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Spuurk",
+ "baseDenom": "Spuurk",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Spuvn",
+ "denom": "inj1f66rlllh2uef95p3v7cswqmnnh2w3uv3f97kv3",
+ "logo": "unknown.png",
+ "symbol": "Spuvn",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f66rlllh2uef95p3v7cswqmnnh2w3uv3f97kv3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Spuvn",
+ "baseDenom": "Spuvn",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "squid",
+ "denom": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/squid",
+ "logo": "unknown.png",
+ "symbol": "SQUID",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/squid",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SQUID",
+ "baseDenom": "SQUID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Squid Game",
+ "denom": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/SQUID",
+ "logo": "unknown.png",
+ "symbol": "SQUID",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/SQUID",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SQUID",
+ "baseDenom": "SQUID",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Staked Astroport Token",
+ "denom": "ibc/11B5974E9592AFEDBD74F08BE92A06A626CE01BEB395090C1567ABEE551B04C0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/xAstro.svg",
+ "symbol": "xASTRO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "11B5974E9592AFEDBD74F08BE92A06A626CE01BEB395090C1567ABEE551B04C0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "xASTRO",
+ "baseDenom": "xASTRO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Staked Frax Ether",
+ "denom": "ibc/E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/sfrxeth.svg",
+ "symbol": "sfrxETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "sfrxETH",
+ "baseDenom": "sfrxETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Staked IBCX",
+ "denom": "ibc/0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/stibcx.png",
+ "symbol": "stIBCX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stIBCX",
+ "baseDenom": "stIBCX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "StakeLand DAO (Wormhole)",
+ "denom": "inj1sx4mtq9kegurmuvdwddtr49u0hmxw6wt8dxu3v",
+ "logo": "unknown.png",
+ "symbol": "STAKELAND",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sx4mtq9kegurmuvdwddtr49u0hmxw6wt8dxu3v",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "STAKELAND",
+ "baseDenom": "STAKELAND",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "StarChain (Wormhole)",
+ "denom": "inj1nkxdx2trqak6cv0q84sej5wy23k988wz66z73w",
+ "logo": "unknown.png",
+ "symbol": "STAR",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nkxdx2trqak6cv0q84sej5wy23k988wz66z73w",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "STAR",
+ "baseDenom": "STAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "STARK",
+ "denom": "factory/inj106etgay573e32ksysc9dpdrynxhk7kkmaclhfc/stark",
+ "logo": "unknown.png",
+ "symbol": "STARK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj106etgay573e32ksysc9dpdrynxhk7kkmaclhfc/stark",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "STARK",
+ "baseDenom": "STARK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "STARS",
+ "denom": "ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stargaze/images/stars.png",
+ "symbol": "STARS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "STARS",
+ "baseDenom": "STARS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "StarXcross (Wormhole)",
+ "denom": "inj1a4lr8sulev42zgup2g0sk8x4hl9th20cj4fqmu",
+ "logo": "unknown.png",
+ "symbol": "SXC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a4lr8sulev42zgup2g0sk8x4hl9th20cj4fqmu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SXC",
+ "baseDenom": "SXC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "stATOM",
+ "denom": "ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/statom.png",
+ "symbol": "stATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stATOM",
+ "baseDenom": "stATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SteadyBTC",
+ "denom": "peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d",
+ "logo": "unknown.png",
+ "symbol": "SteadyBTC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SteadyBTC",
+ "baseDenom": "SteadyBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SteadyETH",
+ "denom": "peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622",
+ "logo": "unknown.png",
+ "symbol": "SteadyETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SteadyETH",
+ "baseDenom": "SteadyETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Steel",
+ "denom": "inj1m2pce9f8wfql0st8jrf7y2en7gvrvd5wm573xc",
+ "logo": "unknown.png",
+ "symbol": "STL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m2pce9f8wfql0st8jrf7y2en7gvrvd5wm573xc",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "STL",
+ "baseDenom": "STL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "stive",
+ "denom": "inj1y208239ua6mchwayw8s8jfnuyqktycqhk6tmhv",
+ "logo": "unknown.png",
+ "symbol": "tve",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y208239ua6mchwayw8s8jfnuyqktycqhk6tmhv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tve",
+ "baseDenom": "tve",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "storage",
+ "denom": "inj1dzatga5p63z2rpfqx7vh4fp6as8y46enkrfst0",
+ "logo": "unknown.png",
+ "symbol": "storage",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dzatga5p63z2rpfqx7vh4fp6as8y46enkrfst0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "storage",
+ "baseDenom": "storage",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "STRD",
+ "denom": "ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/strd.png",
+ "symbol": "STRD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "STRD",
+ "baseDenom": "STRD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride",
+ "denom": "ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/strd.png",
+ "symbol": "STRD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "STRD",
+ "baseDenom": "STRD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked ATOM",
+ "denom": "ibc/A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/statom.png",
+ "symbol": "stATOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stATOM",
+ "baseDenom": "stATOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked CMDX",
+ "denom": "ibc/0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stcmdx.png",
+ "symbol": "stCMDX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stCMDX",
+ "baseDenom": "stCMDX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked DYDX",
+ "denom": "ibc/9B324282388BEBD0E028749E9E10627BA2BA13ADBE7FF04274F2CFBDD271BA4B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stdydx.png",
+ "symbol": "stDYDX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9B324282388BEBD0E028749E9E10627BA2BA13ADBE7FF04274F2CFBDD271BA4B",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stDYDX",
+ "baseDenom": "stDYDX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked DYM",
+ "denom": "ibc/7F4BE10120E17C0F493124FFEDC1A3397B8BECEA83701CE8DC8D8B1E3A2A7763",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stdym.png",
+ "symbol": "stDYM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7F4BE10120E17C0F493124FFEDC1A3397B8BECEA83701CE8DC8D8B1E3A2A7763",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stDYM",
+ "baseDenom": "stDYM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked EVMOS",
+ "denom": "ibc/75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stevmos.png",
+ "symbol": "stEVMOS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stEVMOS",
+ "baseDenom": "stEVMOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked INJ",
+ "denom": "ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stinj.png",
+ "symbol": "stINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "stINJ",
+ "baseDenom": "stINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked JUNO",
+ "denom": "ibc/580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stjuno.png",
+ "symbol": "stJUNO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stJUNO",
+ "baseDenom": "stJUNO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked LUNA",
+ "denom": "ibc/E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stluna.png",
+ "symbol": "stLUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stLUNA",
+ "baseDenom": "stLUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked OSMO",
+ "denom": "ibc/6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stosmo.png",
+ "symbol": "stOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stOSMO",
+ "baseDenom": "stOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked SAGA",
+ "denom": "ibc/7C9A65FC985CCD22D0B56F1CEB2DDA3D552088FCE17E9FDF6D18F49BEDBEBF97",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stsaga.png",
+ "symbol": "stSAGA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7C9A65FC985CCD22D0B56F1CEB2DDA3D552088FCE17E9FDF6D18F49BEDBEBF97",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stSAGA",
+ "baseDenom": "stSAGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked SOMM",
+ "denom": "ibc/9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stsomm.png",
+ "symbol": "stSOMM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stSOMM",
+ "baseDenom": "stSOMM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked STARS",
+ "denom": "ibc/DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/ststars.png",
+ "symbol": "stSTARS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stSTARS",
+ "baseDenom": "stSTARS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked TIA",
+ "denom": "ibc/32F6EDA3E2B2A7F9C4A62F11935CF5D25948372A5A85281D7ABB9A2D0F0B7182",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/sttia.png",
+ "symbol": "stTIA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "32F6EDA3E2B2A7F9C4A62F11935CF5D25948372A5A85281D7ABB9A2D0F0B7182",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stTIA",
+ "baseDenom": "stTIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Stride Staked UMEE",
+ "denom": "ibc/FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stumee.png",
+ "symbol": "stUMEE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "stUMEE",
+ "baseDenom": "stUMEE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SUICIDE",
+ "denom": "factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/UICIDE",
+ "logo": "unknown.png",
+ "symbol": "UICIDE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/UICIDE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UICIDE",
+ "baseDenom": "UICIDE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sui (Wormhole)",
+ "denom": "ibc/F96C68219E987465D9EB253DACD385855827C5705164DAFDB0161429F8B95780",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/sui/images/sui.svg",
+ "symbol": "SUI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F96C68219E987465D9EB253DACD385855827C5705164DAFDB0161429F8B95780",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SUI",
+ "baseDenom": "SUI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SUMO ❤️ COCO",
+ "denom": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SUMOCOCO",
+ "logo": "unknown.png",
+ "symbol": "SUMOCOCO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SUMOCOCO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SUMOCOCO",
+ "baseDenom": "SUMOCOCO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sumō Gendai Budō",
+ "denom": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/sumo",
+ "logo": "unknown.png",
+ "symbol": "SUMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/sumo",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SUMO",
+ "baseDenom": "SUMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Super Mario",
+ "denom": "inj1mgts7d5c32w6aqr8h9f5th08x0p4jaya2tp4zp",
+ "logo": "unknown.png",
+ "symbol": "SUPERMARIO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mgts7d5c32w6aqr8h9f5th08x0p4jaya2tp4zp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SUPERMARIO",
+ "baseDenom": "SUPERMARIO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "supertoken",
+ "denom": "inj1fq8mjddyvkas32ltzzaqru6nesse2ft8xnn3vs",
+ "logo": "unknown.png",
+ "symbol": "super",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fq8mjddyvkas32ltzzaqru6nesse2ft8xnn3vs",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "super",
+ "baseDenom": "super",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "sUSDe",
+ "denom": "peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497",
+ "logo": "unknown.png",
+ "symbol": "sUSDe",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sUSDe",
+ "baseDenom": "sUSDe",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SUSHI",
+ "denom": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI",
+ "logo": "unknown.png",
+ "symbol": "SUSHI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SUSHI",
+ "baseDenom": "SUSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sushi Roll",
+ "denom": "inj1p6evqfal5hke6x5zy8ggk2h5fhn4hquk63g20d",
+ "logo": "unknown.png",
+ "symbol": "SUSHII",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1p6evqfal5hke6x5zy8ggk2h5fhn4hquk63g20d",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SUSHII",
+ "baseDenom": "SUSHII",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sushi Staked INJ",
+ "denom": "inj1hwj3xz8ljajs87km07nev9jt7uhmvf9k9q4k0f",
+ "logo": "unknown.png",
+ "symbol": "sINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hwj3xz8ljajs87km07nev9jt7uhmvf9k9q4k0f",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sINJ",
+ "baseDenom": "sINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sushi Staked INJ",
+ "denom": "inj162hf4hjntzpdghq2c5e966g2ldd83jkmqcvqgq",
+ "logo": "unknown.png",
+ "symbol": "sINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj162hf4hjntzpdghq2c5e966g2ldd83jkmqcvqgq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sINJ",
+ "baseDenom": "sINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "SushiSwap",
+ "denom": "peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2",
+ "logo": "unknown.png",
+ "symbol": "SUSHI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SUSHI",
+ "baseDenom": "SUSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Sushi Token",
+ "denom": "inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd",
+ "logo": "https://explorer.injective.network/vendor/@injectivelabs/token-metadata/sushi.png",
+ "symbol": "SUSHI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SUSHI",
+ "baseDenom": "SUSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Synergia συνεργία",
+ "denom": "factory/inj16jsp4xd49k0lnqlmtzsskf70pkzyzv2hjkcr8f/synergy",
+ "logo": "unknown.png",
+ "symbol": "SYN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj16jsp4xd49k0lnqlmtzsskf70pkzyzv2hjkcr8f/synergy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SYN",
+ "baseDenom": "SYN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TABOO TOKEN (Wormhole)",
+ "denom": "inj1ttxw2rn2s3hqu4haew9e3ugekafu3hkhtqzmyw",
+ "logo": "unknown.png",
+ "symbol": "TABOO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ttxw2rn2s3hqu4haew9e3ugekafu3hkhtqzmyw",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TABOO",
+ "baseDenom": "TABOO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TacosOnAptos (Wormhole)",
+ "denom": "inj1ac9d646xzyam5pd2yx4ekgfjhc65564533fl2m",
+ "logo": "unknown.png",
+ "symbol": "TACOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ac9d646xzyam5pd2yx4ekgfjhc65564533fl2m",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TACOS",
+ "baseDenom": "TACOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TAJIK",
+ "denom": "factory/inj1dvlqazkar9jdy8x02j5k2tftwjnp7c53sgfavp/TAJIK",
+ "logo": "unknown.png",
+ "symbol": "TAJIK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1dvlqazkar9jdy8x02j5k2tftwjnp7c53sgfavp/TAJIK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TAJIK",
+ "baseDenom": "TAJIK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Takumi Asano",
+ "denom": "ibc/ADE961D980CB5F2D49527E028774DE42BFD3D78F4CBBD4B8BA54890E60606DBD",
+ "logo": "unknown.png",
+ "symbol": "TAKUMI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "ADE961D980CB5F2D49527E028774DE42BFD3D78F4CBBD4B8BA54890E60606DBD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TAKUMI",
+ "baseDenom": "TAKUMI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TALIS",
+ "denom": "factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis",
+ "logo": "https://raw.githubusercontent.com/Talis-Art/talis/main/assets/talis.webp",
+ "symbol": "TALIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TALIS",
+ "baseDenom": "TALIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TALIS",
+ "denom": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS",
+ "logo": "unknown.png",
+ "symbol": "TALIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TALIS",
+ "baseDenom": "TALIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Talis NFT (Wormhole)",
+ "denom": "inj155kuqqlmdz7ft2jas4fc23pvtsecce8xps47w5",
+ "logo": "unknown.png",
+ "symbol": "TALIS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj155kuqqlmdz7ft2jas4fc23pvtsecce8xps47w5",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TALIS",
+ "baseDenom": "TALIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tama",
+ "denom": "factory/inj18feu0k5w2r0jsffgx8ue8pfj2nntfucaj0dr8v/tama",
+ "logo": "unknown.png",
+ "symbol": "tama",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18feu0k5w2r0jsffgx8ue8pfj2nntfucaj0dr8v/tama",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "tama",
+ "baseDenom": "tama",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tansha Jinsei",
+ "denom": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/tansha",
+ "logo": "unknown.png",
+ "symbol": "TANSHA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/tansha",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TANSHA",
+ "baseDenom": "TANSHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Target (Wormhole)",
+ "denom": "inj1scn6ssfehuw735llele39kk7w6ylg4auw3epjp",
+ "logo": "unknown.png",
+ "symbol": "TRG",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1scn6ssfehuw735llele39kk7w6ylg4auw3epjp",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TRG",
+ "baseDenom": "TRG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tBTC v2 (Wormhole)",
+ "denom": "ibc/CDF0747148A7E6FCF27143312A8A5B7F9AEF0EF8BD4FA4381815A5EDBFC9B87E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/tbtc.svg",
+ "symbol": "tBTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CDF0747148A7E6FCF27143312A8A5B7F9AEF0EF8BD4FA4381815A5EDBFC9B87E",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "tBTC",
+ "baseDenom": "tBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Teenage Mutant Ninja Turtles",
+ "denom": "inj1yt6erfe7a55es7gnwhta94g08zq9qrsjw25eq5",
+ "logo": "unknown.png",
+ "symbol": "TMNT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yt6erfe7a55es7gnwhta94g08zq9qrsjw25eq5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TMNT",
+ "baseDenom": "TMNT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEN",
+ "denom": "inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj",
+ "logo": "unknown.png",
+ "symbol": "TEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEN",
+ "baseDenom": "TEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEN",
+ "denom": "inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f",
+ "logo": "unknown.png",
+ "symbol": "TEN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEN",
+ "baseDenom": "TEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TENSOR",
+ "denom": "inj1py9r5ghr2rx92c0hyn75pjl7ung4euqdm8tvn5",
+ "logo": "unknown.png",
+ "symbol": "TENSOR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1py9r5ghr2rx92c0hyn75pjl7ung4euqdm8tvn5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TENSOR",
+ "baseDenom": "TENSOR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "terever",
+ "denom": "inj14tepyvvxsn9yy2hgqrl4stqzm2h0vla9ee8ya9",
+ "logo": "unknown.png",
+ "symbol": "terever",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14tepyvvxsn9yy2hgqrl4stqzm2h0vla9ee8ya9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "terever",
+ "baseDenom": "terever",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TerraForms (Wormhole)",
+ "denom": "inj19rev0qmuz3eccvkluz8sptm6e9693jduexrc4v",
+ "logo": "unknown.png",
+ "symbol": "TERRAFORMS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19rev0qmuz3eccvkluz8sptm6e9693jduexrc4v",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TERRAFORMS",
+ "baseDenom": "TERRAFORMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TerraUSD",
+ "denom": "ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/ust.png",
+ "symbol": "UST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UST",
+ "baseDenom": "UST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tert",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tert",
+ "logo": "unknown.png",
+ "symbol": "TERT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tert",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TERT",
+ "baseDenom": "TERT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "inj1ukx6qs0guxzcf0an80vw8q88203cl75cey67lw",
+ "logo": "unknown.png",
+ "symbol": "tst",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ukx6qs0guxzcf0an80vw8q88203cl75cey67lw",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tst",
+ "baseDenom": "tst",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test",
+ "denom": "inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d",
+ "logo": "unknown.png",
+ "symbol": "TST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TST",
+ "baseDenom": "TST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd",
+ "logo": "unknown.png",
+ "symbol": "Test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Test",
+ "baseDenom": "Test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz",
+ "logo": "unknown.png",
+ "symbol": "Test",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Test",
+ "baseDenom": "Test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj1xetmk66rv8nhjur9s8t8szkdff0xwks8e4vym3",
+ "logo": "unknown.png",
+ "symbol": "TIK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xetmk66rv8nhjur9s8t8szkdff0xwks8e4vym3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TIK",
+ "baseDenom": "TIK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "ibc/A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test",
+ "denom": "inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g",
+ "logo": "unknown.png",
+ "symbol": "Test",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Test",
+ "baseDenom": "Test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST13",
+ "logo": "unknown.png",
+ "symbol": "TEST13",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST13",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST13",
+ "baseDenom": "TEST13",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST",
+ "denom": "inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TEST12",
+ "denom": "inj1cqwslhvaaferrf3c933efmddfsvakdhzaaex5h",
+ "logo": "unknown.png",
+ "symbol": "TRR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cqwslhvaaferrf3c933efmddfsvakdhzaaex5h",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRR",
+ "baseDenom": "TRR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test2",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test2",
+ "logo": "unknown.png",
+ "symbol": "test2",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test2",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test2",
+ "baseDenom": "test2",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test2club",
+ "denom": "inj125hp6pmxyajhldefkrcmc87lx08kvwtag382ks",
+ "logo": "unknown.png",
+ "symbol": "teclub",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj125hp6pmxyajhldefkrcmc87lx08kvwtag382ks",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "teclub",
+ "baseDenom": "teclub",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test2club",
+ "denom": "inj1r0rkq2v70lur23jczassuqu5qwc5npcjpp3e8c",
+ "logo": "unknown.png",
+ "symbol": "testclubss",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r0rkq2v70lur23jczassuqu5qwc5npcjpp3e8c",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "testclubss",
+ "baseDenom": "testclubss",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test3",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test3",
+ "logo": "unknown.png",
+ "symbol": "test3",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test3",
+ "baseDenom": "test3",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test4",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test4",
+ "logo": "unknown.png",
+ "symbol": "test4",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test4",
+ "baseDenom": "test4",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test5",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test5",
+ "logo": "unknown.png",
+ "symbol": "test5",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test5",
+ "baseDenom": "test5",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "test6",
+ "denom": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test6",
+ "logo": "unknown.png",
+ "symbol": "test6",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "test6",
+ "baseDenom": "test6",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testclub",
+ "denom": "inj15v7mu4ywf8rvy5wk9ptrq7we32e3q0shkhuhg8",
+ "logo": "unknown.png",
+ "symbol": "testclub",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15v7mu4ywf8rvy5wk9ptrq7we32e3q0shkhuhg8",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "testclub",
+ "baseDenom": "testclub",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test coin don't buy",
+ "denom": "inj19xpgme02uxc55hgplg4vkm4vw0n7p6xl4ksqcz",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19xpgme02uxc55hgplg4vkm4vw0n7p6xl4ksqcz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testdaojo",
+ "denom": "inj174v6mke336kqzf7rl7ud43ddc4vsqh2q4mnl6t",
+ "logo": "unknown.png",
+ "symbol": "testdaojo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj174v6mke336kqzf7rl7ud43ddc4vsqh2q4mnl6t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "testdaojo",
+ "baseDenom": "testdaojo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Testgay ",
+ "denom": "inj1pw54fsqmp0ludl6vl5wfe63ddax52z5hlq9jhy",
+ "logo": "unknown.png",
+ "symbol": "Gay",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pw54fsqmp0ludl6vl5wfe63ddax52z5hlq9jhy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Gay",
+ "baseDenom": "Gay",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TESTI",
+ "denom": "inj1mzcamv0w3q797x4sj4ny05hfpgacm90a2d2xqp",
+ "logo": "unknown.png",
+ "symbol": "TESTI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1mzcamv0w3q797x4sj4ny05hfpgacm90a2d2xqp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TESTI",
+ "baseDenom": "TESTI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testing",
+ "denom": "inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct",
+ "logo": "unknown.png",
+ "symbol": "test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "test",
+ "baseDenom": "test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testing123",
+ "denom": "inj1w4clv0alsnt5ez2v7dl9yjzmg7mkfzjs0cf7cz",
+ "logo": "unknown.png",
+ "symbol": "testtesttest",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1w4clv0alsnt5ez2v7dl9yjzmg7mkfzjs0cf7cz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "testtesttest",
+ "baseDenom": "testtesttest",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TestingToken",
+ "denom": "inj1j5y95qltlyyjayjpyupgy7e5y7kkmvjgph888r",
+ "logo": "unknown.png",
+ "symbol": "Test",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1j5y95qltlyyjayjpyupgy7e5y7kkmvjgph888r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Test",
+ "baseDenom": "Test",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Testnoobdev",
+ "denom": "inj1qzlkvt3vwyd6hjam70zmr3sg2ww00l953hka0d",
+ "logo": "unknown.png",
+ "symbol": "NoobDev",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qzlkvt3vwyd6hjam70zmr3sg2ww00l953hka0d",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NoobDev",
+ "baseDenom": "NoobDev",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TestOne",
+ "denom": "inj1f8fsu2xl97c6yss7s3vgmvnjau2qdlk3vq3fg2",
+ "logo": "unknown.png",
+ "symbol": "TestOne",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f8fsu2xl97c6yss7s3vgmvnjau2qdlk3vq3fg2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TestOne",
+ "baseDenom": "TestOne",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testpixdog",
+ "denom": "inj17mxrt7ywxgjh4lsk8kqjgqt0zc6pzj5jwd5xt7",
+ "logo": "unknown.png",
+ "symbol": "tpixdog",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17mxrt7ywxgjh4lsk8kqjgqt0zc6pzj5jwd5xt7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tpixdog",
+ "baseDenom": "tpixdog",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TestThree",
+ "denom": "inj14e3anyw3r9dx4wchnkcg8nlzps73x86cze3nq6",
+ "logo": "unknown.png",
+ "symbol": "TestThree",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14e3anyw3r9dx4wchnkcg8nlzps73x86cze3nq6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TestThree",
+ "baseDenom": "TestThree",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test Token",
+ "denom": "factory/inj12qy3algm6e0zdpv8zxvauzquumuvd39ccdcdjt/TEST",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12qy3algm6e0zdpv8zxvauzquumuvd39ccdcdjt/TEST",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Test Token",
+ "denom": "inj1a6qdxdanekzgq6dluymlk7n7khg3dqq9lua9q9",
+ "logo": "unknown.png",
+ "symbol": "TEST",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a6qdxdanekzgq6dluymlk7n7khg3dqq9lua9q9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TEST",
+ "baseDenom": "TEST",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "testttt",
+ "denom": "inj19p5am8kye6r7xu3xy9crzh4dj7uhqvpw3n3mny",
+ "logo": "unknown.png",
+ "symbol": "TSTT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19p5am8kye6r7xu3xy9crzh4dj7uhqvpw3n3mny",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TSTT",
+ "baseDenom": "TSTT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TestTwo",
+ "denom": "inj1krcpgdu3a83pdtnus70qlalrxken0h4y52lfhg",
+ "logo": "unknown.png",
+ "symbol": "TestTwo",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1krcpgdu3a83pdtnus70qlalrxken0h4y52lfhg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TestTwo",
+ "baseDenom": "TestTwo",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": " tether",
+ "denom": "inj1wpeh7cm7s0mj7m3x6vrf5hvxfx2xusz5l27evk",
+ "logo": "unknown.png",
+ "symbol": "USDT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wpeh7cm7s0mj7m3x6vrf5hvxfx2xusz5l27evk",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tether",
+ "denom": "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/usdt.svg",
+ "symbol": "USDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tether USD",
+ "denom": "ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdt.svg",
+ "symbol": "USDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tether USD",
+ "denom": "ibc/90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png",
+ "symbol": "USDT.axl",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT.axl",
+ "baseDenom": "USDT.axl",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tether USD (Wormhole)",
+ "denom": "ibc/3384DCE14A72BBD0A47107C19A30EDD5FD1AC50909C632CB807680DBC798BB30",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdt.svg",
+ "symbol": "USDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3384DCE14A72BBD0A47107C19A30EDD5FD1AC50909C632CB807680DBC798BB30",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "THE10",
+ "denom": "factory/inj18u2790weecgqkmcyh2sg9uupz538kwgmmcmtps/THE10",
+ "logo": "unknown.png",
+ "symbol": "THE10",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18u2790weecgqkmcyh2sg9uupz538kwgmmcmtps/THE10",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "THE10",
+ "baseDenom": "THE10",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Gem",
+ "denom": "factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/gem",
+ "logo": "unknown.png",
+ "symbol": "GEM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/gem",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "GEM",
+ "baseDenom": "GEM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TheJanitor",
+ "denom": "factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/TheJanitor",
+ "logo": "unknown.png",
+ "symbol": "ERIC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/TheJanitor",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ERIC",
+ "baseDenom": "ERIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Klaus Projekt (Wormhole)",
+ "denom": "inj1yjgk5ywd0mhczx3shvreajtg2ag9l3d56us0f8",
+ "logo": "unknown.png",
+ "symbol": "KLAUS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yjgk5ywd0mhczx3shvreajtg2ag9l3d56us0f8",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "KLAUS",
+ "baseDenom": "KLAUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Mask",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/mask",
+ "logo": "unknown.png",
+ "symbol": "MASK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/mask",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MASK",
+ "baseDenom": "MASK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TheMorcs",
+ "denom": "inj1vnwc3n4z2rewaetwwxz9lz46qncwayvhytpddl",
+ "logo": "unknown.png",
+ "symbol": "Morc",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vnwc3n4z2rewaetwwxz9lz46qncwayvhytpddl",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "Morc",
+ "baseDenom": "Morc",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Musicians",
+ "denom": "inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3",
+ "logo": "unknown.png",
+ "symbol": "NOTE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "NOTE",
+ "baseDenom": "NOTE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TheOnlyOne",
+ "denom": "ibc/C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/xxx3.png",
+ "symbol": "xxx",
+ "decimals": 10,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4",
+ "path": "",
+ "channelId": "",
+ "decimals": 10,
+ "symbol": "xxx",
+ "baseDenom": "xxx",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The People (Wormhole)",
+ "denom": "inj13pegx0ucn2e8w2g857n5828cmvl687jgq692t4",
+ "logo": "unknown.png",
+ "symbol": "People",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13pegx0ucn2e8w2g857n5828cmvl687jgq692t4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "People",
+ "baseDenom": "People",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Psycho",
+ "denom": "factory/inj18aptztz0pxvvjzumpnd36szzljup0t7t3pauu8/psycho",
+ "logo": "unknown.png",
+ "symbol": "PSYCHO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18aptztz0pxvvjzumpnd36szzljup0t7t3pauu8/psycho",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "PSYCHO",
+ "baseDenom": "PSYCHO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Rock",
+ "denom": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/rock",
+ "logo": "unknown.png",
+ "symbol": "ROCK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/rock",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ROCK",
+ "baseDenom": "ROCK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Salt",
+ "denom": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/salt",
+ "logo": "unknown.png",
+ "symbol": "SALT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/salt",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SALT",
+ "baseDenom": "SALT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Stinjer",
+ "denom": "factory/inj1fepsfp58ff2l7fasj47ytwrrwwp6k7uz6uhfvn/stinjer",
+ "logo": "unknown.png",
+ "symbol": "STINJER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fepsfp58ff2l7fasj47ytwrrwwp6k7uz6uhfvn/stinjer",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "STINJER",
+ "baseDenom": "STINJER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "The Uchiha reign supreme",
+ "denom": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SHARINGAN",
+ "logo": "unknown.png",
+ "symbol": "SHARINGAN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SHARINGAN",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "SHARINGAN",
+ "baseDenom": "SHARINGAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "THREE",
+ "denom": "inj1qqfhg6l8d7punj4z597t0p3wwwxdcpfew4fz7a",
+ "logo": "unknown.png",
+ "symbol": "THREE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qqfhg6l8d7punj4z597t0p3wwwxdcpfew4fz7a",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "THREE",
+ "baseDenom": "THREE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ThugLife",
+ "denom": "factory/inj108qcx6eu6l6adl6kxm0qpyshlmzf3w9mnq5vav/THUGLIFE",
+ "logo": "unknown.png",
+ "symbol": "THUG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj108qcx6eu6l6adl6kxm0qpyshlmzf3w9mnq5vav/THUGLIFE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "THUG",
+ "baseDenom": "THUG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "thunder",
+ "denom": "inj1gacpupgyt74farecd9pv20emdv6vpkpkhft59y",
+ "logo": "unknown.png",
+ "symbol": "THUNDER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1gacpupgyt74farecd9pv20emdv6vpkpkhft59y",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "THUNDER",
+ "baseDenom": "THUNDER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TIA Squared",
+ "denom": "ibc/D2098712E1B9398AD8D05966A5766D4C32137D9A06CF839376221176CFD9AF0B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqtia.svg",
+ "symbol": "sqTIA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D2098712E1B9398AD8D05966A5766D4C32137D9A06CF839376221176CFD9AF0B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "sqTIA",
+ "baseDenom": "sqTIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TINJER",
+ "denom": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/tinjer",
+ "logo": "unknown.png",
+ "symbol": "TINJER",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/tinjer",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TINJER",
+ "baseDenom": "TINJER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tiny Tony",
+ "denom": "inj10c0ufysjj52pe7m9a3ncymzf98sysl3nr730r5",
+ "logo": "unknown.png",
+ "symbol": "TTNY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10c0ufysjj52pe7m9a3ncymzf98sysl3nr730r5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TTNY",
+ "baseDenom": "TTNY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Titan",
+ "denom": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/titan",
+ "logo": "unknown.png",
+ "symbol": "TITAN",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/titan",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TITAN",
+ "baseDenom": "TITAN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tokentesting",
+ "denom": "inj1l2juxl35xedtneaq2eyk535cw5hq4x3krjqsl3",
+ "logo": "unknown.png",
+ "symbol": "token",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1l2juxl35xedtneaq2eyk535cw5hq4x3krjqsl3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "token",
+ "baseDenom": "token",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TOKYO",
+ "denom": "inj1k8ad5x6auhzr9tu3drq6ahh5dtu5989utxeu89",
+ "logo": "unknown.png",
+ "symbol": "TOKYO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1k8ad5x6auhzr9tu3drq6ahh5dtu5989utxeu89",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TOKYO",
+ "baseDenom": "TOKYO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TOM",
+ "denom": "factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/TOM",
+ "logo": "unknown.png",
+ "symbol": "TOM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/TOM",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TOM",
+ "baseDenom": "TOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tomogakuen (Wormhole)",
+ "denom": "inj1d08rut8e0u2e0rlf3pynaplas6q0akj5p976kv",
+ "logo": "unknown.png",
+ "symbol": "TOMO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d08rut8e0u2e0rlf3pynaplas6q0akj5p976kv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TOMO",
+ "baseDenom": "TOMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ton26",
+ "denom": "inj180rq0xetfzwjquxg4mukc4qw0mzprkhetrygv5",
+ "logo": "unknown.png",
+ "symbol": "tonf",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj180rq0xetfzwjquxg4mukc4qw0mzprkhetrygv5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tonf",
+ "baseDenom": "tonf",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tonkuru (方位磁針)",
+ "denom": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/tonkuru",
+ "logo": "unknown.png",
+ "symbol": "TONKURU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/tonkuru",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TONKURU",
+ "baseDenom": "TONKURU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tony23",
+ "denom": "inj1aqtnpa0ghger4mlz4u46cl48rr82jes043pugz",
+ "logo": "unknown.png",
+ "symbol": "tonc",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aqtnpa0ghger4mlz4u46cl48rr82jes043pugz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tonc",
+ "baseDenom": "tonc",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tony25",
+ "denom": "inj1rgfquap6gahcdekg4pv6ru030w9yaph7nhcp9g",
+ "logo": "unknown.png",
+ "symbol": "tone",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1rgfquap6gahcdekg4pv6ru030w9yaph7nhcp9g",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "tone",
+ "baseDenom": "tone",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TORO",
+ "denom": "ibc/37DF4CCD7D156B9A8BF3636CD7E073BADBFD54E7C7D5B42B34C116E33DB0FE81",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/toro.png",
+ "symbol": "TORO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "37DF4CCD7D156B9A8BF3636CD7E073BADBFD54E7C7D5B42B34C116E33DB0FE81",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TORO",
+ "baseDenom": "TORO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "totomal",
+ "denom": "inj17dpjwzzr05uvegj4hhwtf47y0u362qgm6r3f5r",
+ "logo": "unknown.png",
+ "symbol": "toto",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17dpjwzzr05uvegj4hhwtf47y0u362qgm6r3f5r",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "toto",
+ "baseDenom": "toto",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Toxic Aliens 👽",
+ "denom": "factory/inj1z94yca7t4yz9t8ftqf0lcxat8lva0ew7a5eh5n/ALIENS",
+ "logo": "unknown.png",
+ "symbol": "👽ALIEN👽",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z94yca7t4yz9t8ftqf0lcxat8lva0ew7a5eh5n/ALIENS",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "👽ALIEN👽",
+ "baseDenom": "👽ALIEN👽",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRASH",
+ "denom": "inj1re43j2d6jxlk4m5sn9lc5qdc0rwkz64c8gqk5x",
+ "logo": "unknown.png",
+ "symbol": "TRASH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1re43j2d6jxlk4m5sn9lc5qdc0rwkz64c8gqk5x",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRASH",
+ "baseDenom": "TRASH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "tremp",
+ "denom": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tremp",
+ "logo": "unknown.png",
+ "symbol": "tremp",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tremp",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "tremp",
+ "baseDenom": "tremp",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TrempBoden",
+ "denom": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/trempboden",
+ "logo": "unknown.png",
+ "symbol": "TrempBoden",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/trempboden",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TrempBoden",
+ "baseDenom": "TrempBoden",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TREN TOKEN",
+ "denom": "inj14y8f4jc0qmmwzcyj9k7dxnlq6tgjq9ql6n2kdn",
+ "logo": "unknown.png",
+ "symbol": "TREN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14y8f4jc0qmmwzcyj9k7dxnlq6tgjq9ql6n2kdn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TREN",
+ "baseDenom": "TREN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "trippinj",
+ "denom": "inj1puwde6qxl5v96f5sw0dmql4r3a0e9wvxp3w805",
+ "logo": "unknown.png",
+ "symbol": "TRIPPY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1puwde6qxl5v96f5sw0dmql4r3a0e9wvxp3w805",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRIPPY",
+ "baseDenom": "TRIPPY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUFFLE",
+ "denom": "factory/inj1pjcmuxd2ek7mvx4gnv6quyn6c6rjxwcrs4h5y4/truffle",
+ "logo": "unknown.png",
+ "symbol": "TF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1pjcmuxd2ek7mvx4gnv6quyn6c6rjxwcrs4h5y4/truffle",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TF",
+ "baseDenom": "TF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Trump",
+ "denom": "inj1neclyywnhlhe4me0g2tky9fznjnun2n9maxuhx",
+ "logo": "unknown.png",
+ "symbol": "TRUMP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1neclyywnhlhe4me0g2tky9fznjnun2n9maxuhx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TRUMP",
+ "baseDenom": "TRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUMP",
+ "denom": "inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar",
+ "logo": "unknown.png",
+ "symbol": "TRUMP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRUMP",
+ "baseDenom": "TRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUMP",
+ "denom": "factory/inj1f95tm7382nhj42e48s427nevh3rkj64xe7da5z/NINJATRUMP",
+ "logo": "unknown.png",
+ "symbol": "NINJATRUMP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1f95tm7382nhj42e48s427nevh3rkj64xe7da5z/NINJATRUMP",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NINJATRUMP",
+ "baseDenom": "NINJATRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUMP",
+ "denom": "inj1a6d54f5f737e8xs54qpxhs9v5l233n6qy9kyud",
+ "logo": "unknown.png",
+ "symbol": "trump",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1a6d54f5f737e8xs54qpxhs9v5l233n6qy9kyud",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "trump",
+ "baseDenom": "trump",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUMP",
+ "denom": "inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm",
+ "logo": "unknown.png",
+ "symbol": "TRUMP",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRUMP",
+ "baseDenom": "TRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRUMP",
+ "denom": "inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef",
+ "logo": "unknown.png",
+ "symbol": "TRUMP",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TRUMP",
+ "baseDenom": "TRUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Trump Ninja",
+ "denom": "inj1dj0u7mqn3z8vxz6muwudhpl95sajmy00w7t6gq",
+ "logo": "unknown.png",
+ "symbol": "MAGA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1dj0u7mqn3z8vxz6muwudhpl95sajmy00w7t6gq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "MAGA",
+ "baseDenom": "MAGA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRX",
+ "denom": "inj17ssa7q9nnv5e5p6c4ezzxj02yjhmvv5jmg6adq",
+ "logo": "unknown.png",
+ "symbol": "TRX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17ssa7q9nnv5e5p6c4ezzxj02yjhmvv5jmg6adq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TRX",
+ "baseDenom": "TRX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TRY",
+ "denom": "inj10dqyn46ljqwzx4947zc3dska84hpnwc7r6rzzs",
+ "logo": "unknown.png",
+ "symbol": "TRY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10dqyn46ljqwzx4947zc3dska84hpnwc7r6rzzs",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TRY",
+ "baseDenom": "TRY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TryCW20",
+ "denom": "inj15res2a5r94y8s33lc7c5czcswx76pygjk827t0",
+ "logo": "unknown.png",
+ "symbol": "TryCW",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15res2a5r94y8s33lc7c5czcswx76pygjk827t0",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TryCW",
+ "baseDenom": "TryCW",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TSTI",
+ "denom": "factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/TSTI",
+ "logo": "unknown.png",
+ "symbol": "TSTI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/TSTI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TSTI",
+ "baseDenom": "TSTI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tsu Grenade",
+ "denom": "inj1zgxh52u45qy3xxrq72ypdajhhjftj0hu5x4eea",
+ "logo": "unknown.png",
+ "symbol": "TSUNADE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zgxh52u45qy3xxrq72ypdajhhjftj0hu5x4eea",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TSUNADE",
+ "baseDenom": "TSUNADE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Tsunade ",
+ "denom": "inj1vwzqtjcwv2wt5pcajvlhmaeejwme57q52mhjy3",
+ "logo": "unknown.png",
+ "symbol": "TSUNADE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vwzqtjcwv2wt5pcajvlhmaeejwme57q52mhjy3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TSUNADE",
+ "baseDenom": "TSUNADE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TUNA",
+ "denom": "inj1yqm9apy8kat8fav2mmm7geshyytdld0al67ks4",
+ "logo": "unknown.png",
+ "symbol": "FTUNA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yqm9apy8kat8fav2mmm7geshyytdld0al67ks4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FTUNA",
+ "baseDenom": "FTUNA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TunaSniper",
+ "denom": "inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam",
+ "logo": "unknown.png",
+ "symbol": "TunaSniper",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TunaSniper",
+ "baseDenom": "TunaSniper",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TunaSniperBotOutSoon",
+ "denom": "inj1r3vswh4hevfj6ynfn7ypudzhe2rrngzjn4lv5a",
+ "logo": "unknown.png",
+ "symbol": "TunaSniper",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1r3vswh4hevfj6ynfn7ypudzhe2rrngzjn4lv5a",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "TunaSniper",
+ "baseDenom": "TunaSniper",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Turbo",
+ "denom": "factory/inj1hhmra48t7xwz4snc7ttn6eu5nvmgzu0lwalmwk/TURBO",
+ "logo": "unknown.png",
+ "symbol": "TURBO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hhmra48t7xwz4snc7ttn6eu5nvmgzu0lwalmwk/TURBO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TURBO",
+ "baseDenom": "TURBO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TURBO TOAD INJECTIVE",
+ "denom": "factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/TURBOTOAD",
+ "logo": "unknown.png",
+ "symbol": "TURBOTOAD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/TURBOTOAD",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TURBOTOAD",
+ "baseDenom": "TURBOTOAD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TURTLENINJ",
+ "denom": "factory/inj1lv9v2z2zvvng6v9qm8eh02t2mre6f8q6ez5jxl/turtleninj",
+ "logo": "unknown.png",
+ "symbol": "TURTLENINJ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1lv9v2z2zvvng6v9qm8eh02t2mre6f8q6ez5jxl/turtleninj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TURTLENINJ",
+ "baseDenom": "TURTLENINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TWO",
+ "denom": "inj19fza325yjfnx9zxvtvawn0rrjwl73g4nkzmm2w",
+ "logo": "unknown.png",
+ "symbol": "TWO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj19fza325yjfnx9zxvtvawn0rrjwl73g4nkzmm2w",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "TWO",
+ "baseDenom": "TWO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "TylerCoin",
+ "denom": "factory/inj1ureedhqkm8tv2v60de54xzgqgu9u25xkuw8ecs/tyler",
+ "logo": "unknown.png",
+ "symbol": "TC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ureedhqkm8tv2v60de54xzgqgu9u25xkuw8ecs/tyler",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "TC",
+ "baseDenom": "TC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UEFA EURO 2024",
+ "denom": "factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/EURO",
+ "logo": "unknown.png",
+ "symbol": "EURO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/EURO",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "EURO",
+ "baseDenom": "EURO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UIA",
+ "denom": "inj1h6avzdsgkfvymg3sq5utgpq2aqg4pdee7ep77t",
+ "logo": "unknown.png",
+ "symbol": "UIA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h6avzdsgkfvymg3sq5utgpq2aqg4pdee7ep77t",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "UIA",
+ "baseDenom": "UIA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ulvn",
+ "denom": "factory/osmo1mlng7pz4pnyxtpq0akfwall37czyk9lukaucsrn30ameplhhshtqdvfm5c/ulvn",
+ "logo": "unknown.png",
+ "symbol": "ulvn",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/osmo1mlng7pz4pnyxtpq0akfwall37czyk9lukaucsrn30ameplhhshtqdvfm5c/ulvn",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ulvn",
+ "baseDenom": "ulvn",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Umee",
+ "denom": "ibc/2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/umee/images/umee.png",
+ "symbol": "UMEE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UMEE",
+ "baseDenom": "UMEE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UMEE",
+ "denom": "ibc/221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/umee/images/umee.png",
+ "symbol": "UMEE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UMEE",
+ "baseDenom": "UMEE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UNI",
+ "denom": "peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
+ "logo": "unknown.png",
+ "symbol": "UNI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "UNI",
+ "baseDenom": "UNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UNI",
+ "denom": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI",
+ "logo": "unknown.png",
+ "symbol": "UNI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UNI",
+ "baseDenom": "UNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Uniswap",
+ "denom": "ibc/3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/uni.svg",
+ "symbol": "UNI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "UNI",
+ "baseDenom": "UNI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Unstake Fi",
+ "denom": "ibc/35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/nstk.svg",
+ "symbol": "NSTK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "NSTK",
+ "baseDenom": "NSTK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UP10X",
+ "denom": "inj10jgxzcqdf6phdmettetd8m92gxucxz5rpp9kwu",
+ "logo": "unknown.png",
+ "symbol": "UPTENX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10jgxzcqdf6phdmettetd8m92gxucxz5rpp9kwu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UPTENX",
+ "baseDenom": "UPTENX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "UP10X",
+ "denom": "inj1zeu70usj0gtgqapy2srsp7pstf9r82ckqk45hs",
+ "logo": "unknown.png",
+ "symbol": "UPTENX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zeu70usj0gtgqapy2srsp7pstf9r82ckqk45hs",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "UPTENX",
+ "baseDenom": "UPTENX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Upgrade Coin (Wormhole)",
+ "denom": "inj1f32xp69g4qf7t8tnvkgnmhh70gzy43nznkkk7f",
+ "logo": "unknown.png",
+ "symbol": "UPGRADE",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f32xp69g4qf7t8tnvkgnmhh70gzy43nznkkk7f",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "UPGRADE",
+ "baseDenom": "UPGRADE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDC",
+ "denom": "ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6",
+ "logo": "unknown.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDC",
+ "denom": "peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.svg",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDC",
+ "denom": "ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/usdc.svg",
+ "symbol": "USDCET",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDCET",
+ "baseDenom": "USDCET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin",
+ "denom": "ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin (BEP-20)",
+ "denom": "ibc/5FF8FE2FDCD9E28C0608B17FA177A918DFAF7218FA18E5A2C688F34D86EF2407",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdc.svg",
+ "symbol": "USDC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5FF8FE2FDCD9E28C0608B17FA177A918DFAF7218FA18E5A2C688F34D86EF2407",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin from Avalanche",
+ "denom": "ibc/705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin from Polygon",
+ "denom": "ibc/2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.svg",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin (Wormhole)",
+ "denom": "inj13mpkggs6t62kzt6pjd6guqfy6naljpp2jd3eue",
+ "logo": "unknown.png",
+ "symbol": "devUSDC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13mpkggs6t62kzt6pjd6guqfy6naljpp2jd3eue",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "devUSDC",
+ "baseDenom": "devUSDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Coin (Wormhole)",
+ "denom": "ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdc.svg",
+ "symbol": "USDC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDC",
+ "baseDenom": "USDC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDLR by Stable",
+ "denom": "ibc/E15121C1541741E0A7BA2B96B30864C1B1052F1AD8189D81E6C97939B415D12E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/testnets/nobletestnet/images/usdlr.png",
+ "symbol": "USDLR",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E15121C1541741E0A7BA2B96B30864C1B1052F1AD8189D81E6C97939B415D12E",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDLR",
+ "baseDenom": "USDLR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDT",
+ "denom": "inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg",
+ "logo": "unknown.png",
+ "symbol": "USDT",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDT",
+ "denom": "ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdt.png",
+ "symbol": "USDT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT",
+ "baseDenom": "USDT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USD Tether (Multichain Bridge)",
+ "denom": "ibc/24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png",
+ "symbol": "USDT.multi",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USDT.multi",
+ "baseDenom": "USDT.multi",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USDY",
+ "denom": "peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C",
+ "logo": "https://explorer.injective.network/vendor/@injectivelabs/token-metadata/usdy.webp",
+ "symbol": "USDY",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "USDY",
+ "baseDenom": "USDY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "USK",
+ "denom": "ibc/58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/usk.png",
+ "symbol": "USK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "USK",
+ "baseDenom": "USK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Vatreni Token",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay",
+ "logo": "unknown.png",
+ "symbol": "VATRENI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "VATRENI",
+ "baseDenom": "VATRENI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "vegas",
+ "denom": "inj12sy2vdgspes6p7af4ssv2sv0u020ew4httwp5y",
+ "logo": "unknown.png",
+ "symbol": "VEGAS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj12sy2vdgspes6p7af4ssv2sv0u020ew4httwp5y",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "VEGAS",
+ "baseDenom": "VEGAS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Velocity (Wormhole)",
+ "denom": "inj1srz2afh8cmay4nuk8tjkq9lhu6tz3hhmjnevlv",
+ "logo": "unknown.png",
+ "symbol": "VELO",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1srz2afh8cmay4nuk8tjkq9lhu6tz3hhmjnevlv",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "VELO",
+ "baseDenom": "VELO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Venus (Wormhole)",
+ "denom": "inj109z6sf8pxl4l6dwh7s328hqcn0ruzflch8mnum",
+ "logo": "unknown.png",
+ "symbol": "VENUS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj109z6sf8pxl4l6dwh7s328hqcn0ruzflch8mnum",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "VENUS",
+ "baseDenom": "VENUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "VERHA",
+ "denom": "inj1v2rqvnaavskyhjkx7xfkkyljhnyhuv6fmczprq",
+ "logo": "unknown.png",
+ "symbol": "VERHA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1v2rqvnaavskyhjkx7xfkkyljhnyhuv6fmczprq",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "VERHA",
+ "baseDenom": "VERHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "V for Vinjetta",
+ "denom": "factory/inj1f4x4j5zcv3uf8d2806umhd50p78gfrftjc3gg4/vinjetta",
+ "logo": "unknown.png",
+ "symbol": "VINJETTA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1f4x4j5zcv3uf8d2806umhd50p78gfrftjc3gg4/vinjetta",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "VINJETTA",
+ "baseDenom": "VINJETTA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "vida",
+ "denom": "inj18wa0xa2xg8ydass70e8uvlvzupt9wcn5l9tuxm",
+ "logo": "unknown.png",
+ "symbol": "VIDA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj18wa0xa2xg8ydass70e8uvlvzupt9wcn5l9tuxm",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "VIDA",
+ "baseDenom": "VIDA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "VIU (Wormhole)",
+ "denom": "inj1ccpccejcrql2878cq55nqpgsl46s26qj8hm6ws",
+ "logo": "unknown.png",
+ "symbol": "VIU",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ccpccejcrql2878cq55nqpgsl46s26qj8hm6ws",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "VIU",
+ "baseDenom": "VIU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "VOLATILITY",
+ "denom": "inj108qxa8lvywqgg0cqma0ghksfvvurgvv7wcf4qy",
+ "logo": "unknown.png",
+ "symbol": "VIX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj108qxa8lvywqgg0cqma0ghksfvvurgvv7wcf4qy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "VIX",
+ "baseDenom": "VIX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "VYKKTO",
+ "denom": "inj15ssgwg2whxt3qnthlrq288uxtda82mcy258xp9",
+ "logo": "unknown.png",
+ "symbol": "VYK",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15ssgwg2whxt3qnthlrq288uxtda82mcy258xp9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "VYK",
+ "baseDenom": "VYK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "wagmi",
+ "denom": "factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi",
+ "logo": "unknown.png",
+ "symbol": "wagmi",
+ "decimals": 9,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi",
+ "path": "",
+ "channelId": "",
+ "decimals": 9,
+ "symbol": "wagmi",
+ "baseDenom": "wagmi",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Waifu",
+ "denom": "factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifuinj",
+ "logo": "unknown.png",
+ "symbol": "WAIFU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifuinj",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WAIFU",
+ "baseDenom": "WAIFU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WaifuBot",
+ "denom": "inj1fmw3t86ncrlz35pm0q66ca5kpudlxzg55tt54f",
+ "logo": "unknown.png",
+ "symbol": "WAIFUBOT",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1fmw3t86ncrlz35pm0q66ca5kpudlxzg55tt54f",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WAIFUBOT",
+ "baseDenom": "WAIFUBOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WAITER",
+ "denom": "inj17pg77tx07drrx6tm6c72cd9sz6qxhwd4gp93ep",
+ "logo": "unknown.png",
+ "symbol": "WAIT",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17pg77tx07drrx6tm6c72cd9sz6qxhwd4gp93ep",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WAIT",
+ "baseDenom": "WAIT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "War Coin (Wormhole)",
+ "denom": "inj1nfkjyevl6z0fyc86w88xr8qq3awugw0nt2dvxq",
+ "logo": "unknown.png",
+ "symbol": "WAR",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1nfkjyevl6z0fyc86w88xr8qq3awugw0nt2dvxq",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WAR",
+ "baseDenom": "WAR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WBTC",
+ "denom": "peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png",
+ "symbol": "WBTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WBTC",
+ "baseDenom": "WBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WBTC",
+ "denom": "ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201",
+ "logo": "unknown.png",
+ "symbol": "WBTC",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WBTC",
+ "baseDenom": "WBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WDDG",
+ "denom": "factory/inj1hse75gfje5jllds5t9gnzdwyp3cdc3cvdt7gpw/wddg",
+ "logo": "unknown.png",
+ "symbol": "WDDG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hse75gfje5jllds5t9gnzdwyp3cdc3cvdt7gpw/wddg",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WDDG",
+ "baseDenom": "WDDG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WEED",
+ "denom": "factory/inj1nm8kf7pn60mww3hnqj5je28q49u4h9gnk6g344/WEED",
+ "logo": "unknown.png",
+ "symbol": "WEED",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1nm8kf7pn60mww3hnqj5je28q49u4h9gnk6g344/WEED",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WEED",
+ "baseDenom": "WEED",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WEIRD",
+ "denom": "ibc/5533268E098543E02422FF94216D50A97CD9732AEBBC436AF5F492E7930CF152",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/WEIRD.png",
+ "symbol": "WEIRD",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "5533268E098543E02422FF94216D50A97CD9732AEBBC436AF5F492E7930CF152",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WEIRD",
+ "baseDenom": "WEIRD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WEN",
+ "denom": "inj1wvd7jt2fwsdqph0culwmf3c4l4y63x4t6gu27v",
+ "logo": "unknown.png",
+ "symbol": "WEN",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wvd7jt2fwsdqph0culwmf3c4l4y63x4t6gu27v",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WEN",
+ "baseDenom": "WEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WGMI",
+ "denom": "factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/wgmi.png",
+ "symbol": "WGMI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WGMI",
+ "baseDenom": "WGMI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Whale",
+ "denom": "ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/white-whale.png",
+ "symbol": "WHALE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WHALE",
+ "baseDenom": "WHALE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "What does the fox say?",
+ "denom": "inj1x0nz4k6k9pmjq0y9uutq3kp0rj3vt37p2p39sy",
+ "logo": "unknown.png",
+ "symbol": "FOX",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1x0nz4k6k9pmjq0y9uutq3kp0rj3vt37p2p39sy",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOX",
+ "baseDenom": "FOX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "What does the fox say2?",
+ "denom": "inj15acrj6ew42jvgl5qz53q7c9g82vf3n98l84s4t",
+ "logo": "unknown.png",
+ "symbol": "FOXY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15acrj6ew42jvgl5qz53q7c9g82vf3n98l84s4t",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "FOXY",
+ "baseDenom": "FOXY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WHITE",
+ "denom": "factory/inj1hdlavqur8ayu2kcdc9qv4dvee47aere5g80vg5/WHITE",
+ "logo": "unknown.png",
+ "symbol": "WHITE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1hdlavqur8ayu2kcdc9qv4dvee47aere5g80vg5/WHITE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WHITE",
+ "baseDenom": "WHITE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Why Should I Rug?",
+ "denom": "inj1zff494cl7wf0g2fzqxdtxn5ws4mkgy5ypxwlql",
+ "logo": "unknown.png",
+ "symbol": "YSIR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zff494cl7wf0g2fzqxdtxn5ws4mkgy5ypxwlql",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YSIR",
+ "baseDenom": "YSIR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WILD GOOSE",
+ "denom": "inj1jzarcskrdgqzn9ynqn05uthv07sepnpftw8xg9",
+ "logo": "unknown.png",
+ "symbol": "WIGO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1jzarcskrdgqzn9ynqn05uthv07sepnpftw8xg9",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WIGO",
+ "baseDenom": "WIGO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WiliHall",
+ "denom": "ibc/E1BD2AE3C3879D2D79EA2F81E2A106BC8781CF449F70DDE6D97EF1A45F18C270",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/WIHA.png",
+ "symbol": "WIHA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E1BD2AE3C3879D2D79EA2F81E2A106BC8781CF449F70DDE6D97EF1A45F18C270",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WIHA",
+ "baseDenom": "WIHA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Winjective",
+ "denom": "inj1cxp5f0m79a9yexyplx550vxtnun8vjdaqf28r5",
+ "logo": "unknown.png",
+ "symbol": "WINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cxp5f0m79a9yexyplx550vxtnun8vjdaqf28r5",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WINJ",
+ "baseDenom": "WINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WINK",
+ "denom": "ibc/325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/wink.png",
+ "symbol": "WINK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WINK",
+ "baseDenom": "WINK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "winston",
+ "denom": "inj128kf4kufhd0w4zwpz4ug5x9qd7pa4hqyhm3re4",
+ "logo": "unknown.png",
+ "symbol": "winston",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj128kf4kufhd0w4zwpz4ug5x9qd7pa4hqyhm3re4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "winston",
+ "baseDenom": "winston",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WIZZ",
+ "denom": "factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/WIZZ",
+ "logo": "unknown.png",
+ "symbol": "WIZZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/WIZZ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WIZZ",
+ "baseDenom": "WIZZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "wLIBRA",
+ "denom": "ibc/FCCACE2DFDF08422A050486E09697AE34D4C620DC51CFBEF59B60AE3946CC569",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/libra.png",
+ "symbol": "wLIBRA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "FCCACE2DFDF08422A050486E09697AE34D4C620DC51CFBEF59B60AE3946CC569",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "wLIBRA",
+ "baseDenom": "wLIBRA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WNINJ",
+ "denom": "factory/inj1ducfa3t9sj5uyxs7tzqwxhp6mcfdag2jcq2km6/wnINJ",
+ "logo": "unknown.png",
+ "symbol": "WNINJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1ducfa3t9sj5uyxs7tzqwxhp6mcfdag2jcq2km6/wnINJ",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WNINJ",
+ "baseDenom": "WNINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WOJAK",
+ "denom": "factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/WOJAK",
+ "logo": "unknown.png",
+ "symbol": "WOJAK",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/WOJAK",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOJAK",
+ "baseDenom": "WOJAK",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "wojo coin",
+ "denom": "inj1n7qrdluu3gve6660dygc0m5al3awdg8gv07v62",
+ "logo": "unknown.png",
+ "symbol": "WOJO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1n7qrdluu3gve6660dygc0m5al3awdg8gv07v62",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOJO",
+ "baseDenom": "WOJO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WOKE",
+ "denom": "inj17ka378ydj6ka5q0jlqt0eqhk5tmzqynx43ue7m",
+ "logo": "unknown.png",
+ "symbol": "WOKE",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17ka378ydj6ka5q0jlqt0eqhk5tmzqynx43ue7m",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WOKE",
+ "baseDenom": "WOKE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wolf Party",
+ "denom": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/wolf",
+ "logo": "unknown.png",
+ "symbol": "WOLF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/wolf",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOLF",
+ "baseDenom": "WOLF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wondercoin (Wormhole)",
+ "denom": "inj1ppg7jkl9vaj9tafrceq6awgr4ngst3n0musuq3",
+ "logo": "unknown.png",
+ "symbol": "WONDER",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ppg7jkl9vaj9tafrceq6awgr4ngst3n0musuq3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WONDER",
+ "baseDenom": "WONDER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WOOF",
+ "denom": "factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/woof",
+ "logo": "unknown.png",
+ "symbol": "WOOF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/woof",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOOF",
+ "baseDenom": "WOOF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WOOF INU (Wormhole)",
+ "denom": "inj1h0h49fpkn5r0pjmscywws0m3e7hwskdsff4qkr",
+ "logo": "unknown.png",
+ "symbol": "WOOF",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1h0h49fpkn5r0pjmscywws0m3e7hwskdsff4qkr",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WOOF",
+ "baseDenom": "WOOF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "worm",
+ "denom": "inj1qt3c5sx94ag3rn7403qrwqtpnqthg4gr9cccrx",
+ "logo": "unknown.png",
+ "symbol": "SPOONWORMS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1qt3c5sx94ag3rn7403qrwqtpnqthg4gr9cccrx",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SPOONWORMS",
+ "baseDenom": "SPOONWORMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Worm",
+ "denom": "ibc/13C9967E4F065F5E4946302C1F94EA5F21261F3F90DAC0212C4037FA3E058297",
+ "logo": "unknown.png",
+ "symbol": "WORM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "13C9967E4F065F5E4946302C1F94EA5F21261F3F90DAC0212C4037FA3E058297",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WORM",
+ "baseDenom": "WORM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wormhole",
+ "denom": "factory/inj1xmxx0c3elm96s9s30t0k0gvr4h7l4wx9enndsl/wormhole",
+ "logo": "unknown.png",
+ "symbol": "W",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1xmxx0c3elm96s9s30t0k0gvr4h7l4wx9enndsl/wormhole",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "W",
+ "baseDenom": "W",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wormhole",
+ "denom": "ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/solana/images/w.png",
+ "symbol": "W",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "W",
+ "baseDenom": "W",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "worms",
+ "denom": "inj1klc8puvggvjwuee6yksmxx4za6xdh20pwjdnec",
+ "logo": "unknown.png",
+ "symbol": "SpoonWORMS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1klc8puvggvjwuee6yksmxx4za6xdh20pwjdnec",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "SpoonWORMS",
+ "baseDenom": "SpoonWORMS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WOSMO",
+ "denom": "ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/wosmo.png",
+ "symbol": "WOSMO",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WOSMO",
+ "baseDenom": "WOSMO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped AVAX",
+ "denom": "ibc/A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/avalanche/images/wavax.svg",
+ "symbol": "WAVAX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WAVAX",
+ "baseDenom": "WAVAX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Bitcoin",
+ "denom": "ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png",
+ "symbol": "WBTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WBTC",
+ "baseDenom": "WBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Bitcoin",
+ "denom": "ibc/A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wbtc.png",
+ "symbol": "WBTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WBTC",
+ "baseDenom": "WBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped BNB",
+ "denom": "ibc/B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/binancesmartchain/images/wbnb.png",
+ "symbol": "WBNB",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WBNB",
+ "baseDenom": "WBNB",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped BTC (Wormhole)",
+ "denom": "ibc/48E69ED9995415D94BEA06BE70E4A6C2BEA0F5E83996D1E17AF95126770E06B2",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wbtc.png",
+ "symbol": "WBTC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "48E69ED9995415D94BEA06BE70E4A6C2BEA0F5E83996D1E17AF95126770E06B2",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WBTC",
+ "baseDenom": "WBTC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Ether",
+ "denom": "ibc/65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png",
+ "symbol": "WETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WETH",
+ "baseDenom": "WETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Ethereum",
+ "denom": "peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/eth.png",
+ "symbol": "WETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WETH",
+ "baseDenom": "WETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Ether (Wormhole)",
+ "denom": "ibc/4AC4A819B0BFCB25497E83B92A7D124F24C4E8B32B0E4B45704CC4D224A085A0",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/eth-white.png",
+ "symbol": "WETH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4AC4A819B0BFCB25497E83B92A7D124F24C4E8B32B0E4B45704CC4D224A085A0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WETH",
+ "baseDenom": "WETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped FIL from Filecoin",
+ "denom": "ibc/9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/filecoin/images/wfil.png",
+ "symbol": "axlFIL",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "axlFIL",
+ "baseDenom": "axlFIL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped FTM",
+ "denom": "ibc/31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/fantom/images/ftm.png",
+ "symbol": "WFTM",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WFTM",
+ "baseDenom": "WFTM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Klaytn",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4",
+ "logo": "unknown.png",
+ "symbol": "WKLAY",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WKLAY",
+ "baseDenom": "WKLAY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Lido Staked Ether",
+ "denom": "ibc/1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wsteth.svg",
+ "symbol": "wstETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "wstETH",
+ "baseDenom": "wstETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped liquid staked Ether 2.0 (Wormhole)",
+ "denom": "ibc/AF173F64492152DA94107B8AD53906589CA7B844B650EFC2FEFED371A3FA235E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wsteth.svg",
+ "symbol": "wstETH",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AF173F64492152DA94107B8AD53906589CA7B844B650EFC2FEFED371A3FA235E",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "wstETH",
+ "baseDenom": "wstETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Matic",
+ "denom": "ibc/7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/polygon/images/wmatic.png",
+ "symbol": "WMATIC",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WMATIC",
+ "baseDenom": "WMATIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped MATIC",
+ "denom": "ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC",
+ "logo": "unknown.png",
+ "symbol": "WMATIC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WMATIC",
+ "baseDenom": "WMATIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Matic (Wormhole)",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h",
+ "logo": "https://explorer.injective.network/vendor/@injectivelabs/token-metadata/polygon.png",
+ "symbol": "WMATIC",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "WMATIC",
+ "baseDenom": "WMATIC",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Moonbeam",
+ "denom": "ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/moonbeam/images/glmr.png",
+ "symbol": "WGLMR",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "WGLMR",
+ "baseDenom": "WGLMR",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped Polkadot",
+ "denom": "ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/polkadot/images/dot.png",
+ "symbol": "DOT",
+ "decimals": 10,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4",
+ "path": "",
+ "channelId": "",
+ "decimals": 10,
+ "symbol": "DOT",
+ "baseDenom": "DOT",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped SOL",
+ "denom": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3",
+ "logo": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png",
+ "symbol": "SOL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SOL",
+ "baseDenom": "SOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Wrapped SOL (Wormhole)",
+ "denom": "ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/solana/images/sol.svg",
+ "symbol": "SOL",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "SOL",
+ "baseDenom": "SOL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "wstETH",
+ "denom": "ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wsteth.svg",
+ "symbol": "wstETH",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "wstETH",
+ "baseDenom": "wstETH",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "wtf",
+ "denom": "ibc/3C788BF2FC1269D66CA3E339634E14856A90336C5562E183EFC9B743C343BC31",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/WTF.png",
+ "symbol": "WTF",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "3C788BF2FC1269D66CA3E339634E14856A90336C5562E183EFC9B743C343BC31",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WTF",
+ "baseDenom": "WTF",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WUBBA",
+ "denom": "inj17g65zpdwql8xjju92k6fne8luqe35cjvf3j54v",
+ "logo": "unknown.png",
+ "symbol": "WUBBA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17g65zpdwql8xjju92k6fne8luqe35cjvf3j54v",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "WUBBA",
+ "baseDenom": "WUBBA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "WWE",
+ "denom": "inj1xxqe7t8gp5pexe0qtlh67x0peqs2psctn59h24",
+ "logo": "unknown.png",
+ "symbol": "JOHNXINA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1xxqe7t8gp5pexe0qtlh67x0peqs2psctn59h24",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "JOHNXINA",
+ "baseDenom": "JOHNXINA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "x69",
+ "denom": "factory/inj1dkwqv24lyt94ukg65qf4xc8tj8wsu7x9p76enk/x69",
+ "logo": "unknown.png",
+ "symbol": "x69",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1dkwqv24lyt94ukg65qf4xc8tj8wsu7x9p76enk/x69",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "x69",
+ "baseDenom": "x69",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XAEA-Xii",
+ "denom": "inj1wlw9hzsrrtnttgl229kvmu55n4z2gfjqzr6e2k",
+ "logo": "unknown.png",
+ "symbol": "XAEAXii",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1wlw9hzsrrtnttgl229kvmu55n4z2gfjqzr6e2k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XAEAXii",
+ "baseDenom": "XAEAXii",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XAI (Wormhole)",
+ "denom": "inj15a8vutf0edqcuanpwrz0rt8hfclz9w8v6maum3",
+ "logo": "unknown.png",
+ "symbol": "XAI",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj15a8vutf0edqcuanpwrz0rt8hfclz9w8v6maum3",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XAI",
+ "baseDenom": "XAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XBX",
+ "denom": "peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949",
+ "logo": "unknown.png",
+ "symbol": "XBX",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XBX",
+ "baseDenom": "XBX",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XDD",
+ "denom": "inj10e64r6exkrm52w9maa2e99nse2zh5w4zajzv7e",
+ "logo": "unknown.png",
+ "symbol": "XDD",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10e64r6exkrm52w9maa2e99nse2zh5w4zajzv7e",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XDD",
+ "baseDenom": "XDD",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XEN Crypto (Wormhole)",
+ "denom": "inj14vluf5wc7tsptnfzrjs9g579uyp9gvvlwre5e4",
+ "logo": "unknown.png",
+ "symbol": "fmXEN",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14vluf5wc7tsptnfzrjs9g579uyp9gvvlwre5e4",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "fmXEN",
+ "baseDenom": "fmXEN",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XIII",
+ "denom": "inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u",
+ "logo": "unknown.png",
+ "symbol": "XIII",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XIII",
+ "baseDenom": "XIII",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XIII",
+ "denom": "inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn",
+ "logo": "unknown.png",
+ "symbol": "XIII",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "XIII",
+ "baseDenom": "XIII",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XIIICOIN",
+ "denom": "factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII",
+ "logo": "unknown.png",
+ "symbol": "XIII",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "XIII",
+ "baseDenom": "XIII",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XmasInjective (Wormhole)",
+ "denom": "inj1yhp235hgpa0nartawhtx0q2hkhr6y8cdth4neu",
+ "logo": "unknown.png",
+ "symbol": "XMASINJ",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yhp235hgpa0nartawhtx0q2hkhr6y8cdth4neu",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XMASINJ",
+ "baseDenom": "XMASINJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XmasPump (Wormhole)",
+ "denom": "inj1yjtgs6a9nwsljwk958ypf2u7l5kqf5ld8h3tmd",
+ "logo": "unknown.png",
+ "symbol": "XMASPUMP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1yjtgs6a9nwsljwk958ypf2u7l5kqf5ld8h3tmd",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XMASPUMP",
+ "baseDenom": "XMASPUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XmasPump (Wormhole)",
+ "denom": "inj165lcmjswrkuz2m5p45wn00qz4k2zpq8r9axkp9",
+ "logo": "unknown.png",
+ "symbol": "XMASPUMP",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj165lcmjswrkuz2m5p45wn00qz4k2zpq8r9axkp9",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XMASPUMP",
+ "baseDenom": "XMASPUMP",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "xNinja.Tech Token",
+ "denom": "inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar",
+ "logo": "unknown.png",
+ "symbol": "XNJ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "XNJ",
+ "baseDenom": "XNJ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "X-ray Protocol (Wormhole)",
+ "denom": "inj1aqgkr4r272dg62l9err5v3d3hme2hpt3rzy4zt",
+ "logo": "unknown.png",
+ "symbol": "XRAY",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1aqgkr4r272dg62l9err5v3d3hme2hpt3rzy4zt",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XRAY",
+ "baseDenom": "XRAY",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "xseul",
+ "denom": "ibc/CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/xseul.png",
+ "symbol": "xSEUL",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "xSEUL",
+ "baseDenom": "xSEUL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "xTalis Token",
+ "denom": "factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/xtalis.png",
+ "symbol": "XTALIS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "XTALIS",
+ "baseDenom": "XTALIS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Xups (Wormhole)",
+ "denom": "inj1f3ppu7jgputk3qr833f4hsl8n3sm3k88zw6um0",
+ "logo": "unknown.png",
+ "symbol": "XUPS",
+ "decimals": 8,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1f3ppu7jgputk3qr833f4hsl8n3sm3k88zw6um0",
+ "path": "",
+ "channelId": "",
+ "decimals": 8,
+ "symbol": "XUPS",
+ "baseDenom": "XUPS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "XYZ",
+ "denom": "factory/inj12aljr5fewp8vlns0ny740wuwd60q89x0xsqcz3/XYZ",
+ "logo": "unknown.png",
+ "symbol": "XYZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12aljr5fewp8vlns0ny740wuwd60q89x0xsqcz3/XYZ",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "XYZ",
+ "baseDenom": "XYZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza",
+ "denom": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/Yakuza",
+ "logo": "unknown.png",
+ "symbol": "Yakuza",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/Yakuza",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Yakuza",
+ "baseDenom": "Yakuza",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza",
+ "denom": "inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq",
+ "logo": "unknown.png",
+ "symbol": "YKZ",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YKZ",
+ "baseDenom": "YKZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza",
+ "denom": "inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy",
+ "logo": "unknown.png",
+ "symbol": "YKZ",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YKZ",
+ "baseDenom": "YKZ",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YAKUZA",
+ "denom": "factory/inj1r5pgeg9xt3xr0mw5n7js8kux7hyvjlsjn6k8ce/YAKUZA",
+ "logo": "unknown.png",
+ "symbol": "YAKUZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1r5pgeg9xt3xr0mw5n7js8kux7hyvjlsjn6k8ce/YAKUZA",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YAKUZA",
+ "baseDenom": "YAKUZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza Clan (ヤクザ)",
+ "denom": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/yakuza",
+ "logo": "unknown.png",
+ "symbol": "YAKUZA",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/yakuza",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YAKUZA",
+ "baseDenom": "YAKUZA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza T3",
+ "denom": "inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s",
+ "logo": "unknown.png",
+ "symbol": "YKT3",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YKT3",
+ "baseDenom": "YKT3",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yakuza T4",
+ "denom": "inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3",
+ "logo": "unknown.png",
+ "symbol": "YKT4",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YKT4",
+ "baseDenom": "YKT4",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YAMEI",
+ "denom": "inj1042ucqa8edhazdc27xz0gsphk3cdwxefkfycsr",
+ "logo": "unknown.png",
+ "symbol": "YAMEI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1042ucqa8edhazdc27xz0gsphk3cdwxefkfycsr",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YAMEI",
+ "baseDenom": "YAMEI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yang",
+ "denom": "inj10ga6ju39mxt94suaqsfagea9t9p2ys2lawml9z",
+ "logo": "unknown.png",
+ "symbol": "Yang",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10ga6ju39mxt94suaqsfagea9t9p2ys2lawml9z",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Yang",
+ "baseDenom": "Yang",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yeager",
+ "denom": "inj1vfasyvcp7jpqfpdp980w28xemyurdnfys84xwn",
+ "logo": "unknown.png",
+ "symbol": "YEA",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vfasyvcp7jpqfpdp980w28xemyurdnfys84xwn",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YEA",
+ "baseDenom": "YEA",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YEET",
+ "denom": "inj10vhq60u08mfxuq3zr6ffpm7uelcc9ape94xq5f",
+ "logo": "unknown.png",
+ "symbol": "YEET",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj10vhq60u08mfxuq3zr6ffpm7uelcc9ape94xq5f",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YEET",
+ "baseDenom": "YEET",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YeetYak",
+ "denom": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/YeetYak",
+ "logo": "unknown.png",
+ "symbol": "YeetYak",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/YeetYak",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YeetYak",
+ "baseDenom": "YeetYak",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yieldmos Coin",
+ "denom": "ibc/26AB5A32422A0E9BC3B7FFCCF57CB30F3E8AEEA0F1705D64DCF4D8FA3DD71B9D",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ymos.png",
+ "symbol": "YMOS",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "26AB5A32422A0E9BC3B7FFCCF57CB30F3E8AEEA0F1705D64DCF4D8FA3DD71B9D",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YMOS",
+ "baseDenom": "YMOS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YKT2",
+ "denom": "inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz",
+ "logo": "unknown.png",
+ "symbol": "YKT2",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YKT2",
+ "baseDenom": "YKT2",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Ykz",
+ "denom": "inj1ur8dhklqn5ntq45jcm5vy2tzp5zfc05w2pmjam",
+ "logo": "unknown.png",
+ "symbol": "Ykz",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1ur8dhklqn5ntq45jcm5vy2tzp5zfc05w2pmjam",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "Ykz",
+ "baseDenom": "Ykz",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yogi",
+ "denom": "inj1zc3uujkm2sfwk5x8xlrudaxwsc0t903rj2jcen",
+ "logo": "unknown.png",
+ "symbol": "Yogi",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1zc3uujkm2sfwk5x8xlrudaxwsc0t903rj2jcen",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "Yogi",
+ "baseDenom": "Yogi",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YOKAI",
+ "denom": "inj1y7k7hdw0nyw05rc8qr6nmwlp2kq3vzh065frd6",
+ "logo": "unknown.png",
+ "symbol": "YOKAI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1y7k7hdw0nyw05rc8qr6nmwlp2kq3vzh065frd6",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YOKAI",
+ "baseDenom": "YOKAI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "YOSHI",
+ "denom": "inj13y8susc9dle4x664ktps3ynksxxgt6lhmckuxp",
+ "logo": "unknown.png",
+ "symbol": "YOSHI",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj13y8susc9dle4x664ktps3ynksxxgt6lhmckuxp",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "YOSHI",
+ "baseDenom": "YOSHI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Your Mom",
+ "denom": "inj17p7q5jrc6y00akcjjwu32j8kmjkaj8f0mjfn9p",
+ "logo": "unknown.png",
+ "symbol": "MOM",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj17p7q5jrc6y00akcjjwu32j8kmjkaj8f0mjfn9p",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "MOM",
+ "baseDenom": "MOM",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Yuki",
+ "denom": "factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/YUKI",
+ "logo": "unknown.png",
+ "symbol": "YUKI",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/YUKI",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "YUKI",
+ "baseDenom": "YUKI",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Zeus",
+ "denom": "inj1302yft4ppsj99qy5avv2qv6hfuvzluy4q8eq0k",
+ "logo": "unknown.png",
+ "symbol": "ZEUS",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1302yft4ppsj99qy5avv2qv6hfuvzluy4q8eq0k",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ZEUS",
+ "baseDenom": "ZEUS",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZigCoin",
+ "denom": "peggy0xb2617246d0c6c0087f18703d576831899ca94f01",
+ "logo": "https://raw.githubusercontent.com/astroport-fi/astroport-token-lists/56abf334f3c349ce85983be4f4054ee6178c8ff1/img/zignaly-icon-gradient.png",
+ "symbol": "ZIG",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "peggy0xb2617246d0c6c0087f18703d576831899ca94f01",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ZIG",
+ "baseDenom": "ZIG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZigZag",
+ "denom": "inj1d70m92ml2cjzy2lkj5t2addyz6jq4qu8gyfwn8",
+ "logo": "unknown.png",
+ "symbol": "ZIGZAG",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj1d70m92ml2cjzy2lkj5t2addyz6jq4qu8gyfwn8",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ZIGZAG",
+ "baseDenom": "ZIGZAG",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "Zilliqa",
+ "denom": "ibc/AE996D1AF771FED531442A232A4403FAC51ACFFF9B645FF4363CFCB76019F5BD",
+ "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/carbon/images/zil.png",
+ "symbol": "ZIL",
+ "decimals": 12,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "AE996D1AF771FED531442A232A4403FAC51ACFFF9B645FF4363CFCB76019F5BD",
+ "path": "",
+ "channelId": "",
+ "decimals": 12,
+ "symbol": "ZIL",
+ "baseDenom": "ZIL",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "zinjer",
+ "denom": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/zinjer",
+ "logo": "unknown.png",
+ "symbol": "zinjer",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/zinjer",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "zinjer",
+ "baseDenom": "zinjer",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZOMBIE ROAD TOKEN",
+ "denom": "factory/inj12yvvkskjdedhztpl4g2vh888z00rgl0wctarst/ZOMBIE",
+ "logo": "unknown.png",
+ "symbol": "ZOMBIE",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj12yvvkskjdedhztpl4g2vh888z00rgl0wctarst/ZOMBIE",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ZOMBIE",
+ "baseDenom": "ZOMBIE",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZOOMER",
+ "denom": "inj173zkm8yfuqagcc5m7chc4dhnq0k5hdl7vwca4n",
+ "logo": "unknown.png",
+ "symbol": "ZOOMER",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "inj173zkm8yfuqagcc5m7chc4dhnq0k5hdl7vwca4n",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ZOOMER",
+ "baseDenom": "ZOOMER",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZORO",
+ "denom": "factory/inj1z70nam7mp5qq4wd45ker230n3x4e35dkca9la4/ZORO",
+ "logo": "unknown.png",
+ "symbol": "ZORO",
+ "decimals": 18,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1z70nam7mp5qq4wd45ker230n3x4e35dkca9la4/ZORO",
+ "path": "",
+ "channelId": "",
+ "decimals": 18,
+ "symbol": "ZORO",
+ "baseDenom": "ZORO",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ },
+ {
+ "name": "ZUZUDog",
+ "denom": "factory/inj1v05uapg65p6f4307qg0hdkzssn82js6n5gc03q/ZUZU",
+ "logo": "unknown.png",
+ "symbol": "ZUZU",
+ "decimals": 6,
+ "coinGeckoId": "",
+ "tokenType": "ibc",
+ "tokenVerification": "external",
+ "ibc": {
+ "hash": "factory/inj1v05uapg65p6f4307qg0hdkzssn82js6n5gc03q/ZUZU",
+ "path": "",
+ "channelId": "",
+ "decimals": 6,
+ "symbol": "ZUZU",
+ "baseDenom": "ZUZU",
+ "isNative": false,
+ "tokenType": "ibc"
+ }
+ }
+]
\ No newline at end of file
diff --git a/packages/sdk-ui-ts/src/services/ibc/tokens.ts b/deprecated/sdk-ui-ts/src/services/ibc/tokens.ts
similarity index 70%
rename from packages/sdk-ui-ts/src/services/ibc/tokens.ts
rename to deprecated/sdk-ui-ts/src/services/ibc/tokens.ts
index 281233417..1adb4d2cf 100644
--- a/packages/sdk-ui-ts/src/services/ibc/tokens.ts
+++ b/deprecated/sdk-ui-ts/src/services/ibc/tokens.ts
@@ -17,31 +17,35 @@ type IbcTokenMetadata = {
isTrading: boolean
}
-const ibcTokenMetadataApi = new HttpRestClient('https://api.tfm.com/api/v1/')
+const ibcTokenMetadataApi = new HttpRestClient('https://api.tfm.com/api/v1/', {
+ timeout: 2000,
+})
const TOKEN_METADATA_PATH = 'ibc/chain/injective-1/tokens'
function ibcTokenMetadataToToken(
ibcTokenMetadata: IbcTokenMetadata[],
): Token[] {
- return ibcTokenMetadata.map((token) => {
+ return ibcTokenMetadata.map((metadata) => {
return {
- name: token.name || 'Unknown',
- denom: token.contractAddr || '',
- logo: token.imageUrl || 'unknown.png',
- symbol: token.symbol || 'Unknown',
- decimals: token.decimals || 18,
+ name: metadata.name || 'Unknown',
+ denom: metadata.contractAddr || '',
+ logo: metadata.imageUrl || 'unknown.png',
+ symbol: metadata.symbol || 'Unknown',
+ decimals: metadata.decimals || 18,
coinGeckoId: '',
tokenType: TokenType.Ibc,
tokenVerification: TokenVerification.External,
+
ibc: {
- hash: (token.contractAddr || '').replace('ibc/', ''),
+ hash: (metadata.contractAddr || '').replace('ibc/', ''),
path: '',
channelId: '',
- decimals: token.decimals || 18,
- symbol: token.symbol || 'Unknown',
- baseDenom: token.symbol || 'Unknown',
+ decimals: metadata.decimals || 18,
+ symbol: metadata.symbol || 'Unknown',
+ baseDenom: metadata.symbol || 'Unknown',
isNative: false,
+ tokenType: TokenType.Ibc,
},
}
})
diff --git a/packages/sdk-ui-ts/src/services/index.ts b/deprecated/sdk-ui-ts/src/services/index.ts
similarity index 74%
rename from packages/sdk-ui-ts/src/services/index.ts
rename to deprecated/sdk-ui-ts/src/services/index.ts
index d8a050ed5..af88499c0 100644
--- a/packages/sdk-ui-ts/src/services/index.ts
+++ b/deprecated/sdk-ui-ts/src/services/index.ts
@@ -1,3 +1,4 @@
export * from './web3'
export * from './gas'
export * from './nameservice'
+export * from './bonfida'
diff --git a/packages/sdk-ui-ts/src/services/nameservice/InjNameService.ts b/deprecated/sdk-ui-ts/src/services/nameservice/InjNameService.ts
similarity index 88%
rename from packages/sdk-ui-ts/src/services/nameservice/InjNameService.ts
rename to deprecated/sdk-ui-ts/src/services/nameservice/InjNameService.ts
index 5400ff62b..7ee3a82c5 100644
--- a/packages/sdk-ui-ts/src/services/nameservice/InjNameService.ts
+++ b/deprecated/sdk-ui-ts/src/services/nameservice/InjNameService.ts
@@ -3,18 +3,17 @@ import {
Network,
NetworkEndpoints,
getNetworkEndpoints,
+ getInjNameRegistryContractForNetwork,
+ getInjNameReverseResolverContractForNetwork,
} from '@injectivelabs/networks'
import {
- nameToNode,
- normalizeName,
QueryInjName,
ChainGrpcWasmApi,
QueryResolverAddress,
QueryInjectiveAddress,
InjNameServiceQueryTransformer,
- INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK,
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK,
} from '@injectivelabs/sdk-ts'
+import { nameToNode, normalizeName } from './utils'
export class InjNameService {
protected client: ChainGrpcWasmApi
@@ -24,15 +23,15 @@ export class InjNameService {
private reverseResolverAddress: string
constructor(
- network: Network = Network.Testnet,
+ network: Network = Network.MainnetSentry,
endpoints?: NetworkEndpoints,
) {
const networkEndpoints = endpoints || getNetworkEndpoints(network)
this.client = new ChainGrpcWasmApi(networkEndpoints.grpc)
- this.registryAddress = INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK[network]
+ this.registryAddress = getInjNameRegistryContractForNetwork(network)
this.reverseResolverAddress =
- INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK[network]
+ getInjNameReverseResolverContractForNetwork(network)
}
private async fetchResolverAddress(node: number[]) {
diff --git a/packages/sdk-ui-ts/src/services/nameservice/index.ts b/deprecated/sdk-ui-ts/src/services/nameservice/index.ts
similarity index 57%
rename from packages/sdk-ui-ts/src/services/nameservice/index.ts
rename to deprecated/sdk-ui-ts/src/services/nameservice/index.ts
index 5334ab634..c3af8910d 100644
--- a/packages/sdk-ui-ts/src/services/nameservice/index.ts
+++ b/deprecated/sdk-ui-ts/src/services/nameservice/index.ts
@@ -1 +1,2 @@
export * from './InjNameService'
+export * from './utils'
diff --git a/packages/sdk-ts/src/client/wasm/nameservice/ens.d.ts b/deprecated/sdk-ui-ts/src/services/nameservice/types.d.ts
similarity index 100%
rename from packages/sdk-ts/src/client/wasm/nameservice/ens.d.ts
rename to deprecated/sdk-ui-ts/src/services/nameservice/types.d.ts
diff --git a/packages/sdk-ts/src/client/wasm/nameservice/utils.ts b/deprecated/sdk-ui-ts/src/services/nameservice/utils.ts
similarity index 100%
rename from packages/sdk-ts/src/client/wasm/nameservice/utils.ts
rename to deprecated/sdk-ui-ts/src/services/nameservice/utils.ts
diff --git a/packages/sdk-ui-ts/src/services/web3/Web3Client.ts b/deprecated/sdk-ui-ts/src/services/web3/Web3Client.ts
similarity index 98%
rename from packages/sdk-ui-ts/src/services/web3/Web3Client.ts
rename to deprecated/sdk-ui-ts/src/services/web3/Web3Client.ts
index 080c46146..7af27834f 100644
--- a/packages/sdk-ui-ts/src/services/web3/Web3Client.ts
+++ b/deprecated/sdk-ui-ts/src/services/web3/Web3Client.ts
@@ -104,7 +104,7 @@ export class Web3Client {
apiKey: getKeyFromRpcUrl(rpc),
network: !isTestnetOrDevnet(network)
? AlchemyNetwork.ETH_MAINNET
- : AlchemyNetwork.ETH_GOERLI,
+ : AlchemyNetwork.ETH_SEPOLIA,
})
return this.alchemy
diff --git a/packages/sdk-ui-ts/src/services/web3/Web3Composer.ts b/deprecated/sdk-ui-ts/src/services/web3/Web3Composer.ts
similarity index 99%
rename from packages/sdk-ui-ts/src/services/web3/Web3Composer.ts
rename to deprecated/sdk-ui-ts/src/services/web3/Web3Composer.ts
index d45f2900e..c6e833a2f 100644
--- a/packages/sdk-ui-ts/src/services/web3/Web3Composer.ts
+++ b/deprecated/sdk-ui-ts/src/services/web3/Web3Composer.ts
@@ -180,7 +180,7 @@ export class Web3Composer {
network:
ethereumChainId === EthereumChainId.Mainnet
? AlchemyNetwork.ETH_MAINNET
- : AlchemyNetwork.ETH_GOERLI,
+ : AlchemyNetwork.ETH_SEPOLIA,
})
return this.alchemy
diff --git a/packages/sdk-ui-ts/src/services/web3/index.ts b/deprecated/sdk-ui-ts/src/services/web3/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/services/web3/index.ts
rename to deprecated/sdk-ui-ts/src/services/web3/index.ts
diff --git a/packages/sdk-ui-ts/src/services/web3/types.ts b/deprecated/sdk-ui-ts/src/services/web3/types.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/services/web3/types.ts
rename to deprecated/sdk-ui-ts/src/services/web3/types.ts
diff --git a/packages/sdk-ui-ts/src/services/web3/utils.ts b/deprecated/sdk-ui-ts/src/services/web3/utils.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/services/web3/utils.ts
rename to deprecated/sdk-ui-ts/src/services/web3/utils.ts
diff --git a/packages/sdk-ui-ts/src/token/TokenPrice.ts b/deprecated/sdk-ui-ts/src/token/TokenPrice.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/token/TokenPrice.ts
rename to deprecated/sdk-ui-ts/src/token/TokenPrice.ts
diff --git a/packages/sdk-ui-ts/src/token/TokenService.ts b/deprecated/sdk-ui-ts/src/token/TokenService.ts
similarity index 97%
rename from packages/sdk-ui-ts/src/token/TokenService.ts
rename to deprecated/sdk-ui-ts/src/token/TokenService.ts
index 9fcfa94c3..c735d1a3e 100644
--- a/packages/sdk-ui-ts/src/token/TokenService.ts
+++ b/deprecated/sdk-ui-ts/src/token/TokenService.ts
@@ -29,6 +29,7 @@ import {
} from '@injectivelabs/token-metadata'
import { awaitForAll } from '@injectivelabs/utils'
import { DenomClientAsync } from '../denom/DenomClientAsync'
+import { spotMarketTickerMaps } from './maps'
/**
* With the TokenService class we can convert objects
@@ -186,12 +187,7 @@ export class TokenService {
? `${baseToken.symbol.toLowerCase()}-${quoteToken.symbol.toLowerCase()}`
: market.ticker.replace('/', '-').replace(' ', '-').toLowerCase()
- return {
- ...market,
- slug,
- baseToken,
- quoteToken,
- } as UiBaseSpotMarketWithToken
+ return spotMarketTickerMaps({ market, slug, baseToken, quoteToken })
}
async toSpotMarketsWithToken(
@@ -216,7 +212,8 @@ export class TokenService {
.replaceAll(' ', '-')
.toLowerCase()
const [baseTokenSymbol] = slug.split('-')
- const baseToken = await this.denomClient.getDenomToken(baseTokenSymbol)
+ const baseToken = await this.denomClient.getTokenBySymbol(baseTokenSymbol)
+
const quoteToken = await this.denomClient.getDenomToken(market.quoteDenom)
return {
diff --git a/deprecated/sdk-ui-ts/src/token/TokenServiceStatic.ts b/deprecated/sdk-ui-ts/src/token/TokenServiceStatic.ts
new file mode 100644
index 000000000..8587b1912
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/token/TokenServiceStatic.ts
@@ -0,0 +1,326 @@
+import { Network } from '@injectivelabs/networks'
+import { ChainId, Coin } from '@injectivelabs/ts-types'
+import {
+ DenomClient,
+ ContractAccountBalance,
+ ExplorerCW20BalanceWithToken,
+} from '@injectivelabs/sdk-ts'
+import {
+ BankBalances,
+ UiBaseSpotMarket,
+ UiSubaccountBalance,
+ UiBasePerpetualMarket,
+ UiBaseSpotMarketWithToken,
+ UiBaseBinaryOptionsMarket,
+ UiBaseExpiryFuturesMarket,
+ PerpetualMarketWithTokenAndSlug,
+ BinaryOptionsMarketWithTokenAndSlug,
+ ExpiryFuturesMarketWithTokenAndSlug,
+} from '../client/types'
+import {
+ BalanceWithToken,
+ UiBridgeTransaction,
+ SubaccountBalanceWithToken,
+ UiBridgeTransactionWithToken,
+} from '../types'
+import {
+ Token,
+ TokenType,
+ getUnknownTokenWithSymbol,
+} from '@injectivelabs/token-metadata'
+import { spotMarketTickerMaps } from './maps'
+
+/**
+ * With the TokenService class we can convert objects
+ * with denoms to append token metadata information
+ */
+export class TokenServiceStatic {
+ public network: Network
+
+ public chainId: ChainId
+
+ public denomClient: DenomClient
+
+ public shouldReturnUnknown: boolean
+
+ constructor({
+ chainId,
+ network,
+ shouldReturnUnknown = false,
+ }: {
+ chainId: ChainId
+ network: Network
+ shouldReturnUnknown?: boolean
+ }) {
+ this.shouldReturnUnknown = shouldReturnUnknown
+ this.network = network
+ this.chainId = chainId
+ this.denomClient = new DenomClient(network)
+ }
+
+ toCoinsWithToken(supply: Coin[]): Token[] {
+ const tokens = supply.map((coin) => this.getDenom(coin.denom))
+
+ return tokens.filter((token) => token) as Token[]
+ }
+
+ toSupplyWithToken(supply: Coin[]): Token[] {
+ return this.toCoinsWithToken(supply)
+ }
+
+ toBalancesWithToken(
+ balances: BankBalances,
+ ibcBalances: BankBalances,
+ ): {
+ bankBalancesWithToken: BalanceWithToken[]
+ ibcBankBalancesWithToken: BalanceWithToken[]
+ } {
+ const bankBalancesWithToken = Object.keys(balances)
+ .map((denom) => ({
+ denom,
+ balance: balances[denom],
+ token: this.getDenom(denom),
+ }))
+ .filter((balance) => balance.token !== undefined) as BalanceWithToken[]
+
+ const ibcBankBalancesWithToken = Object.keys(ibcBalances)
+ .map((denom) => {
+ return {
+ denom,
+ balance: ibcBalances[denom],
+ token: this.getDenom(denom),
+ }
+ })
+ .filter((balance) => balance.token !== undefined) as BalanceWithToken[]
+
+ return {
+ bankBalancesWithToken,
+ ibcBankBalancesWithToken,
+ }
+ }
+
+ toCw20BalancesWithToken(
+ cw20Balances: ExplorerCW20BalanceWithToken[],
+ ): BalanceWithToken[] {
+ const balancesWithToken = cw20Balances.map((balance) => {
+ const token = this.getDenom(balance.contractAddress)
+
+ if (!token) {
+ return
+ }
+
+ return {
+ ...balance,
+ token,
+ denom: token.denom,
+ }
+ })
+
+ return balancesWithToken.filter((balance) => balance) as BalanceWithToken[]
+ }
+
+ toContractCw20BalancesWithToken({
+ contractAddress,
+ contractAccountsBalance,
+ }: {
+ contractAddress: string
+ contractAccountsBalance: ContractAccountBalance[]
+ }): BalanceWithToken[] {
+ const token = this.getDenom(contractAddress)
+ const defaultToken = {
+ name: contractAddress,
+ logo: '',
+ denom: contractAddress,
+ tokenType: TokenType.Cw20,
+ } as Token
+
+ // When token can't be fetched from the token-metadata, we use a default token.
+ const tokenOrDefaultToken = token || defaultToken
+
+ return contractAccountsBalance.map((balance) => {
+ return {
+ ...balance,
+ token: tokenOrDefaultToken,
+ denom: tokenOrDefaultToken.denom || contractAddress,
+ }
+ })
+ }
+
+ toSubaccountBalanceWithToken(
+ balance: UiSubaccountBalance,
+ ): SubaccountBalanceWithToken {
+ return {
+ token: this.getDenom(balance.denom) as Token,
+ denom: balance.denom,
+ availableBalance: balance.availableBalance,
+ totalBalance: balance.totalBalance,
+ }
+ }
+
+ toSubaccountBalancesWithToken(
+ balances: UiSubaccountBalance[],
+ ): SubaccountBalanceWithToken[] {
+ return balances
+ .map(this.toSubaccountBalanceWithToken.bind(this))
+ .filter(
+ (balance) => balance.token !== undefined,
+ ) as SubaccountBalanceWithToken[]
+ }
+
+ toSpotMarketWithToken(market: UiBaseSpotMarket): UiBaseSpotMarketWithToken {
+ const baseToken = this.getDenom(market.baseDenom)
+ const quoteToken = this.getDenom(market.quoteDenom)
+ const slug =
+ baseToken && quoteToken
+ ? `${baseToken.symbol.toLowerCase()}-${quoteToken.symbol.toLowerCase()}`
+ : market.ticker.replace('/', '-').replace(' ', '-').toLowerCase()
+
+ return spotMarketTickerMaps({ market, slug, baseToken, quoteToken })
+ }
+
+ toSpotMarketsWithToken(
+ markets: UiBaseSpotMarket[],
+ ): UiBaseSpotMarketWithToken[] {
+ return markets
+ .map(this.toSpotMarketWithToken.bind(this))
+ .filter(
+ (market) =>
+ market.baseToken !== undefined && market.quoteToken !== undefined,
+ ) as UiBaseSpotMarketWithToken[]
+ }
+
+ toDerivativeMarketWithToken<
+ T extends UiBasePerpetualMarket | UiBaseExpiryFuturesMarket,
+ R extends
+ | PerpetualMarketWithTokenAndSlug
+ | ExpiryFuturesMarketWithTokenAndSlug,
+ >(market: T): R {
+ const slug = market.ticker
+ .replaceAll('/', '-')
+ .replaceAll(' ', '-')
+ .toLowerCase()
+ const [baseTokenSymbol] = slug.split('-')
+ const baseToken = this.denomClient.getTokenBySymbol(baseTokenSymbol)
+ const quoteToken = this.getDenom(market.quoteDenom)
+
+ return {
+ ...market,
+ slug,
+ baseToken,
+ quoteToken,
+ } as unknown as R
+ }
+
+ toDerivativeMarketsWithToken(
+ markets: Array,
+ ): Array<
+ PerpetualMarketWithTokenAndSlug | ExpiryFuturesMarketWithTokenAndSlug
+ > {
+ return markets
+ .map(this.toDerivativeMarketWithToken.bind(this))
+ .filter(
+ (market) =>
+ market.baseToken !== undefined && market.quoteToken !== undefined,
+ ) as Array<
+ PerpetualMarketWithTokenAndSlug | ExpiryFuturesMarketWithTokenAndSlug
+ >
+ }
+
+ toBinaryOptionsMarketWithToken(
+ market: UiBaseBinaryOptionsMarket,
+ ): BinaryOptionsMarketWithTokenAndSlug {
+ const quoteToken = this.getDenom(market.quoteDenom)
+ const slug = market.ticker
+ .replaceAll('/', '-')
+ .replaceAll(' ', '-')
+ .toLowerCase()
+ const [baseTokenSymbol] = quoteToken
+ ? market.ticker.replace(quoteToken.symbol, '')
+ : market.ticker.replace('/', '')
+ const baseToken = {
+ denom: slug,
+ logo: 'injective-v3.png',
+ icon: 'injective-v3.png',
+ symbol: baseTokenSymbol,
+ name: baseTokenSymbol,
+ decimals: 18,
+ coinGeckoId: '',
+ tokenType: TokenType.Native,
+ } as Token
+
+ return {
+ ...market,
+ slug,
+ baseToken,
+ quoteToken,
+ } as BinaryOptionsMarketWithTokenAndSlug
+ }
+
+ toBinaryOptionsMarketsWithToken(
+ markets: UiBaseBinaryOptionsMarket[],
+ ): BinaryOptionsMarketWithTokenAndSlug[] {
+ return markets
+ .map(this.toBinaryOptionsMarketWithToken.bind(this))
+ .filter(
+ (market) =>
+ market.baseToken !== undefined && market.quoteToken !== undefined,
+ ) as BinaryOptionsMarketWithTokenAndSlug[]
+ }
+
+ toBridgeTransactionWithToken(
+ transaction: UiBridgeTransaction,
+ ): UiBridgeTransactionWithToken {
+ const transactionExists =
+ transaction && transaction.denom && Object.keys(transaction).length > 0
+
+ if (!transactionExists) {
+ return {} as UiBridgeTransactionWithToken
+ }
+
+ /**
+ * Transferring native INJ from IBC chain
+ * to Injective (ex: Osmosis -> Injective)
+ */
+ if (
+ transaction.denom.startsWith('transfer') &&
+ transaction.denom.endsWith('inj')
+ ) {
+ return {
+ ...transaction,
+ token: this.getDenom('INJ')!,
+ }
+ }
+
+ const tokenFromDenomAsSymbol = this.getDenom(transaction.denom) as Token
+
+ if (tokenFromDenomAsSymbol) {
+ return {
+ ...transaction,
+ token: tokenFromDenomAsSymbol,
+ }
+ }
+
+ return {
+ ...transaction,
+ token: getUnknownTokenWithSymbol(transaction.denom),
+ } as UiBridgeTransactionWithToken
+ }
+
+ toBridgeTransactionsWithToken(
+ transactions: UiBridgeTransaction[],
+ ): UiBridgeTransactionWithToken[] {
+ return transactions
+ .map(this.toBridgeTransactionWithToken.bind(this))
+ .filter(
+ (transaction) => transaction && transaction.token !== undefined,
+ ) as UiBridgeTransactionWithToken[]
+ }
+
+ private getDenom(denom: string) {
+ const token = this.denomClient.getDenomToken(denom)
+
+ return this.shouldReturnUnknown && !token
+ ? getUnknownTokenWithSymbol(denom)
+ : token
+ }
+}
diff --git a/packages/sdk-ui-ts/src/token/index.ts b/deprecated/sdk-ui-ts/src/token/index.ts
similarity index 61%
rename from packages/sdk-ui-ts/src/token/index.ts
rename to deprecated/sdk-ui-ts/src/token/index.ts
index 274d764ca..146a1419b 100644
--- a/packages/sdk-ui-ts/src/token/index.ts
+++ b/deprecated/sdk-ui-ts/src/token/index.ts
@@ -1,2 +1,3 @@
export * from './TokenPrice'
export * from './TokenService'
+export * from './TokenServiceStatic'
diff --git a/deprecated/sdk-ui-ts/src/token/maps.ts b/deprecated/sdk-ui-ts/src/token/maps.ts
new file mode 100644
index 000000000..9c6dce2b3
--- /dev/null
+++ b/deprecated/sdk-ui-ts/src/token/maps.ts
@@ -0,0 +1,168 @@
+import { UiBaseSpotMarket, UiBaseSpotMarketWithToken } from '../client'
+import type { Token } from '@injectivelabs/token-metadata'
+
+export const spotMarketTickerMaps = ({
+ market,
+ slug,
+ baseToken,
+ quoteToken,
+}: {
+ market: UiBaseSpotMarket
+ slug: string
+ baseToken?: Token
+ quoteToken?: Token
+}) => {
+ if (
+ baseToken?.symbol === 'APP' &&
+ quoteToken?.symbol === 'USDT' &&
+ market.ticker === 'APP/INJ'
+ ) {
+ return {
+ ...market,
+ slug: 'app-usdt',
+ ticker: 'APP/USDT',
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+
+ if (
+ baseToken?.symbol === 'ANDR' &&
+ quoteToken?.symbol === 'USDT' &&
+ market.ticker === 'ANDR/INJ'
+ ) {
+ return {
+ ...market,
+ slug: 'andr-usdt',
+ ticker: 'ANDR/USDT',
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+
+ const pythLegacyDenom =
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy'
+
+ if (market.baseDenom === pythLegacyDenom) {
+ {
+ return {
+ ...market,
+ slug: slug.replace('pyth', 'pythlegacy'),
+ ticker: market.ticker.replace('PYTH', 'PYTHlegacy'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const usdcLegacyDenom = 'peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
+
+ if ([market.baseDenom, market.quoteDenom].includes(usdcLegacyDenom)) {
+ {
+ return {
+ ...market,
+ slug: slug.replace('usdc', 'usdclegacy'),
+ ticker: market.ticker.replace('USDC', 'USDClegacy'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const usdcEtDenom =
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk'
+
+ if ([market.baseDenom, market.quoteDenom].includes(usdcEtDenom)) {
+ {
+ return {
+ ...market,
+ slug: slug.replace('usdc', 'usdcet'),
+ ticker: market.ticker.replace('USDC', 'USDCet'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const usdcNobleDenom =
+ 'ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E'
+
+ if ([market.baseDenom, market.quoteDenom].includes(usdcNobleDenom)) {
+ {
+ return {
+ ...market,
+ slug: slug.replace('usdcnb', 'usdc'),
+ ticker: market.ticker.replace('USDCnb', 'USDC'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const nonjaUnverifiedDenom =
+ 'factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA'
+
+ if (market.baseDenom === nonjaUnverifiedDenom) {
+ {
+ return {
+ ...market,
+ slug: slug.replace('nonja', 'nonjaunverified'),
+ ticker: market.ticker.replace('NONJA', 'NONJAunverified'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const solanaLegacyDenom =
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3'
+
+ if (market.baseDenom === solanaLegacyDenom) {
+ {
+ return {
+ ...market,
+ slug,
+ ticker: market.ticker.replace('SOL', 'SOLlegacy'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const arbLegacyDenom =
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd'
+
+ if (market.baseDenom === arbLegacyDenom) {
+ {
+ return {
+ ...market,
+ slug,
+ ticker: market.ticker.replace('ARB', 'ARBlegacy'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ const wmaticLegacyDenom =
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h'
+
+ if (market.baseDenom === wmaticLegacyDenom) {
+ {
+ return {
+ ...market,
+ slug,
+ ticker: market.ticker.replace('WMATIC', 'WMATIClegacy'),
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+ }
+ }
+
+ return {
+ ...market,
+ slug,
+ baseToken,
+ quoteToken,
+ } as UiBaseSpotMarketWithToken
+}
diff --git a/packages/sdk-ui-ts/src/types/bridge.ts b/deprecated/sdk-ui-ts/src/types/bridge.ts
similarity index 97%
rename from packages/sdk-ui-ts/src/types/bridge.ts
rename to deprecated/sdk-ui-ts/src/types/bridge.ts
index 5fb1f5a6e..3328118b5 100644
--- a/packages/sdk-ui-ts/src/types/bridge.ts
+++ b/deprecated/sdk-ui-ts/src/types/bridge.ts
@@ -35,6 +35,8 @@ export enum BridgingNetwork {
Celestia = 'celestia',
Migaloo = 'migaloo',
Kujira = 'kujira',
+ Andromeda = 'andromeda',
+ Neutron = 'neutron',
}
export const MintScanExplorerUrl = {
@@ -52,6 +54,7 @@ export const MintScanExplorerUrl = {
[BridgingNetwork.Kava]: 'kava',
[BridgingNetwork.Noble]: 'noble',
[BridgingNetwork.Celestia]: 'celestia',
+ [BridgingNetwork.Neutron]: 'neutron',
} as Record
export enum BridgeTransactionState {
@@ -88,7 +91,6 @@ export interface NetworkMeta {
export interface NetworkConfig {
network: BridgingNetwork
denoms: string[]
- symbols: string[]
}
export interface UiBridgeTransaction {
diff --git a/packages/sdk-ui-ts/src/types/cosmos.ts b/deprecated/sdk-ui-ts/src/types/cosmos.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/types/cosmos.ts
rename to deprecated/sdk-ui-ts/src/types/cosmos.ts
diff --git a/packages/sdk-ui-ts/src/types/explorer.ts b/deprecated/sdk-ui-ts/src/types/explorer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/types/explorer.ts
rename to deprecated/sdk-ui-ts/src/types/explorer.ts
diff --git a/packages/sdk-ui-ts/src/types/index.ts b/deprecated/sdk-ui-ts/src/types/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/types/index.ts
rename to deprecated/sdk-ui-ts/src/types/index.ts
diff --git a/packages/sdk-ui-ts/src/types/token.ts b/deprecated/sdk-ui-ts/src/types/token.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/types/token.ts
rename to deprecated/sdk-ui-ts/src/types/token.ts
diff --git a/packages/sdk-ui-ts/src/utils/alchemy.ts b/deprecated/sdk-ui-ts/src/utils/alchemy.ts
similarity index 92%
rename from packages/sdk-ui-ts/src/utils/alchemy.ts
rename to deprecated/sdk-ui-ts/src/utils/alchemy.ts
index d96b5234d..dcf5b491a 100644
--- a/packages/sdk-ui-ts/src/utils/alchemy.ts
+++ b/deprecated/sdk-ui-ts/src/utils/alchemy.ts
@@ -3,7 +3,7 @@ import { TokenType, TokenVerification } from '@injectivelabs/token-metadata'
import { TokenMetadataResponse } from 'alchemy-sdk'
export const getKeyFromRpcUrl = (rpcUrl: string) => {
- if (!rpcUrl.includes('alchemyapi.io')) {
+ if (!rpcUrl.includes('alchemyapi.io') && !rpcUrl.includes('alchemy.com')) {
return rpcUrl
}
@@ -30,7 +30,6 @@ export const getTokenFromAlchemyTokenMetaResponse = (
decimals: response.decimals || 18,
address: denom.replace('peggy', ''),
symbol: response.symbol || response.name || 'Unknown',
- tokenType: TokenType.Erc20,
},
} as Token
}
diff --git a/packages/sdk-ui-ts/src/utils/bridge.ts b/deprecated/sdk-ui-ts/src/utils/bridge.ts
similarity index 75%
rename from packages/sdk-ui-ts/src/utils/bridge.ts
rename to deprecated/sdk-ui-ts/src/utils/bridge.ts
index d2b9ac8b8..436889dc8 100644
--- a/packages/sdk-ui-ts/src/utils/bridge.ts
+++ b/deprecated/sdk-ui-ts/src/utils/bridge.ts
@@ -1,13 +1,13 @@
import {
NetworkConfig,
- BridgeTransactionState,
BridgingNetwork,
+ BridgeTransactionState,
} from './../types/bridge'
import {
- isTestnet,
- isMainnet,
Network,
isDevnet,
+ isTestnet,
+ isMainnet,
} from '@injectivelabs/networks'
import { UiBridgeTransaction, MintScanExplorerUrl } from './../types/bridge'
import {
@@ -18,7 +18,13 @@ import {
PEGGY_TESTNET_GRAPH_URL,
} from '../constants'
import { CosmosChainId, TestnetCosmosChainId } from '@injectivelabs/ts-types'
-import { Token, tokenMetaUtils, TokenType } from '@injectivelabs/token-metadata'
+import {
+ Token,
+ TokenType,
+ TokenMetaBase,
+ tokenMetaUtils,
+ getTokenFromMeta,
+} from '@injectivelabs/token-metadata'
import { TokenMetadataResponse } from 'alchemy-sdk'
export const InProgressStates = [
@@ -53,6 +59,8 @@ export const KeplrNetworks = [
BridgingNetwork.Celestia,
BridgingNetwork.Migaloo,
BridgingNetwork.Kujira,
+ BridgingNetwork.Andromeda,
+ BridgingNetwork.Neutron,
]
export const LeapNetworks = [
@@ -69,6 +77,7 @@ export const LeapNetworks = [
BridgingNetwork.Celestia,
BridgingNetwork.Migaloo,
BridgingNetwork.Kujira,
+ BridgingNetwork.Neutron,
]
export const CosmostationNetworks = [
@@ -88,6 +97,7 @@ export const CosmostationNetworks = [
BridgingNetwork.Noble,
BridgingNetwork.Celestia,
BridgingNetwork.Migaloo,
+ BridgingNetwork.Neutron,
]
export const CosmosNetworks = [
@@ -109,6 +119,8 @@ export const CosmosNetworks = [
BridgingNetwork.Celestia,
BridgingNetwork.Migaloo,
BridgingNetwork.Kujira,
+ BridgingNetwork.Andromeda,
+ BridgingNetwork.Neutron,
]
export const EvmWormholeNetworks = [
@@ -132,13 +144,12 @@ export const tokenSelectorDisabledNetworks = [
BridgingNetwork.Migaloo,
]
-export const tokenDenomsPerNetwork = [
+export const tokenDenomsPerNetwork: NetworkConfig[] = [
{
network: BridgingNetwork.CosmosHub,
denoms: [
'ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
],
- symbols: ['atom'],
},
{
network: BridgingNetwork.Osmosis,
@@ -146,14 +157,12 @@ export const tokenDenomsPerNetwork = [
'inj',
'ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333',
],
- symbols: ['osmo', 'inj'],
},
{
network: BridgingNetwork.Chihuahua,
denoms: [
'ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB',
],
- symbols: ['huahua'],
},
{
network: BridgingNetwork.Axelar,
@@ -161,14 +170,12 @@ export const tokenDenomsPerNetwork = [
'dot-planck',
'ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65',
],
- symbols: ['axl', 'dot'],
},
{
network: BridgingNetwork.Juno,
denoms: [
'ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211',
],
- symbols: ['juno'],
},
{
network: BridgingNetwork.Terra,
@@ -176,7 +183,6 @@ export const tokenDenomsPerNetwork = [
'ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395',
'ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C',
],
- symbols: ['luna', 'ust'],
},
{
network: BridgingNetwork.Evmos,
@@ -184,7 +190,6 @@ export const tokenDenomsPerNetwork = [
'ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821',
'ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4',
],
- symbols: ['evmos', 'neok'],
},
{
network: BridgingNetwork.Persistence,
@@ -192,19 +197,12 @@ export const tokenDenomsPerNetwork = [
'inj',
'ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB',
],
- symbols: ['xprt'],
- },
- {
- network: BridgingNetwork.Moonbeam,
- denoms: ['dot-planck'],
- symbols: ['dot'],
},
{
network: BridgingNetwork.Secret,
denoms: [
'ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A',
],
- symbols: ['scrt'],
},
{
network: BridgingNetwork.Stride,
@@ -213,7 +211,6 @@ export const tokenDenomsPerNetwork = [
'ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25',
'ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93',
],
- symbols: ['strd', 'inj', 'stinj'],
},
{
network: BridgingNetwork.Crescent,
@@ -221,21 +218,18 @@ export const tokenDenomsPerNetwork = [
'inj',
'ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6',
],
- symbols: ['cre', 'inj'],
},
{
network: BridgingNetwork.Sommelier,
denoms: [
'ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B',
],
- symbols: ['somm'],
},
{
network: BridgingNetwork.Canto,
denoms: [
'ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8',
],
- symbols: ['canto'],
},
{
network: BridgingNetwork.Kava,
@@ -243,41 +237,49 @@ export const tokenDenomsPerNetwork = [
'ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205',
'ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB',
],
- symbols: ['kava', 'usdtkv'],
},
{
network: BridgingNetwork.Oraichain,
denoms: [
'ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565',
],
- symbols: ['orai'],
},
{
network: BridgingNetwork.CosmosHubTestnet,
denoms: [
'ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
],
- symbols: ['uphoton'],
},
{
network: BridgingNetwork.Solana,
- denoms: [],
- symbols: ['SOL', 'PYTH'],
+ denoms: [
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3',
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy',
+ 'ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97',
+ 'ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6',
+ ],
},
{
network: BridgingNetwork.EthereumWh,
- denoms: [],
- symbols: ['USDCet', 'CHZ', 'LDO', 'BRZ', 'ALPHA'],
+ denoms: [
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk',
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh',
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy',
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk',
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u',
+ ],
},
{
network: BridgingNetwork.Arbitrum,
- denoms: [],
- symbols: ['ARB'],
+ denoms: [
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd',
+ ],
},
{
network: BridgingNetwork.Polygon,
- denoms: [],
- symbols: ['WMATIC'],
+ denoms: [
+ 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h',
+ ],
},
{
@@ -285,14 +287,12 @@ export const tokenDenomsPerNetwork = [
denoms: [
'ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E',
],
- symbols: ['usdcnb'],
},
{
network: BridgingNetwork.Celestia,
denoms: [
'ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4',
],
- symbols: ['utia'],
},
{
network: BridgingNetwork.Migaloo,
@@ -300,211 +300,259 @@ export const tokenDenomsPerNetwork = [
'inj',
'ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445',
],
- symbols: ['inj', 'uwhale'],
},
{
network: BridgingNetwork.Kujira,
denoms: [
'ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204',
],
- symbols: ['ukuji'],
},
-] as NetworkConfig[]
+ {
+ network: BridgingNetwork.Andromeda,
+ denoms: [
+ 'ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E',
+ ],
+ },
+ {
+ network: BridgingNetwork.Neutron,
+ denoms: [
+ 'ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D',
+ ],
+ },
+]
export const cosmosChainTokenMetaMap = {
[CosmosChainId.Cosmoshub]: {
- ...tokenMetaUtils.getMetaBySymbol('ATOM'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('ATOM') as TokenMetaBase,
+ ),
denom:
'ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
},
[CosmosChainId.Osmosis]: [
{
- ...tokenMetaUtils.getMetaBySymbol('OSMO'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('OSMO') as TokenMetaBase,
+ ),
denom:
'ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333',
},
{
- ...tokenMetaUtils.getMetaBySymbol('INJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('INJ') as TokenMetaBase,
+ ),
denom: 'inj',
},
],
[CosmosChainId.Terra]: [
{
- ...tokenMetaUtils.getMetaBySymbol('LUNA'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('LUNA') as TokenMetaBase,
+ ),
denom:
'ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395',
},
{
- ...tokenMetaUtils.getMetaBySymbol('UST'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('UST') as TokenMetaBase,
+ ),
denom:
'ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C',
},
],
[CosmosChainId.Injective]: {
- ...tokenMetaUtils.getMetaBySymbol('INJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(tokenMetaUtils.getMetaBySymbol('INJ') as TokenMetaBase),
denom: 'inj',
},
[CosmosChainId.Chihuahua]: {
- ...tokenMetaUtils.getMetaBySymbol('HUAHUA'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('HUAHUA') as TokenMetaBase,
+ ),
denom:
'ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB',
},
[CosmosChainId.Juno]: {
- ...tokenMetaUtils.getMetaBySymbol('JUNO'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('JUNO') as TokenMetaBase,
+ ),
denom:
'ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211',
},
[CosmosChainId.Axelar]: [
{
- ...tokenMetaUtils.getMetaBySymbol('AXL'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('AXL') as TokenMetaBase,
+ ),
denom:
'ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65',
},
{
- ...tokenMetaUtils.getMetaBySymbol('DOT'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('DOT') as TokenMetaBase,
+ ),
denom: 'dot-planck',
},
],
[CosmosChainId.Evmos]: [
{
- ...tokenMetaUtils.getMetaBySymbol('EVMOS'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('EVMOS') as TokenMetaBase,
+ ),
denom:
'ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821',
},
{
- ...tokenMetaUtils.getMetaBySymbol('NEOK'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('NEOK') as TokenMetaBase,
+ ),
denom:
'ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4',
},
],
[CosmosChainId.Persistence]: {
- ...tokenMetaUtils.getMetaBySymbol('XPRT'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('XPRT') as TokenMetaBase,
+ ),
denom:
'ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB',
},
[CosmosChainId.Secret]: {
- ...tokenMetaUtils.getMetaBySymbol('SCRT'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('SCRT') as TokenMetaBase,
+ ),
denom:
'ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A',
},
[CosmosChainId.Stride]: [
{
- ...tokenMetaUtils.getMetaBySymbol('STRD'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('STRD') as TokenMetaBase,
+ ),
denom:
'ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25',
},
{
- ...tokenMetaUtils.getMetaBySymbol('INJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('INJ') as TokenMetaBase,
+ ),
denom: 'inj',
},
{
- ...tokenMetaUtils.getMetaBySymbol('STINJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('STINJ') as TokenMetaBase,
+ ),
denom:
'ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93',
},
],
[CosmosChainId.Crescent]: [
{
- ...tokenMetaUtils.getMetaBySymbol('CRE'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('CRE') as TokenMetaBase,
+ ),
denom:
'ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6',
},
{
- ...tokenMetaUtils.getMetaBySymbol('INJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('INJ') as TokenMetaBase,
+ ),
denom: 'inj',
},
],
[CosmosChainId.Sommelier]: {
- ...tokenMetaUtils.getMetaBySymbol('SOMM'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('SOMM') as TokenMetaBase,
+ ),
denom:
'ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B',
},
[CosmosChainId.Canto]: {
- ...tokenMetaUtils.getMetaBySymbol('CANTO'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('CANTO') as TokenMetaBase,
+ ),
denom:
'ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8',
},
[CosmosChainId.Kava]: [
{
- ...tokenMetaUtils.getMetaBySymbol('KAVA'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('KAVA') as TokenMetaBase,
+ ),
denom:
'ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205',
},
{
- ...tokenMetaUtils.getMetaBySymbol('USDTkv'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('USDTkv') as TokenMetaBase,
+ ),
denom:
'ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB',
},
],
[CosmosChainId.Oraichain]: [
{
- ...tokenMetaUtils.getMetaBySymbol('ORAI'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('ORAI') as TokenMetaBase,
+ ),
denom:
'ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565',
},
],
[TestnetCosmosChainId.Cosmoshub]: {
- ...tokenMetaUtils.getMetaBySymbol('ATOM'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('ATOM') as TokenMetaBase,
+ ),
// TODO: change when IBC connection established
denom:
'ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB',
},
[TestnetCosmosChainId.Injective]: {
- ...tokenMetaUtils.getMetaBySymbol('INJ'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(tokenMetaUtils.getMetaBySymbol('INJ') as TokenMetaBase),
denom: 'inj',
},
[CosmosChainId.Noble]: {
- ...tokenMetaUtils.getMetaBySymbol('USDCnb'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('USDC') as TokenMetaBase,
+ ),
denom:
'ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E',
},
[CosmosChainId.Celestia]: {
- ...tokenMetaUtils.getMetaBySymbol('TIA'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(tokenMetaUtils.getMetaBySymbol('TIA') as TokenMetaBase),
denom:
'ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4',
},
[CosmosChainId.Migaloo]: [
{
- ...tokenMetaUtils.getMetaBySymbol('WHALE'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('WHALE') as TokenMetaBase,
+ ),
denom:
'ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445',
},
],
[CosmosChainId.Kujira]: {
- ...tokenMetaUtils.getMetaBySymbol('KUJI'),
- tokenType: TokenType.Ibc,
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('KUJI') as TokenMetaBase,
+ ),
denom:
'ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204',
},
+ [CosmosChainId.Andromeda]: {
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('ANDR') as TokenMetaBase,
+ ),
+ denom:
+ 'ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E',
+ },
+ [CosmosChainId.Neutron]: {
+ ...getTokenFromMeta(
+ tokenMetaUtils.getMetaBySymbol('NBZ') as TokenMetaBase,
+ ),
+ denom:
+ 'ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D',
+ },
} as Record
export const ibcHashToNativeInjPerNetwork = {
@@ -550,11 +598,15 @@ export const getCosmosExplorerUrl = (
network: Network,
): string => {
if (bridgingNetwork === BridgingNetwork.Oraichain) {
- return 'https://scan.orai.io/'
+ return 'https://scan.orai.io'
}
if (bridgingNetwork === BridgingNetwork.Migaloo) {
- return 'https://migaloo.explorers.guru/'
+ return 'https://migaloo.explorers.guru'
+ }
+
+ if (bridgingNetwork === BridgingNetwork.Andromeda) {
+ return 'https://ping.wildsage.io/andromeda'
}
const mintScanNetworkUrl = MintScanExplorerUrl[bridgingNetwork]
@@ -572,11 +624,11 @@ export const getCosmosExplorerUrl = (
export const getEthereumExplorerUrl = (network: Network): string => {
if (isDevnet(network)) {
- return 'https://goerli.etherscan.io'
+ return 'https://sepolia.etherscan.io'
}
if (isTestnet(network)) {
- return 'https://goerli.etherscan.io'
+ return 'https://sepolia.etherscan.io'
}
return 'https://etherscan.io'
@@ -584,11 +636,11 @@ export const getEthereumExplorerUrl = (network: Network): string => {
export const getArbitrumExplorerUrl = (network: Network): string => {
if (isDevnet(network)) {
- return 'https://goerli.arbiscan.io'
+ return 'https://sepolia.arbiscan.io'
}
if (isTestnet(network)) {
- return 'https://goerli.arbiscan.io'
+ return 'https://sepolia.arbiscan.io'
}
return 'https://arbiscan.io'
@@ -739,6 +791,14 @@ export const getNetworkFromAddress = (address: string): BridgingNetwork => {
return BridgingNetwork.Kujira
}
+ if (address.startsWith('andr')) {
+ return BridgingNetwork.Andromeda
+ }
+
+ if (address.startsWith('neutron')) {
+ return BridgingNetwork.Neutron
+ }
+
return BridgingNetwork.Injective
}
@@ -802,6 +862,8 @@ export const getGasPriceForChainId = (chainId: CosmosChainId) => {
return 0.01
case CosmosChainId.Kava:
return 0.01
+ case CosmosChainId.Neutron:
+ return 0.01
case CosmosChainId.Injective:
return 0.01
default:
diff --git a/packages/sdk-ui-ts/src/utils/cw20.ts b/deprecated/sdk-ui-ts/src/utils/cw20.ts
similarity index 96%
rename from packages/sdk-ui-ts/src/utils/cw20.ts
rename to deprecated/sdk-ui-ts/src/utils/cw20.ts
index 9448a61dc..70f6afb5a 100644
--- a/packages/sdk-ui-ts/src/utils/cw20.ts
+++ b/deprecated/sdk-ui-ts/src/utils/cw20.ts
@@ -28,7 +28,6 @@ export const getTokenFromContractStateResponse = (
decimals: tokenInfo.decimals || 18,
address: contractAddress,
symbol: tokenInfo.symbol || tokenInfo.name || 'Unknown',
- tokenType: TokenType.Cw20,
},
} as Token
}
@@ -61,7 +60,6 @@ export const getTokenFromCw20ContractInfo = (
response.cw20_metadata.token_info.symbol ||
response.cw20_metadata.token_info.name ||
'Unknown',
- tokenType: TokenType.Cw20,
},
} as Token
}
diff --git a/packages/sdk-ui-ts/src/utils/derivatives.ts b/deprecated/sdk-ui-ts/src/utils/derivatives.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/derivatives.ts
rename to deprecated/sdk-ui-ts/src/utils/derivatives.ts
diff --git a/packages/sdk-ui-ts/src/utils/exchange.ts b/deprecated/sdk-ui-ts/src/utils/exchange.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/exchange.ts
rename to deprecated/sdk-ui-ts/src/utils/exchange.ts
diff --git a/packages/sdk-ui-ts/src/utils/explorer.ts b/deprecated/sdk-ui-ts/src/utils/explorer.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/explorer.ts
rename to deprecated/sdk-ui-ts/src/utils/explorer.ts
diff --git a/packages/sdk-ui-ts/src/utils/factory.ts b/deprecated/sdk-ui-ts/src/utils/factory.ts
similarity index 76%
rename from packages/sdk-ui-ts/src/utils/factory.ts
rename to deprecated/sdk-ui-ts/src/utils/factory.ts
index f357484bb..29bab3d2d 100644
--- a/packages/sdk-ui-ts/src/utils/factory.ts
+++ b/deprecated/sdk-ui-ts/src/utils/factory.ts
@@ -2,13 +2,13 @@ import { Metadata } from '@injectivelabs/sdk-ts'
import {
TokenType,
TokenVerification,
- type FactoryToken,
+ type TokenFactoryToken,
} from '@injectivelabs/token-metadata'
export const getTokenFromDenomsMetadata = (
denom: string,
response: Metadata,
-): FactoryToken => {
+): TokenFactoryToken => {
const [denomUnit] = [...response.denomUnits].sort(
(u1, u2) => u2.exponent - u1.exponent,
)
@@ -24,5 +24,11 @@ export const getTokenFromDenomsMetadata = (
coinGeckoId: '',
tokenType: TokenType.TokenFactory,
tokenVerification: TokenVerification.Internal,
- } as FactoryToken
+
+ tokenFactory: {
+ creator: '',
+ decimals: denomUnit.exponent || 0,
+ symbol: response.symbol || response.name || 'Unknown',
+ }
+ } as TokenFactoryToken
}
diff --git a/packages/sdk-ui-ts/src/utils/helpers.ts b/deprecated/sdk-ui-ts/src/utils/helpers.ts
similarity index 92%
rename from packages/sdk-ui-ts/src/utils/helpers.ts
rename to deprecated/sdk-ui-ts/src/utils/helpers.ts
index 87509dad1..64b95f175 100644
--- a/packages/sdk-ui-ts/src/utils/helpers.ts
+++ b/deprecated/sdk-ui-ts/src/utils/helpers.ts
@@ -13,6 +13,11 @@ export const getTokenLogoWithVendorPathPrefix = (image: string) => {
return image
}
+ // not supported yet
+ if (image.includes('ipfs')) {
+ return path.join('/', 'vendor', '@injectivelabs', 'token-metadata', 'unknown.png')
+ }
+
if (image.includes('bridgingNetworks')) {
return image
}
diff --git a/packages/sdk-ui-ts/src/utils/index.ts b/deprecated/sdk-ui-ts/src/utils/index.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/index.ts
rename to deprecated/sdk-ui-ts/src/utils/index.ts
diff --git a/packages/sdk-ui-ts/src/utils/mappings.spec.ts b/deprecated/sdk-ui-ts/src/utils/mappings.spec.ts
similarity index 92%
rename from packages/sdk-ui-ts/src/utils/mappings.spec.ts
rename to deprecated/sdk-ui-ts/src/utils/mappings.spec.ts
index f8e066c8f..f6542a6a6 100644
--- a/packages/sdk-ui-ts/src/utils/mappings.spec.ts
+++ b/deprecated/sdk-ui-ts/src/utils/mappings.spec.ts
@@ -7,7 +7,7 @@ describe('validator logos helper function', () => {
const validatorLogo = getValidatorLogoWithVendorPathPrefix(address)
expect(validatorLogo).toMatch(
- '/vendor/@injectivelabs/sdk-ui-ts/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.webp',
+ '/vendor/@injectivelabs/sdk-ui-ts/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.jpg',
)
})
@@ -25,7 +25,7 @@ describe('validator logos helper function', () => {
const validatorLogo = getValidatorLogoWithVendorPathPrefix(address)
expect(validatorLogo).toMatch(
- '/vendor/@injectivelabs/sdk-ui-ts/injective.webp',
+ '/vendor/@injectivelabs/sdk-ui-ts/unknown.png',
)
})
})
diff --git a/packages/sdk-ui-ts/src/utils/mappings.ts b/deprecated/sdk-ui-ts/src/utils/mappings.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/mappings.ts
rename to deprecated/sdk-ui-ts/src/utils/mappings.ts
diff --git a/packages/sdk-ui-ts/src/utils/numbers.ts b/deprecated/sdk-ui-ts/src/utils/numbers.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/numbers.ts
rename to deprecated/sdk-ui-ts/src/utils/numbers.ts
diff --git a/packages/sdk-ui-ts/src/utils/spot.ts b/deprecated/sdk-ui-ts/src/utils/spot.ts
similarity index 100%
rename from packages/sdk-ui-ts/src/utils/spot.ts
rename to deprecated/sdk-ui-ts/src/utils/spot.ts
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injective.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injective.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injective.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injective.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10er2rpmfux7dwyrqfgre90e4dqmsj5n06twg4l.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10gt552f5sw80lmd9a43rkvvgf6wj0nk3r7cwzf.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10gt552f5sw80lmd9a43rkvvgf6wj0nk3r7cwzf.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10gt552f5sw80lmd9a43rkvvgf6wj0nk3r7cwzf.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10gt552f5sw80lmd9a43rkvvgf6wj0nk3r7cwzf.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10pe4avat38u38yzj5hvnw235uecfff6c73s8fn.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10pe4avat38u38yzj5hvnw235uecfff6c73s8fn.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10pe4avat38u38yzj5hvnw235uecfff6c73s8fn.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10pe4avat38u38yzj5hvnw235uecfff6c73s8fn.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10xhy8xurfwts9ckjkq0ga92mrjz9txyygymqzp.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper10zxm0rklrnurd999xgr4ss8v2q9qsjlfhhk9mk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125fkz3mq6qxxpkmphdl3ep92t0d3y9695mhclt.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper125j4jg5d5hs3xvgfn0me69kgdlv9xe9zknvcz4.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.jpeg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.jpeg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.jpeg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.jpeg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12s9d7l53ef2c8avrn7pgd6dfeeg2yzel58ztfx.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper12t9868urj32x458n9cjc09zpdxmc4svt3945kk.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12t9868urj32x458n9cjc09zpdxmc4svt3945kk.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper12t9868urj32x458n9cjc09zpdxmc4svt3945kk.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper12t9868urj32x458n9cjc09zpdxmc4svt3945kk.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper134dct56cq5v7uerxcy2cn4m06mqf4dxrlgpp24.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper13aanu4acwtjh68a6ec5gm200nx6zqcyqz8r0jq.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13aanu4acwtjh68a6ec5gm200nx6zqcyqz8r0jq.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper13aanu4acwtjh68a6ec5gm200nx6zqcyqz8r0jq.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13aanu4acwtjh68a6ec5gm200nx6zqcyqz8r0jq.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13c0m2t3hmaqp43rw0t97utvy5dc7cktes0swce.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq.jpg
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13p7suhhxrd6rrj6kka39sadklartjpekm9hes8.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13p7suhhxrd6rrj6kka39sadklartjpekm9hes8.jpg
new file mode 100644
index 000000000..be5e4bac1
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper13p7suhhxrd6rrj6kka39sadklartjpekm9hes8.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1444m5prz36s4t4gr7kca5lgc682h94yutqrgpg.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper14ncezrfu3hxauehjntf6pdpme7l5etqsep2qp6.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14ncezrfu3hxauehjntf6pdpme7l5etqsep2qp6.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper14ncezrfu3hxauehjntf6pdpme7l5etqsep2qp6.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14ncezrfu3hxauehjntf6pdpme7l5etqsep2qp6.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper14w4qu60azpz5zkw5yrcvmaxqh6xg5sny7qm6rm.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14w4qu60azpz5zkw5yrcvmaxqh6xg5sny7qm6rm.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper14w4qu60azpz5zkw5yrcvmaxqh6xg5sny7qm6rm.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14w4qu60azpz5zkw5yrcvmaxqh6xg5sny7qm6rm.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper14yeq3lkajldaggj28hmq8xng9xux7x5g46hezv.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg
new file mode 100644
index 000000000..93a530cf2
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper15vlkdnu2c0k0gaclgycnyjm7c5f3hsde034f5p.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper162w4wq4wenfznjkd62kesq9vsmdla3f22s629d.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper162w4wq4wenfznjkd62kesq9vsmdla3f22s629d.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper162w4wq4wenfznjkd62kesq9vsmdla3f22s629d.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper162w4wq4wenfznjkd62kesq9vsmdla3f22s629d.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16eg6wf2k6v0lzwu2vsrhxhe0tcycgr7jm98nyz.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gdnrnl224ylje5z9vd0vn0msym7p58f00qauj.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper16gquuvkj7yreyvmmmha4uke9cjtd6t3nh5r76d.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper175x4lvxpwmmwt5m76yqz0ace8dwkjyjjj7sxdj.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper175x4lvxpwmmwt5m76yqz0ace8dwkjyjjj7sxdj.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper175x4lvxpwmmwt5m76yqz0ace8dwkjyjjj7sxdj.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper175x4lvxpwmmwt5m76yqz0ace8dwkjyjjj7sxdj.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper17y9pmvrwcmytrvsurduj7ts0s8unzr55a6ffa3.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper17y9pmvrwcmytrvsurduj7ts0s8unzr55a6ffa3.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper17y9pmvrwcmytrvsurduj7ts0s8unzr55a6ffa3.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper17y9pmvrwcmytrvsurduj7ts0s8unzr55a6ffa3.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper185jhauhyttg2d5j535hksj234dn0hg0zy6q5el.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper185jhauhyttg2d5j535hksj234dn0hg0zy6q5el.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper185jhauhyttg2d5j535hksj234dn0hg0zy6q5el.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper185jhauhyttg2d5j535hksj234dn0hg0zy6q5el.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18cyc7wxru3g9de3emwy9pdh5x0vevxp3p2623y.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18cyc7wxru3g9de3emwy9pdh5x0vevxp3p2623y.jpg
new file mode 100644
index 000000000..be5e4bac1
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18cyc7wxru3g9de3emwy9pdh5x0vevxp3p2623y.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18kcu6w92u4mq4dsudpcrufdfmtgu7q2r753t72.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper18lftv08vsplm39ht2xysp7wsauch03nwfqckxh.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper195htudzwkmgn64wvyp7e474ul9t62ws9sr3rhn.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper195htudzwkmgn64wvyp7e474ul9t62ws9sr3rhn.jpg
new file mode 100644
index 000000000..f5e99da16
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper195htudzwkmgn64wvyp7e474ul9t62ws9sr3rhn.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper197m0n2yxtfhz0uv4ehhddqrsjeg6xsp250nh0y.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper19a77dzm2lrxt2gehqca3nyzq077kq7qsgvmrp4.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1acgud5qpn3frwzjrayqcdsdr9vkl3p6hrz34ts.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1acgud5qpn3frwzjrayqcdsdr9vkl3p6hrz34ts.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1acgud5qpn3frwzjrayqcdsdr9vkl3p6hrz34ts.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1acgud5qpn3frwzjrayqcdsdr9vkl3p6hrz34ts.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1agu7gu9ay39jkaccsfnt0ykjce6daycjuzyg2a.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1agu7gu9ay39jkaccsfnt0ykjce6daycjuzyg2a.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1agu7gu9ay39jkaccsfnt0ykjce6daycjuzyg2a.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1agu7gu9ay39jkaccsfnt0ykjce6daycjuzyg2a.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1aqhzfz4ssqj5h95ntwgfhtsd65knp0e7tltszk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1aqhzfz4ssqj5h95ntwgfhtsd65knp0e7tltszk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1aqhzfz4ssqj5h95ntwgfhtsd65knp0e7tltszk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1aqhzfz4ssqj5h95ntwgfhtsd65knp0e7tltszk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1axd525a65ly3p878g3hcqw7ykhas0rmk8ws3na.jpeg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1axd525a65ly3p878g3hcqw7ykhas0rmk8ws3na.jpeg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1axd525a65ly3p878g3hcqw7ykhas0rmk8ws3na.jpeg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1axd525a65ly3p878g3hcqw7ykhas0rmk8ws3na.jpeg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1c0g0fxq5mqgd8v6fc5z4kdtnqnae9trfreeah7.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cutynk8xve9lqmwt4nn575x95v9849zj6p9564.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cutynk8xve9lqmwt4nn575x95v9849zj6p9564.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cutynk8xve9lqmwt4nn575x95v9849zj6p9564.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cutynk8xve9lqmwt4nn575x95v9849zj6p9564.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1cwzl3q4h5v8yvzlp64h7fwnduzut3f4nst2gdp.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d2x0t42a6anth3lt38ld5997m6e5ya5frn7u8h.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d4ndu7jeeln3qaxuyakazkm7v4kep5qrtdz9k7.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d4ndu7jeeln3qaxuyakazkm7v4kep5qrtdz9k7.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d4ndu7jeeln3qaxuyakazkm7v4kep5qrtdz9k7.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d4ndu7jeeln3qaxuyakazkm7v4kep5qrtdz9k7.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d7uejj7he40g6g999dlpfg5egeq9jvkmdzs066.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d7uejj7he40g6g999dlpfg5egeq9jvkmdzs066.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1d7uejj7he40g6g999dlpfg5egeq9jvkmdzs066.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1d7uejj7he40g6g999dlpfg5egeq9jvkmdzs066.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dknnk0nzap8h07elxays2ecldxq9elu3dzqvqr.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dknnk0nzap8h07elxays2ecldxq9elu3dzqvqr.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dknnk0nzap8h07elxays2ecldxq9elu3dzqvqr.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dknnk0nzap8h07elxays2ecldxq9elu3dzqvqr.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dxnsuxezqxnnuxnkhktd46p7nkcvdaxnjt5xu0.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dxnsuxezqxnnuxnkhktd46p7nkcvdaxnjt5xu0.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dxnsuxezqxnnuxnkhktd46p7nkcvdaxnjt5xu0.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dxnsuxezqxnnuxnkhktd46p7nkcvdaxnjt5xu0.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dyntafvjynns5zyltwgyktej0y5zt84y3npkt4.png b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dyntafvjynns5zyltwgyktej0y5zt84y3npkt4.png
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dyntafvjynns5zyltwgyktej0y5zt84y3npkt4.png
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dyntafvjynns5zyltwgyktej0y5zt84y3npkt4.png
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dz66p5x62hrs23xq5v30g7zxevc2amdjl2mjfx.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dz66p5x62hrs23xq5v30g7zxevc2amdjl2mjfx.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1dz66p5x62hrs23xq5v30g7zxevc2amdjl2mjfx.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1dz66p5x62hrs23xq5v30g7zxevc2amdjl2mjfx.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e84fr6cxgcflv3fc9ey6n8425au7zx6wsztrle.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ee7xnhczhvu064utmdn48sh0wx7zq3pgy6frgm.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ejnw6efrt7f6v6n0xhqlpxunlxmpllnusy2gf3.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1esud09zs5754g5nlkmrgxsfdj276xm64cgmd3w.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1etursa3ccgkrp587449tyw8rcfgrzfwkc6a7pc.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1etursa3ccgkrp587449tyw8rcfgrzfwkc6a7pc.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1etursa3ccgkrp587449tyw8rcfgrzfwkc6a7pc.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1etursa3ccgkrp587449tyw8rcfgrzfwkc6a7pc.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f2kdg34689x93cvw2y59z7y46dvz2fk8lhddfz.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1f566hkhdhf9s3hskd43nggj7qsc7g0xxtqylr7.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fa558ytfnekl2zlmv7zpupam7zrcj2wkpqt90x.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fa558ytfnekl2zlmv7zpupam7zrcj2wkpqt90x.jpg
new file mode 100644
index 000000000..c67e939e2
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fa558ytfnekl2zlmv7zpupam7zrcj2wkpqt90x.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ffsdugrhfzdyxltjve8v68n6aazyc6p97uhfn0.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ffsdugrhfzdyxltjve8v68n6aazyc6p97uhfn0.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ffsdugrhfzdyxltjve8v68n6aazyc6p97uhfn0.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ffsdugrhfzdyxltjve8v68n6aazyc6p97uhfn0.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1fqrdtx7pyps6eytn3356j9cs4f8zl0eevlt3rt.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1g4d6dmvnpg7w7yugy6kplndp7jpfmf3krtschp.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1get4y2tqyp047ftym76c4avl4remldtrrj9knt.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1gzycxekfxq2hvu9jt255aajvlakay9nvs4at6q.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1gzycxekfxq2hvu9jt255aajvlakay9nvs4at6q.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1gzycxekfxq2hvu9jt255aajvlakay9nvs4at6q.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1gzycxekfxq2hvu9jt255aajvlakay9nvs4at6q.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h37jxecva2xgm78ejw3683vrw932j6nuzgdxgj.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h37jxecva2xgm78ejw3683vrw932j6nuzgdxgj.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h37jxecva2xgm78ejw3683vrw932j6nuzgdxgj.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h37jxecva2xgm78ejw3683vrw932j6nuzgdxgj.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1h4t5dqenq86znza06thc64pzyxtme7zltyeg8k.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hkjsxadg0a0dj5pwdyfnf8qm0az6wcxcwhdnry.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hkjsxadg0a0dj5pwdyfnf8qm0az6wcxcwhdnry.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hkjsxadg0a0dj5pwdyfnf8qm0az6wcxcwhdnry.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hkjsxadg0a0dj5pwdyfnf8qm0az6wcxcwhdnry.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hsxaln75wjs033t3spd8a0gawl4jvxawn6v849.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hz3svgdhmv67lsqlduu0tcnd3f75c0xrzcsgtk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hz3svgdhmv67lsqlduu0tcnd3f75c0xrzcsgtk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1hz3svgdhmv67lsqlduu0tcnd3f75c0xrzcsgtk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1hz3svgdhmv67lsqlduu0tcnd3f75c0xrzcsgtk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1jpnuzes6hd3kjye9f8fsrum8dhj8dylwq5gdcc.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1jpnuzes6hd3kjye9f8fsrum8dhj8dylwq5gdcc.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1jpnuzes6hd3kjye9f8fsrum8dhj8dylwq5gdcc.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1jpnuzes6hd3kjye9f8fsrum8dhj8dylwq5gdcc.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kpfxtqt5cmlew46dem32fqlk5g6k4wyueh4szu.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kywsemgukghp6gah7yw6hmly9zc03z0479mzdn.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kywsemgukghp6gah7yw6hmly9zc03z0479mzdn.jpg
new file mode 100644
index 000000000..2f95bd93a
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1kywsemgukghp6gah7yw6hmly9zc03z0479mzdn.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3ncrkrk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3ncrkrk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3ncrkrk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3ncrkrk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ltu4jgw850x7kg9kl7g8hjtuzatvzfpy0svplt.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ltu4jgw850x7kg9kl7g8hjtuzatvzfpy0svplt.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1ltu4jgw850x7kg9kl7g8hjtuzatvzfpy0svplt.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ltu4jgw850x7kg9kl7g8hjtuzatvzfpy0svplt.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m3jmau90vepl2nyvhljrkgl7sq78algxmew74t.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m3jmau90vepl2nyvhljrkgl7sq78algxmew74t.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m3jmau90vepl2nyvhljrkgl7sq78algxmew74t.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m3jmau90vepl2nyvhljrkgl7sq78algxmew74t.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1m4pj2y9qrm77m9gsa8uu7xj6xjyy7du5hg2t2d.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1mwerm24kce7dcl59t6n0caw7c8zxgkrjj9svwj.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n2q9ke92yjyc3uf6084d9jssuu9urj608cc2hp.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n5yluh6k9zqv74jw35r5s5zy808xpzfq4ea8jf.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1n6z54tf5rezqurq7vn4xy6gfj9u7m5axen0ycc.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nc9ppgynj4fxqlsxq62sh4zfvf59la6rkjy734.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nc9ppgynj4fxqlsxq62sh4zfvf59la6rkjy734.jpg
new file mode 100644
index 000000000..3f38e497e
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nc9ppgynj4fxqlsxq62sh4zfvf59la6rkjy734.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1njnkzz20mlmxff9vs42wgx22lcqtmsqjxr46ua.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1njnkzz20mlmxff9vs42wgx22lcqtmsqjxr46ua.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1njnkzz20mlmxff9vs42wgx22lcqtmsqjxr46ua.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1njnkzz20mlmxff9vs42wgx22lcqtmsqjxr46ua.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg
new file mode 100644
index 000000000..4a824f5ed
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ntn4j2lsu3k60g8xj9pqshqvdj2q5tygyvczpy.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ntn4j2lsu3k60g8xj9pqshqvdj2q5tygyvczpy.jpg
new file mode 100644
index 000000000..1c95076de
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1ntn4j2lsu3k60g8xj9pqshqvdj2q5tygyvczpy.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p5w2pquxj0plswe4jwczxj86tzuupqpydg3n64.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p5w2pquxj0plswe4jwczxj86tzuupqpydg3n64.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p5w2pquxj0plswe4jwczxj86tzuupqpydg3n64.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p5w2pquxj0plswe4jwczxj86tzuupqpydg3n64.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p66ez0ywzssuq26f7056mx3ydgvkfqw8lf93e8.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p66ez0ywzssuq26f7056mx3ydgvkfqw8lf93e8.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p66ez0ywzssuq26f7056mx3ydgvkfqw8lf93e8.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p66ez0ywzssuq26f7056mx3ydgvkfqw8lf93e8.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1p90whzaz28ayhmqqw0ur8283tsu8ad3jfqz0s0.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1qndvee93f30q3ra2hncasphm22k97vpr89zusa.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1qndvee93f30q3ra2hncasphm22k97vpr89zusa.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1qndvee93f30q3ra2hncasphm22k97vpr89zusa.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1qndvee93f30q3ra2hncasphm22k97vpr89zusa.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r3lgsyq49zvl36cnevjx3q6u2ep897rws9hauk.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r4lvwh0pmkmjewa76rem7ndr0z8zg3pseyfpux.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r5sv0r4t2uu3hxrg4ectp2k75u7vn2g9u64lvh.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r5sv0r4t2uu3hxrg4ectp2k75u7vn2g9u64lvh.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1r5sv0r4t2uu3hxrg4ectp2k75u7vn2g9u64lvh.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1r5sv0r4t2uu3hxrg4ectp2k75u7vn2g9u64lvh.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rf0fczrw2gnhuju86kmjtku4dvf9dcc2mpe7pe.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rqqpyuka5dxulzjslnzjld2ltcw5095rr0jz07.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rqqpyuka5dxulzjslnzjld2ltcw5095rr0jz07.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rqqpyuka5dxulzjslnzjld2ltcw5095rr0jz07.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rqqpyuka5dxulzjslnzjld2ltcw5095rr0jz07.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.jpeg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.jpeg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.jpeg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.jpeg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1rvqzf9u2uxttmshn302anlknfgsatrh5v7fl7e.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1s28qvpfpq3525ep0surypnmwkfy8d2n237pnc4.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1s28qvpfpq3525ep0surypnmwkfy8d2n237pnc4.jpg
new file mode 100644
index 000000000..ada8ea3de
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1s28qvpfpq3525ep0surypnmwkfy8d2n237pnc4.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1sdd8krauuydtauk8je6zexcw5llj8aunyhlz89.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1sdd8krauuydtauk8je6zexcw5llj8aunyhlz89.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1sdd8krauuydtauk8je6zexcw5llj8aunyhlz89.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1sdd8krauuydtauk8je6zexcw5llj8aunyhlz89.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1sgcawjmfm7q7rmfdwfuaxxpk806jq96kqswv83.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1sgcawjmfm7q7rmfdwfuaxxpk806jq96kqswv83.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1sgcawjmfm7q7rmfdwfuaxxpk806jq96kqswv83.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1sgcawjmfm7q7rmfdwfuaxxpk806jq96kqswv83.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly0qyahfpe53jkrxem9lmfcr3f2mmxtgl2kzc.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly0qyahfpe53jkrxem9lmfcr3f2mmxtgl2kzc.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly0qyahfpe53jkrxem9lmfcr3f2mmxtgl2kzc.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly0qyahfpe53jkrxem9lmfcr3f2mmxtgl2kzc.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1tly62qxj2t8wz2zw4d7p37jcysvgasqa0zjtlk.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2wjf06nutm9phvh5hgc3twpst9q50y4f8ckd5.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2wjf06nutm9phvh5hgc3twpst9q50y4f8ckd5.jpg
new file mode 100644
index 000000000..9378e0cce
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2wjf06nutm9phvh5hgc3twpst9q50y4f8ckd5.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v2xylfeyry808ltt0hwxggzt0fns6uwh74mku3.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1v93fqstgfkqnw080mv8sv5p5fq7n2h7e4kuz5r.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vqz7mgm47xhx25xu5g9qagnz48naks6pk6fmg2.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vwzmwq3vsu7pg24v5pxqvgrp82acl6fxl23ent.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vwzmwq3vsu7pg24v5pxqvgrp82acl6fxl23ent.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1vwzmwq3vsu7pg24v5pxqvgrp82acl6fxl23ent.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1vwzmwq3vsu7pg24v5pxqvgrp82acl6fxl23ent.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1w3psm8a9td2qz06s46cxss03mz5umxaxegvhhs.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1w3psm8a9td2qz06s46cxss03mz5umxaxegvhhs.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1w3psm8a9td2qz06s46cxss03mz5umxaxegvhhs.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1w3psm8a9td2qz06s46cxss03mz5umxaxegvhhs.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1wh9a7f05yf4nqkmh7d9lyletzhefaa53txynrj.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1wh9a7f05yf4nqkmh7d9lyletzhefaa53txynrj.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1wh9a7f05yf4nqkmh7d9lyletzhefaa53txynrj.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1wh9a7f05yf4nqkmh7d9lyletzhefaa53txynrj.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x2k4l6k57c2rqhyzdef6y9galutn7psegeqylz.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x2k4l6k57c2rqhyzdef6y9galutn7psegeqylz.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x2k4l6k57c2rqhyzdef6y9galutn7psegeqylz.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x2k4l6k57c2rqhyzdef6y9galutn7psegeqylz.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x5y65hgngh77sxta6s2vpjnfjep3ltllkh44le.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x5y65hgngh77sxta6s2vpjnfjep3ltllkh44le.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x5y65hgngh77sxta6s2vpjnfjep3ltllkh44le.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x5y65hgngh77sxta6s2vpjnfjep3ltllkh44le.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x7le0d537tsl3jnmmj0klhtv887p5shtn2pfyx.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x7le0d537tsl3jnmmj0klhtv887p5shtn2pfyx.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1x7le0d537tsl3jnmmj0klhtv887p5shtn2pfyx.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1x7le0d537tsl3jnmmj0klhtv887p5shtn2pfyx.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xd0pgs5r04whkkpw45wrl757rvd3qre4rjzp5z.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xd0pgs5r04whkkpw45wrl757rvd3qre4rjzp5z.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xd0pgs5r04whkkpw45wrl757rvd3qre4rjzp5z.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xd0pgs5r04whkkpw45wrl757rvd3qre4rjzp5z.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xnaddzjzml9uw88cruyljm93v8quexnsawtr4j.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwazl8ftks4gn00y5x3c47auquc62ssucyym4v.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1xwsnq88kc8wcrp34qenxf3dvhl5n02yj93u755.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1y28s5jpaxg7qr06c0thfqf5wnjurq6etx7aret.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1y28s5jpaxg7qr06c0thfqf5wnjurq6etx7aret.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1y28s5jpaxg7qr06c0thfqf5wnjurq6etx7aret.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1y28s5jpaxg7qr06c0thfqf5wnjurq6etx7aret.jpg
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1y4pfpkwpy6myskp7pne256k6smh2rjta694yq5.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1y4pfpkwpy6myskp7pne256k6smh2rjta694yq5.jpg
new file mode 100644
index 000000000..325408347
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1y4pfpkwpy6myskp7pne256k6smh2rjta694yq5.jpg differ
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1yljq5pdnx84kkg30jfmz6ddu4eyp7twyp4z40f.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1yljq5pdnx84kkg30jfmz6ddu4eyp7twyp4z40f.jpg
new file mode 100644
index 000000000..9b33511b7
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1yljq5pdnx84kkg30jfmz6ddu4eyp7twyp4z40f.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1yqdrkyp37w46aant2u80v2rapuuz7eg3rl4arg.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1yqdrkyp37w46aant2u80v2rapuuz7eg3rl4arg.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1yqdrkyp37w46aant2u80v2rapuuz7eg3rl4arg.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1yqdrkyp37w46aant2u80v2rapuuz7eg3rl4arg.webp
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z4z0erxx80cex9kgrk5ynk6gczs0qvale6ae48.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z4z0erxx80cex9kgrk5ynk6gczs0qvale6ae48.jpg
new file mode 100644
index 000000000..31e147b6c
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z4z0erxx80cex9kgrk5ynk6gczs0qvale6ae48.jpg differ
diff --git a/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z8rcledwadkcyykvn20zxr032fnv787vv46hlg.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z8rcledwadkcyykvn20zxr032fnv787vv46hlg.jpg
new file mode 100644
index 000000000..21695e958
Binary files /dev/null and b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1z8rcledwadkcyykvn20zxr032fnv787vv46hlg.jpg differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zaahxq8my6nqvp64flacugxdyxp6tmm8st3hrz.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zaahxq8my6nqvp64flacugxdyxp6tmm8st3hrz.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zaahxq8my6nqvp64flacugxdyxp6tmm8st3hrz.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zaahxq8my6nqvp64flacugxdyxp6tmm8st3hrz.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zjjw8p4llg4uee4hqwe04kat4haf734wegcr24.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zjjw8p4llg4uee4hqwe04kat4haf734wegcr24.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zjjw8p4llg4uee4hqwe04kat4haf734wegcr24.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zjjw8p4llg4uee4hqwe04kat4haf734wegcr24.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.jpg
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.webp b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.webp
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.webp
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zpy3qf7us3m0pxpqkp72gzjv55t70huy33t47x.webp
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zy5ufk2aluhyup57j0y3ugm68s3lz9nfw8v30r.jpg b/deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zy5ufk2aluhyup57j0y3ugm68s3lz9nfw8v30r.jpg
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/injvaloper1zy5ufk2aluhyup57j0y3ugm68s3lz9nfw8v30r.jpg
rename to deprecated/sdk-ui-ts/src/validators-logo/images/injvaloper1zy5ufk2aluhyup57j0y3ugm68s3lz9nfw8v30r.jpg
diff --git a/packages/token-metadata/src/images/unknown.png b/deprecated/sdk-ui-ts/src/validators-logo/images/unknown.png
similarity index 100%
rename from packages/token-metadata/src/images/unknown.png
rename to deprecated/sdk-ui-ts/src/validators-logo/images/unknown.png
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/untracked.png b/deprecated/sdk-ui-ts/src/validators-logo/images/untracked.png
similarity index 100%
rename from packages/sdk-ui-ts/src/validators-logo/images/untracked.png
rename to deprecated/sdk-ui-ts/src/validators-logo/images/untracked.png
diff --git a/packages/sdk-ui-ts/src/validators-logo/index.ts b/deprecated/sdk-ui-ts/src/validators-logo/index.ts
similarity index 99%
rename from packages/sdk-ui-ts/src/validators-logo/index.ts
rename to deprecated/sdk-ui-ts/src/validators-logo/index.ts
index 24dd98bd1..2a8008e18 100644
--- a/packages/sdk-ui-ts/src/validators-logo/index.ts
+++ b/deprecated/sdk-ui-ts/src/validators-logo/index.ts
@@ -10,7 +10,7 @@ export interface ValidatorMap {
[validatorAddress: string]: string | undefined
}
-const endpoints = getNetworkEndpoints(Network.MainnetSentry)
+const endpoints = getNetworkEndpoints(Network.Mainnet)
const chainGrpcStakingApi = new ChainGrpcStakingApi(endpoints.grpc)
const keybaseApi = new HttpRestClient('https://keybase.io/_/api/1.0/')
diff --git a/packages/sdk-ui-ts/src/validators-logo/mappings.json b/deprecated/sdk-ui-ts/src/validators-logo/mappings.json
similarity index 86%
rename from packages/sdk-ui-ts/src/validators-logo/mappings.json
rename to deprecated/sdk-ui-ts/src/validators-logo/mappings.json
index 4e786890e..35ff270ba 100644
--- a/packages/sdk-ui-ts/src/validators-logo/mappings.json
+++ b/deprecated/sdk-ui-ts/src/validators-logo/mappings.json
@@ -81,5 +81,18 @@
"injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq": "injvaloper13gq4msx4z03ye5gef35yjz9nqtg6ja2yqj6csq.jpg",
"injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p": "injvaloper1hq35mlvs2z6j9vz743fyj8krk4rfm929mus55p.jpg",
"injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx": "injvaloper1e8gk2jyfn0vwr3ewk02lfjluvxhxsd7k9qn7nx.jpg",
- "injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p": "injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg"
-}
+ "injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p": "injvaloper1an6hyf4h2au53aa3tuy6yjjr4edsd2xvg5kc2p.jpg",
+ "injvaloper1z8rcledwadkcyykvn20zxr032fnv787vv46hlg": "injvaloper1z8rcledwadkcyykvn20zxr032fnv787vv46hlg.jpg",
+ "injvaloper1z4z0erxx80cex9kgrk5ynk6gczs0qvale6ae48": "injvaloper1z4z0erxx80cex9kgrk5ynk6gczs0qvale6ae48.jpg",
+ "injvaloper1y4pfpkwpy6myskp7pne256k6smh2rjta694yq5": "injvaloper1y4pfpkwpy6myskp7pne256k6smh2rjta694yq5.jpg",
+ "injvaloper18cyc7wxru3g9de3emwy9pdh5x0vevxp3p2623y": "injvaloper18cyc7wxru3g9de3emwy9pdh5x0vevxp3p2623y.jpg",
+ "injvaloper1fa558ytfnekl2zlmv7zpupam7zrcj2wkpqt90x": "injvaloper1fa558ytfnekl2zlmv7zpupam7zrcj2wkpqt90x.jpg",
+ "injvaloper1s28qvpfpq3525ep0surypnmwkfy8d2n237pnc4": "injvaloper1s28qvpfpq3525ep0surypnmwkfy8d2n237pnc4.jpg",
+ "injvaloper13p7suhhxrd6rrj6kka39sadklartjpekm9hes8": "injvaloper13p7suhhxrd6rrj6kka39sadklartjpekm9hes8.jpg",
+ "injvaloper1ntn4j2lsu3k60g8xj9pqshqvdj2q5tygyvczpy": "injvaloper1ntn4j2lsu3k60g8xj9pqshqvdj2q5tygyvczpy.jpg",
+ "injvaloper1nc9ppgynj4fxqlsxq62sh4zfvf59la6rkjy734": "injvaloper1nc9ppgynj4fxqlsxq62sh4zfvf59la6rkjy734.jpg",
+ "injvaloper1kywsemgukghp6gah7yw6hmly9zc03z0479mzdn": "injvaloper1kywsemgukghp6gah7yw6hmly9zc03z0479mzdn.jpg",
+ "injvaloper1yljq5pdnx84kkg30jfmz6ddu4eyp7twyp4z40f": "injvaloper1yljq5pdnx84kkg30jfmz6ddu4eyp7twyp4z40f.jpg",
+ "injvaloper195htudzwkmgn64wvyp7e474ul9t62ws9sr3rhn": "injvaloper195htudzwkmgn64wvyp7e474ul9t62ws9sr3rhn.jpg",
+ "injvaloper1v2wjf06nutm9phvh5hgc3twpst9q50y4f8ckd5": "injvaloper1v2wjf06nutm9phvh5hgc3twpst9q50y4f8ckd5.jpg"
+}
\ No newline at end of file
diff --git a/packages/sdk-ui-ts/tsconfig.build.esm.json b/deprecated/sdk-ui-ts/tsconfig.build.esm.json
similarity index 100%
rename from packages/sdk-ui-ts/tsconfig.build.esm.json
rename to deprecated/sdk-ui-ts/tsconfig.build.esm.json
diff --git a/packages/sdk-ui-ts/tsconfig.build.json b/deprecated/sdk-ui-ts/tsconfig.build.json
similarity index 100%
rename from packages/sdk-ui-ts/tsconfig.build.json
rename to deprecated/sdk-ui-ts/tsconfig.build.json
diff --git a/packages/sdk-ui-ts/tsconfig.json b/deprecated/sdk-ui-ts/tsconfig.json
similarity index 100%
rename from packages/sdk-ui-ts/tsconfig.json
rename to deprecated/sdk-ui-ts/tsconfig.json
diff --git a/packages/token-metadata/.npmignore b/deprecated/token-metadata/.npmignore
similarity index 100%
rename from packages/token-metadata/.npmignore
rename to deprecated/token-metadata/.npmignore
diff --git a/packages/token-metadata/CHANGELOG.md b/deprecated/token-metadata/CHANGELOG.md
similarity index 98%
rename from packages/token-metadata/CHANGELOG.md
rename to deprecated/token-metadata/CHANGELOG.md
index 519779419..0ea326641 100644
--- a/packages/token-metadata/CHANGELOG.md
+++ b/deprecated/token-metadata/CHANGELOG.md
@@ -3,50 +3,53 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.5-beta.46...@injectivelabs/token-metadata@1.14.5) (2024-01-11)
-
-
-### Features
-
-* cid ([be5f93c](https://github.com/InjectiveLabs/injective-ts/commit/be5f93c4b59fc8dce07e4101b7790a645eef4edc))
-* cid ([b286316](https://github.com/InjectiveLabs/injective-ts/commit/b286316549a80ba64af9ba946d9166e1cd638fd7))
-
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.11-beta.63...@injectivelabs/token-metadata@1.14.11) (2024-06-10)
+**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.8...@injectivelabs/token-metadata@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/token-metadata
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.4-beta.3...@injectivelabs/token-metadata@1.14.4) (2023-11-20)
+## [1.14.8](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.7...@injectivelabs/token-metadata@1.14.8) (2024-03-03)
**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.7-beta.2...@injectivelabs/token-metadata@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.7-beta.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.7-beta.0...@injectivelabs/token-metadata@1.14.7-beta.1) (2024-03-02)
+**Note:** Version bump only for package @injectivelabs/token-metadata
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.3-beta.6...@injectivelabs/token-metadata@1.14.3) (2023-11-17)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.6-beta.45...@injectivelabs/token-metadata@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.5-beta.46...@injectivelabs/token-metadata@1.14.5) (2024-01-11)
+### Features
+- cid ([be5f93c](https://github.com/InjectiveLabs/injective-ts/commit/be5f93c4b59fc8dce07e4101b7790a645eef4edc))
+- cid ([b286316](https://github.com/InjectiveLabs/injective-ts/commit/b286316549a80ba64af9ba946d9166e1cd638fd7))
-
-## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.2-beta.9...@injectivelabs/token-metadata@1.14.2) (2023-11-07)
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.4-beta.3...@injectivelabs/token-metadata@1.14.4) (2023-11-20)
**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.3-beta.6...@injectivelabs/token-metadata@1.14.3) (2023-11-17)
+**Note:** Version bump only for package @injectivelabs/token-metadata
+## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.2-beta.9...@injectivelabs/token-metadata@1.14.2) (2023-11-07)
+**Note:** Version bump only for package @injectivelabs/token-metadata
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.1-beta.15...@injectivelabs/token-metadata@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/token-metadata
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-metadata@1.14.0-beta.1...@injectivelabs/token-metadata@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/token-metadata
diff --git a/packages/token-metadata/CONTRIBUTING.md b/deprecated/token-metadata/CONTRIBUTING.md
similarity index 100%
rename from packages/token-metadata/CONTRIBUTING.md
rename to deprecated/token-metadata/CONTRIBUTING.md
diff --git a/packages/token-metadata/LICENSE b/deprecated/token-metadata/LICENSE
similarity index 100%
rename from packages/token-metadata/LICENSE
rename to deprecated/token-metadata/LICENSE
diff --git a/packages/token-metadata/README.md b/deprecated/token-metadata/README.md
similarity index 100%
rename from packages/token-metadata/README.md
rename to deprecated/token-metadata/README.md
diff --git a/packages/token-metadata/jest.config.js b/deprecated/token-metadata/jest.config.js
similarity index 100%
rename from packages/token-metadata/jest.config.js
rename to deprecated/token-metadata/jest.config.js
diff --git a/packages/token-metadata/package.json b/deprecated/token-metadata/package.json
similarity index 72%
rename from packages/token-metadata/package.json
rename to deprecated/token-metadata/package.json
index 968d492be..28f499e44 100644
--- a/packages/token-metadata/package.json
+++ b/deprecated/token-metadata/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/token-metadata",
"description": "ERC20 token metadata. Name, symbol, decimals, etc.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"license": "Apache-2.0",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && yarn build:copy-files && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && yarn build:copy-files && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && yarn build:copy-files && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -28,14 +29,14 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"@types/lodash.values": "^4.3.6",
"copyfiles": "^2.4.1",
"jsonschema": "^1.4.0",
diff --git a/packages/token-metadata/src/TokenFactory.ts b/deprecated/token-metadata/src/TokenFactory.ts
similarity index 69%
rename from packages/token-metadata/src/TokenFactory.ts
rename to deprecated/token-metadata/src/TokenFactory.ts
index 664d61bf1..148b51055 100644
--- a/packages/token-metadata/src/TokenFactory.ts
+++ b/deprecated/token-metadata/src/TokenFactory.ts
@@ -1,7 +1,6 @@
import { Network, isTestnet } from '@injectivelabs/networks'
import { GeneralException } from '@injectivelabs/exceptions'
import { INJ_DENOM } from '@injectivelabs/utils'
-import { TokenInfo } from './TokenInfo'
import { TokenMetaUtils } from './TokenMetaUtils'
import {
getTokensBySymbolForDevnet,
@@ -9,9 +8,13 @@ import {
getTokensBySymbolForDevnet2,
getTokensBySymbolForTestnet,
} from './tokens/network'
-import { Token, TokenMeta, TokenType } from './types'
+import { Token, TokenMetaBase } from './types'
import tokensBySymbol from './tokens/tokens'
-import { getTokenFromMeta, isCw20ContractAddress } from './utils'
+import {
+ getTokenFromMeta,
+ getTokenFromMetaIncludingIbcBaseDenoms,
+} from './utils/token'
+import { isCw20ContractAddress } from './utils/helpers'
export class TokenFactory {
public tokenMetaUtils: TokenMetaUtils
@@ -22,7 +25,7 @@ export class TokenFactory {
static make(
network: Network = Network.Mainnet,
- registry: Record = {},
+ registry: Record = {},
): TokenFactory {
if (isTestnet(network)) {
return new TokenFactory(
@@ -71,7 +74,7 @@ export class TokenFactory {
const bySymbol = this.tokenMetaUtils.getMetaBySymbol(denom)
if (bySymbol) {
- return getTokenFromMeta(bySymbol, denom)
+ return getTokenFromMetaIncludingIbcBaseDenoms(bySymbol, denom)
}
const byAddress = this.tokenMetaUtils.getMetaByAddress(denom)
@@ -80,12 +83,6 @@ export class TokenFactory {
return getTokenFromMeta(byAddress, denom)
}
- const byName = this.tokenMetaUtils.getMetaByName(denom)
-
- if (byName) {
- return getTokenFromMeta(byName, denom)
- }
-
return
}
@@ -115,13 +112,7 @@ export class TokenFactory {
}
}
- toTokenInfo(denom: string): TokenInfo | undefined {
- const token = this.toToken(denom)
-
- return token ? TokenInfo.fromToken(token) : undefined
- }
-
- getPeggyDenomTokenMeta(denom: string): TokenMeta | undefined {
+ getPeggyDenomTokenMeta(denom: string): TokenMetaBase | undefined {
const address = denom.startsWith('peggy')
? denom.replace('peggy', '')
: denom
@@ -141,7 +132,7 @@ export class TokenFactory {
return this.tokenMetaUtils.getMetaByAddress(address)
}
- getCw20DenomTokenMeta(address: string): TokenMeta | undefined {
+ getCw20DenomTokenMeta(address: string): TokenMetaBase | undefined {
if (!isCw20ContractAddress(address)) {
throw new GeneralException(
new Error(`The address ${address} is not a valid CW20 address`),
@@ -151,11 +142,11 @@ export class TokenFactory {
return this.tokenMetaUtils.getMetaByAddress(address)
}
- getIbcDenomTokenMeta(hash: string): TokenMeta | undefined {
+ getIbcDenomTokenMeta(hash: string): TokenMetaBase | undefined {
return this.tokenMetaUtils.getMetaByHash(hash)
}
- getFactoryDenomTokenMeta(denom: string): TokenMeta | undefined {
+ getFactoryDenomTokenMeta(denom: string): TokenMetaBase | undefined {
const [address] = denom.split('/').reverse()
if (!address) {
@@ -164,35 +155,8 @@ export class TokenFactory {
)
}
- let tokenMeta =
- this.tokenMetaUtils.getMetaBySymbol(address) ||
- this.tokenMetaUtils.getMetaByName(address)
-
- if (isCw20ContractAddress(address)) {
- tokenMeta = this.tokenMetaUtils.getMetaByAddress(address) || tokenMeta
-
- return tokenMeta
- ? {
- ...tokenMeta,
- tokenType: TokenType.TokenFactory,
- }
- : undefined
- }
-
- /**
- * We have to prevent factory token denoms to be identified as
- * normal tokens by using only the symbol, i.e
- * factory/inj..../sol !== SOL token
- */
- if (tokenMeta?.tokenType !== TokenType.TokenFactory) {
- return undefined
- }
-
- return tokenMeta
- ? {
- ...tokenMeta,
- tokenType: TokenType.TokenFactory,
- }
- : undefined
+ return isCw20ContractAddress(address)
+ ? this.tokenMetaUtils.getMetaByAddress(address)
+ : this.tokenMetaUtils.getMetaByFactory(denom)
}
}
diff --git a/deprecated/token-metadata/src/TokenFactoryStatic.ts b/deprecated/token-metadata/src/TokenFactoryStatic.ts
new file mode 100644
index 000000000..0df495e21
--- /dev/null
+++ b/deprecated/token-metadata/src/TokenFactoryStatic.ts
@@ -0,0 +1,73 @@
+import { TokenType, TokenSource, TokenStatic, TokenVerification } from './types'
+
+export class TokenFactoryStatic {
+ public registry: TokenStatic[]
+ public tokensByDenom: Record
+ public tokensBySymbol: Record
+
+ constructor(registry: TokenStatic[]) {
+ this.registry = registry
+ this.tokensByDenom = registry.reduce((list, token) => {
+ const denom = token.denom.toLowerCase()
+
+ if (list[denom]) {
+ return list
+ }
+
+ return { ...list, [denom]: token }
+ }, {} as Record)
+
+ this.tokensBySymbol = registry.reduce((list, token) => {
+ const symbol = token.symbol.toLowerCase()
+
+ return { ...list, [symbol]: [...(list[symbol] || []), token] }
+ }, {} as Record)
+ }
+
+ toToken(denom: string): TokenStatic | undefined {
+ return this.getMetaByDenomOrAddress(denom) || this.getMetaBySymbol(denom)
+ }
+
+ getMetaBySymbol(
+ symbol: string,
+ {
+ type,
+ source,
+ verification,
+ }: {
+ source?: TokenSource
+ type?: TokenType
+ verification?: TokenVerification
+ } = {},
+ ): TokenStatic | undefined {
+ const tokensBySymbol = this.tokensBySymbol[symbol.toLowerCase()]
+
+ if (!tokensBySymbol) {
+ return
+ }
+
+ const token = tokensBySymbol.find((token: TokenStatic) => {
+ const isType = !type || token.tokenType === type
+ const isSource = !source || token.source === source
+ const isVerification =
+ !verification || token.tokenVerification === verification
+
+ return isType && isSource && isVerification
+ })
+
+ const sortedTokens = tokensBySymbol.sort((t1, t2) => {
+ const t1IsVerified = t1.tokenVerification === TokenVerification.Verified
+ const t2IsVerified = t2.tokenVerification === TokenVerification.Verified
+
+ return t1IsVerified && !t2IsVerified ? -1 : 1
+ })
+
+ return token || sortedTokens[0]
+ }
+
+ getMetaByDenomOrAddress(denom: string): TokenStatic | undefined {
+ const formattedDenom = denom.toLowerCase()
+
+ return this.tokensByDenom[formattedDenom]
+ }
+}
diff --git a/packages/token-metadata/src/TokenMetaUtils.ts b/deprecated/token-metadata/src/TokenMetaUtils.ts
similarity index 67%
rename from packages/token-metadata/src/TokenMetaUtils.ts
rename to deprecated/token-metadata/src/TokenMetaUtils.ts
index 25ff18ac8..3bdf67875 100644
--- a/packages/token-metadata/src/TokenMetaUtils.ts
+++ b/deprecated/token-metadata/src/TokenMetaUtils.ts
@@ -1,29 +1,25 @@
import {
- getMappedTokensByErc20Address,
getMappedTokensByCw20Address,
+ getMappedTokensByErc20Address,
} from './tokens/mappings/mapByAddress'
-import { getMappedTokensByName } from './tokens/mappings/mapByName'
import { getMappedTokensByHash } from './tokens/mappings/mapByHash'
import { getMappedTokensBySymbol } from './tokens/mappings/mapBySymbol'
-import { TokenMeta, TokenVerification, TokenType } from './types'
+import { TokenMetaBase, TokenVerification, TokenType } from './types'
export class TokenMetaUtils {
- protected tokens: Record
+ protected tokens: Record
- protected tokensByErc20Address: Record
+ protected tokensByErc20Address: Record
- protected tokensByCw20Address: Record
+ protected tokensByCw20Address: Record
- protected tokensByHash: Record
+ protected tokensByHash: Record
- protected tokensByName: Record
-
- constructor(tokens: Record) {
+ constructor(tokens: Record) {
this.tokens = getMappedTokensBySymbol(tokens)
+ this.tokensByHash = getMappedTokensByHash(this.tokens)
this.tokensByErc20Address = getMappedTokensByErc20Address(this.tokens)
this.tokensByCw20Address = getMappedTokensByCw20Address(this.tokens)
- this.tokensByHash = getMappedTokensByHash(this.tokens)
- this.tokensByName = getMappedTokensByName(this.tokens)
}
/**
@@ -32,7 +28,7 @@ export class TokenMetaUtils {
* - BaseDenom based on the ibc hash
* - Variation of a symbol for multiple versions of the same token (ex: USDC, USDCet, USDCso)
*/
- getMetaBySymbol(symbol: string): TokenMeta | undefined {
+ getMetaBySymbol(symbol: string): TokenMetaBase | undefined {
const { tokens: tokensBySymbol } = this
const tokenSymbol = symbol.toUpperCase() as keyof typeof tokensBySymbol
@@ -48,13 +44,40 @@ export class TokenMetaUtils {
}
}
- getMetaByAddress(address: string): TokenMeta | undefined {
+ getMetaByFactory(denom: string): TokenMetaBase | undefined {
+ const [symbol, creatorAddress] = denom.split('/').reverse()
+ const tokenMeta = this.getMetaBySymbol(symbol)
+
+ if (!tokenMeta) {
+ return
+ }
+
+ if (!tokenMeta.tokenFactories) {
+ return
+ }
+
+ const tokenFactory = tokenMeta.tokenFactories.find(
+ (tokenFactory) => tokenFactory.creator === creatorAddress,
+ )
+
+ if (!tokenFactory) {
+ return
+ }
+
+ return {
+ ...tokenMeta,
+ tokenType: TokenType.TokenFactory,
+ tokenVerification: TokenVerification.Verified,
+ }
+ }
+
+ getMetaByAddress(address: string): TokenMetaBase | undefined {
return address.startsWith('0x')
? this.getMetaByErc20Address(address)
: this.getMetaByCw20Address(address)
}
- getMetaByCw20Address(address: string): TokenMeta | undefined {
+ getMetaByCw20Address(address: string): TokenMetaBase | undefined {
const { tokensByCw20Address } = this
const contractAddress =
address.toLowerCase() as keyof typeof tokensByCw20Address
@@ -78,7 +101,7 @@ export class TokenMetaUtils {
: undefined
}
- getMetaByErc20Address(address: string): TokenMeta | undefined {
+ getMetaByErc20Address(address: string): TokenMetaBase | undefined {
const { tokensByErc20Address } = this
const contractAddress =
address.toLowerCase() as keyof typeof tokensByErc20Address
@@ -96,9 +119,17 @@ export class TokenMetaUtils {
if (checksumAddress) {
const tokenMeta = tokensByErc20Address[checksumAddress]
+ if (tokenMeta.erc20) {
+ return {
+ ...tokenMeta,
+ tokenType: TokenType.Erc20,
+ tokenVerification: TokenVerification.Verified,
+ }
+ }
+
return {
...tokenMeta,
- tokenType: tokenMeta.erc20 ? TokenType.Erc20 : TokenType.Evm,
+ tokenType: TokenType.Evm,
tokenVerification: TokenVerification.Verified,
}
}
@@ -109,16 +140,26 @@ export class TokenMetaUtils {
const tokenMeta =
tokensByErc20Address[contractAddress] || tokensByErc20Address[address]
- return tokenMeta
- ? {
- ...tokenMeta,
- tokenType: tokenMeta.erc20 ? TokenType.Erc20 : TokenType.Evm,
- tokenVerification: TokenVerification.Verified,
- }
- : undefined
+ if (!tokenMeta) {
+ return undefined
+ }
+
+ if (tokenMeta.erc20) {
+ return {
+ ...tokenMeta,
+ tokenType: TokenType.Erc20,
+ tokenVerification: TokenVerification.Verified,
+ }
+ }
+
+ return {
+ ...tokenMeta,
+ tokenType: TokenType.Evm,
+ tokenVerification: TokenVerification.Verified,
+ }
}
- getMetaByHash(hash: string): TokenMeta | undefined {
+ getMetaByHash(hash: string): TokenMetaBase | undefined {
const { tokensByHash } = this
const ibcHash = hash
.toUpperCase()
@@ -139,22 +180,6 @@ export class TokenMetaUtils {
: undefined
}
- getMetaByName(name: string): TokenMeta | undefined {
- const { tokensByName } = this
- const tokenName = name.toLowerCase() as keyof typeof tokensByName
-
- if (!tokensByName[tokenName] && !tokensByName[name]) {
- return
- }
-
- const tokenMeta = tokensByName[tokenName] || tokensByName[name]
-
- return {
- ...tokenMeta,
- tokenVerification: TokenVerification.Verified,
- }
- }
-
getCoinGeckoIdFromSymbol(symbol: string): string {
const { tokens: tokensBySymbol } = this
const symbolToUppercase =
diff --git a/packages/token-metadata/src/TokenMetaUtilsFactory.ts b/deprecated/token-metadata/src/TokenMetaUtilsFactory.ts
similarity index 100%
rename from packages/token-metadata/src/TokenMetaUtilsFactory.ts
rename to deprecated/token-metadata/src/TokenMetaUtilsFactory.ts
diff --git a/packages/token-metadata/src/ibc/channels.ts b/deprecated/token-metadata/src/ibc/channels.ts
similarity index 92%
rename from packages/token-metadata/src/ibc/channels.ts
rename to deprecated/token-metadata/src/ibc/channels.ts
index a504b150b..89034dd19 100644
--- a/packages/token-metadata/src/ibc/channels.ts
+++ b/deprecated/token-metadata/src/ibc/channels.ts
@@ -18,6 +18,9 @@ export enum CanonicalChannelToDestinationChannel {
Noble = 'channel-148',
Celestia = 'channel-152',
Kujira = 'channel-98',
+ Gateway = 'channel-183',
+ Andromeda = 'channel-213',
+ Neutron = 'channel-177',
}
/**
@@ -45,6 +48,7 @@ const legacyCanonicalChannels = {
'channel-23': { chainA: 'Secret Network', chainB: 'Injective' },
'channel-59': { chainA: 'Juno', chainB: 'Injective' },
'channel-6': { chainA: 'Stride', chainB: 'Injective' },
+ 'channel-183': { chainA: 'Gateway', chainB: 'Injective' },
}
/**
@@ -62,13 +66,13 @@ export const canonicalChannelsToChainMapFromInjective = {
'channel-78': { chainA: 'Injective', chainB: 'Juno' },
'channel-89': { chainA: 'Injective', chainB: 'Stride' },
'channel-23': { chainA: 'Injective', chainB: 'Crescent' },
- 'channel-13': { chainA: 'Injective', chainB: '' },
'channel-93': { chainA: 'Injective', chainB: 'Sommelier' },
'channel-99': { chainA: 'Injective', chainB: 'Canto' },
'channel-102': { chainA: 'Injective', chainB: 'Migaloo' },
'channel-104': { chainA: 'Injective', chainB: 'Terra2' },
'channel-105': { chainA: 'Injective', chainB: 'Terra2' },
'channel-143': { chainA: 'Injective', chainB: 'Kava' },
+ 'channel-13': { chainA: 'Injective', chainB: 'Gateway' },
}
export const canonicalChannelsToChainList = [
@@ -91,6 +95,8 @@ export const canonicalChannelsToChainList = [
{ channelId: 'channel-31', chainA: 'Noble', chainB: 'Injective' },
{ channelId: 'channel-7', chainA: 'Celestia', chainB: 'Injective' },
{ channelId: 'channel-54', chainA: 'Kujira', chainB: 'Injective' },
+ { channelId: 'channel-13', chainA: 'Andromeda', chainB: 'Injective' },
+ { channelId: 'channel-60', chainA: 'Neutron', chainB: 'Injective' },
{ channelId: 'channel-1', chainA: 'Injective', chainB: 'CosmosHub' },
{ channelId: 'channel-83', chainA: 'Injective', chainB: 'Evmos' },
{ channelId: 'channel-8', chainA: 'Injective', chainB: 'Osmosis' },
@@ -115,7 +121,9 @@ export const canonicalChannelsToChainList = [
{ channelId: 'channel-147', chainA: 'Injective', chainB: 'Oraichain' },
{ channelId: 'channel-148', chainA: 'Injective', chainB: 'Noble' },
{ channelId: 'channel-152', chainA: 'Injective', chainB: 'Celestia' },
-
+ { channelId: 'channel-177', chainA: 'Injective', chainB: 'Neutron' },
+ { channelId: 'channel-183', chainA: 'Injective', chainB: 'Gateway' },
+ { channelId: 'channel-213', chainA: 'Injective', chainB: 'Andromeda' },
]
export default legacyCanonicalChannels
@@ -137,6 +145,7 @@ export const canonicalChannelIds = [
'channel-89',
'channel-90',
'channel-93',
+ 'channel-98',
'channel-99',
'channel-102',
'channel-104',
@@ -147,7 +156,10 @@ export const canonicalChannelIds = [
'channel-147',
'channel-148',
'channel-152',
- 'channel-98',
+ 'channel-177',
+ 'channel-183',
+ 'channel-213',
+ 'channel-261',
]
export const channelIbcDenomToBaseDenomMap = {
diff --git a/packages/token-metadata/src/ibc/index.ts b/deprecated/token-metadata/src/ibc/index.ts
similarity index 100%
rename from packages/token-metadata/src/ibc/index.ts
rename to deprecated/token-metadata/src/ibc/index.ts
diff --git a/packages/token-metadata/src/ibc/utils.ts b/deprecated/token-metadata/src/ibc/utils.ts
similarity index 89%
rename from packages/token-metadata/src/ibc/utils.ts
rename to deprecated/token-metadata/src/ibc/utils.ts
index df8e4ae38..f52af44a2 100644
--- a/packages/token-metadata/src/ibc/utils.ts
+++ b/deprecated/token-metadata/src/ibc/utils.ts
@@ -74,5 +74,13 @@ export const formatNonCanonicalIbcTokenName = (token: IbcToken): string => {
? foundChannelFromInjective.chainB
: 'Unknown'
+ // Fix for very long base denoms
+ if (
+ token.ibc.baseDenom.startsWith('cw20:') ||
+ token.ibc.baseDenom.startsWith('factory')
+ ) {
+ return `${token.symbol.toUpperCase()}-${lastChain.toLowerCase()}-${channelToLastChain}`
+ }
+
return `${token.ibc.baseDenom.toUpperCase()}-${lastChain.toLowerCase()}-${channelToLastChain}`
}
diff --git a/packages/token-metadata/src/images/1inch.png b/deprecated/token-metadata/src/images/1inch.png
similarity index 100%
rename from packages/token-metadata/src/images/1inch.png
rename to deprecated/token-metadata/src/images/1inch.png
diff --git a/packages/token-metadata/src/images/AAVE.png b/deprecated/token-metadata/src/images/AAVE.png
similarity index 100%
rename from packages/token-metadata/src/images/AAVE.png
rename to deprecated/token-metadata/src/images/AAVE.png
diff --git a/deprecated/token-metadata/src/images/BLACK.png b/deprecated/token-metadata/src/images/BLACK.png
new file mode 100644
index 000000000..d340bed3f
Binary files /dev/null and b/deprecated/token-metadata/src/images/BLACK.png differ
diff --git a/packages/token-metadata/src/images/DGNZ.png b/deprecated/token-metadata/src/images/DGNZ.png
similarity index 100%
rename from packages/token-metadata/src/images/DGNZ.png
rename to deprecated/token-metadata/src/images/DGNZ.png
diff --git a/packages/token-metadata/src/images/DREAM.png b/deprecated/token-metadata/src/images/DREAM.png
similarity index 100%
rename from packages/token-metadata/src/images/DREAM.png
rename to deprecated/token-metadata/src/images/DREAM.png
diff --git a/deprecated/token-metadata/src/images/GLTO.png b/deprecated/token-metadata/src/images/GLTO.png
new file mode 100644
index 000000000..b470adef4
Binary files /dev/null and b/deprecated/token-metadata/src/images/GLTO.png differ
diff --git a/deprecated/token-metadata/src/images/IKINGS.png b/deprecated/token-metadata/src/images/IKINGS.png
new file mode 100644
index 000000000..b9a74d917
Binary files /dev/null and b/deprecated/token-metadata/src/images/IKINGS.png differ
diff --git a/packages/token-metadata/src/images/INJECT.png b/deprecated/token-metadata/src/images/INJECT.png
similarity index 100%
rename from packages/token-metadata/src/images/INJECT.png
rename to deprecated/token-metadata/src/images/INJECT.png
diff --git a/packages/token-metadata/src/images/INJINEER.png b/deprecated/token-metadata/src/images/INJINEER.png
similarity index 100%
rename from packages/token-metadata/src/images/INJINEER.png
rename to deprecated/token-metadata/src/images/INJINEER.png
diff --git a/deprecated/token-metadata/src/images/NBlogo.png b/deprecated/token-metadata/src/images/NBlogo.png
new file mode 100644
index 000000000..39ec03e34
Binary files /dev/null and b/deprecated/token-metadata/src/images/NBlogo.png differ
diff --git a/packages/token-metadata/src/images/PUNK.png b/deprecated/token-metadata/src/images/PUNK.png
similarity index 100%
rename from packages/token-metadata/src/images/PUNK.png
rename to deprecated/token-metadata/src/images/PUNK.png
diff --git a/deprecated/token-metadata/src/images/WOSMO.png b/deprecated/token-metadata/src/images/WOSMO.png
new file mode 100644
index 000000000..41aa9e5f9
Binary files /dev/null and b/deprecated/token-metadata/src/images/WOSMO.png differ
diff --git a/deprecated/token-metadata/src/images/alien.png b/deprecated/token-metadata/src/images/alien.png
new file mode 100644
index 000000000..7c61970dd
Binary files /dev/null and b/deprecated/token-metadata/src/images/alien.png differ
diff --git a/packages/token-metadata/src/images/alpha.png b/deprecated/token-metadata/src/images/alpha.png
similarity index 100%
rename from packages/token-metadata/src/images/alpha.png
rename to deprecated/token-metadata/src/images/alpha.png
diff --git a/deprecated/token-metadata/src/images/andromeda.webp b/deprecated/token-metadata/src/images/andromeda.webp
new file mode 100644
index 000000000..51cb08e71
Binary files /dev/null and b/deprecated/token-metadata/src/images/andromeda.webp differ
diff --git a/packages/token-metadata/src/images/aoi.webp b/deprecated/token-metadata/src/images/aoi.webp
similarity index 100%
rename from packages/token-metadata/src/images/aoi.webp
rename to deprecated/token-metadata/src/images/aoi.webp
diff --git a/packages/token-metadata/src/images/ape.png b/deprecated/token-metadata/src/images/ape.png
similarity index 100%
rename from packages/token-metadata/src/images/ape.png
rename to deprecated/token-metadata/src/images/ape.png
diff --git a/packages/token-metadata/src/images/app.jpeg b/deprecated/token-metadata/src/images/app.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/app.jpeg
rename to deprecated/token-metadata/src/images/app.jpeg
diff --git a/packages/token-metadata/src/images/arb-circle.png b/deprecated/token-metadata/src/images/arb-circle.png
similarity index 100%
rename from packages/token-metadata/src/images/arb-circle.png
rename to deprecated/token-metadata/src/images/arb-circle.png
diff --git a/packages/token-metadata/src/images/arb.png b/deprecated/token-metadata/src/images/arb.png
similarity index 100%
rename from packages/token-metadata/src/images/arb.png
rename to deprecated/token-metadata/src/images/arb.png
diff --git a/deprecated/token-metadata/src/images/asg.png b/deprecated/token-metadata/src/images/asg.png
new file mode 100644
index 000000000..63f9c615e
Binary files /dev/null and b/deprecated/token-metadata/src/images/asg.png differ
diff --git a/packages/token-metadata/src/images/astar.png b/deprecated/token-metadata/src/images/astar.png
similarity index 100%
rename from packages/token-metadata/src/images/astar.png
rename to deprecated/token-metadata/src/images/astar.png
diff --git a/packages/token-metadata/src/images/astroport.png b/deprecated/token-metadata/src/images/astroport.png
similarity index 100%
rename from packages/token-metadata/src/images/astroport.png
rename to deprecated/token-metadata/src/images/astroport.png
diff --git a/packages/token-metadata/src/images/atom.png b/deprecated/token-metadata/src/images/atom.png
similarity index 100%
rename from packages/token-metadata/src/images/atom.png
rename to deprecated/token-metadata/src/images/atom.png
diff --git a/packages/token-metadata/src/images/autism.png b/deprecated/token-metadata/src/images/autism.png
similarity index 100%
rename from packages/token-metadata/src/images/autism.png
rename to deprecated/token-metadata/src/images/autism.png
diff --git a/packages/token-metadata/src/images/avax.webp b/deprecated/token-metadata/src/images/avax.webp
similarity index 100%
rename from packages/token-metadata/src/images/avax.webp
rename to deprecated/token-metadata/src/images/avax.webp
diff --git a/packages/token-metadata/src/images/axelar.png b/deprecated/token-metadata/src/images/axelar.png
similarity index 100%
rename from packages/token-metadata/src/images/axelar.png
rename to deprecated/token-metadata/src/images/axelar.png
diff --git a/packages/token-metadata/src/images/axs.png b/deprecated/token-metadata/src/images/axs.png
similarity index 100%
rename from packages/token-metadata/src/images/axs.png
rename to deprecated/token-metadata/src/images/axs.png
diff --git a/packages/token-metadata/src/images/babykira.png b/deprecated/token-metadata/src/images/babykira.png
similarity index 100%
rename from packages/token-metadata/src/images/babykira.png
rename to deprecated/token-metadata/src/images/babykira.png
diff --git a/packages/token-metadata/src/images/babyninja.png b/deprecated/token-metadata/src/images/babyninja.png
similarity index 100%
rename from packages/token-metadata/src/images/babyninja.png
rename to deprecated/token-metadata/src/images/babyninja.png
diff --git a/deprecated/token-metadata/src/images/band.webp b/deprecated/token-metadata/src/images/band.webp
new file mode 100644
index 000000000..8142c768b
Binary files /dev/null and b/deprecated/token-metadata/src/images/band.webp differ
diff --git a/packages/token-metadata/src/images/bat.png b/deprecated/token-metadata/src/images/bat.png
similarity index 100%
rename from packages/token-metadata/src/images/bat.png
rename to deprecated/token-metadata/src/images/bat.png
diff --git a/packages/token-metadata/src/images/bayc.png b/deprecated/token-metadata/src/images/bayc.png
similarity index 100%
rename from packages/token-metadata/src/images/bayc.png
rename to deprecated/token-metadata/src/images/bayc.png
diff --git a/deprecated/token-metadata/src/images/beast.png b/deprecated/token-metadata/src/images/beast.png
new file mode 100644
index 000000000..accf9f722
Binary files /dev/null and b/deprecated/token-metadata/src/images/beast.png differ
diff --git a/packages/token-metadata/src/images/bird.png b/deprecated/token-metadata/src/images/bird.png
similarity index 100%
rename from packages/token-metadata/src/images/bird.png
rename to deprecated/token-metadata/src/images/bird.png
diff --git a/packages/token-metadata/src/images/bitcoin.png b/deprecated/token-metadata/src/images/bitcoin.png
similarity index 100%
rename from packages/token-metadata/src/images/bitcoin.png
rename to deprecated/token-metadata/src/images/bitcoin.png
diff --git a/deprecated/token-metadata/src/images/bitmos.png b/deprecated/token-metadata/src/images/bitmos.png
new file mode 100644
index 000000000..49e18db94
Binary files /dev/null and b/deprecated/token-metadata/src/images/bitmos.png differ
diff --git a/deprecated/token-metadata/src/images/bits.png b/deprecated/token-metadata/src/images/bits.png
new file mode 100644
index 000000000..15f5836df
Binary files /dev/null and b/deprecated/token-metadata/src/images/bits.png differ
diff --git a/deprecated/token-metadata/src/images/blackINJ.png b/deprecated/token-metadata/src/images/blackINJ.png
new file mode 100644
index 000000000..b17d07c7b
Binary files /dev/null and b/deprecated/token-metadata/src/images/blackINJ.png differ
diff --git a/packages/token-metadata/src/images/bnb.png b/deprecated/token-metadata/src/images/bnb.png
similarity index 100%
rename from packages/token-metadata/src/images/bnb.png
rename to deprecated/token-metadata/src/images/bnb.png
diff --git a/deprecated/token-metadata/src/images/boden.png b/deprecated/token-metadata/src/images/boden.png
new file mode 100644
index 000000000..58ad917e9
Binary files /dev/null and b/deprecated/token-metadata/src/images/boden.png differ
diff --git a/deprecated/token-metadata/src/images/bonjo.png b/deprecated/token-metadata/src/images/bonjo.png
new file mode 100644
index 000000000..d9c9fa30d
Binary files /dev/null and b/deprecated/token-metadata/src/images/bonjo.png differ
diff --git a/packages/token-metadata/src/images/bonk.jpeg b/deprecated/token-metadata/src/images/bonk.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/bonk.jpeg
rename to deprecated/token-metadata/src/images/bonk.jpeg
diff --git a/deprecated/token-metadata/src/images/bonus-block.png b/deprecated/token-metadata/src/images/bonus-block.png
new file mode 100644
index 000000000..1d3599b1a
Binary files /dev/null and b/deprecated/token-metadata/src/images/bonus-block.png differ
diff --git a/deprecated/token-metadata/src/images/bonus-block.webp b/deprecated/token-metadata/src/images/bonus-block.webp
new file mode 100644
index 000000000..368945c0c
Binary files /dev/null and b/deprecated/token-metadata/src/images/bonus-block.webp differ
diff --git a/packages/token-metadata/src/images/brett.jpeg b/deprecated/token-metadata/src/images/brett.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/brett.jpeg
rename to deprecated/token-metadata/src/images/brett.jpeg
diff --git a/packages/token-metadata/src/images/brz.png b/deprecated/token-metadata/src/images/brz.png
similarity index 100%
rename from packages/token-metadata/src/images/brz.png
rename to deprecated/token-metadata/src/images/brz.png
diff --git a/deprecated/token-metadata/src/images/bskt.png b/deprecated/token-metadata/src/images/bskt.png
new file mode 100644
index 000000000..6d429d628
Binary files /dev/null and b/deprecated/token-metadata/src/images/bskt.png differ
diff --git a/packages/token-metadata/src/images/btsg.png b/deprecated/token-metadata/src/images/btsg.png
similarity index 100%
rename from packages/token-metadata/src/images/btsg.png
rename to deprecated/token-metadata/src/images/btsg.png
diff --git a/packages/token-metadata/src/images/bulls.png b/deprecated/token-metadata/src/images/bulls.png
similarity index 100%
rename from packages/token-metadata/src/images/bulls.png
rename to deprecated/token-metadata/src/images/bulls.png
diff --git a/packages/token-metadata/src/images/busd.png b/deprecated/token-metadata/src/images/busd.png
similarity index 100%
rename from packages/token-metadata/src/images/busd.png
rename to deprecated/token-metadata/src/images/busd.png
diff --git a/deprecated/token-metadata/src/images/cad.svg b/deprecated/token-metadata/src/images/cad.svg
new file mode 100644
index 000000000..75973b878
--- /dev/null
+++ b/deprecated/token-metadata/src/images/cad.svg
@@ -0,0 +1,6 @@
+
diff --git a/packages/token-metadata/src/images/canto.webp b/deprecated/token-metadata/src/images/canto.webp
similarity index 100%
rename from packages/token-metadata/src/images/canto.webp
rename to deprecated/token-metadata/src/images/canto.webp
diff --git a/packages/token-metadata/src/images/cel.png b/deprecated/token-metadata/src/images/cel.png
similarity index 100%
rename from packages/token-metadata/src/images/cel.png
rename to deprecated/token-metadata/src/images/cel.png
diff --git a/packages/token-metadata/src/images/cell.png b/deprecated/token-metadata/src/images/cell.png
similarity index 100%
rename from packages/token-metadata/src/images/cell.png
rename to deprecated/token-metadata/src/images/cell.png
diff --git a/packages/token-metadata/src/images/chainlink.png b/deprecated/token-metadata/src/images/chainlink.png
similarity index 100%
rename from packages/token-metadata/src/images/chainlink.png
rename to deprecated/token-metadata/src/images/chainlink.png
diff --git a/packages/token-metadata/src/images/chihuahua.jpeg b/deprecated/token-metadata/src/images/chihuahua.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/chihuahua.jpeg
rename to deprecated/token-metadata/src/images/chihuahua.jpeg
diff --git a/packages/token-metadata/src/images/chz.png b/deprecated/token-metadata/src/images/chz.png
similarity index 100%
rename from packages/token-metadata/src/images/chz.png
rename to deprecated/token-metadata/src/images/chz.png
diff --git a/deprecated/token-metadata/src/images/clon1.png b/deprecated/token-metadata/src/images/clon1.png
new file mode 100644
index 000000000..5d52ec98b
Binary files /dev/null and b/deprecated/token-metadata/src/images/clon1.png differ
diff --git a/packages/token-metadata/src/images/cock.png b/deprecated/token-metadata/src/images/cock.png
similarity index 100%
rename from packages/token-metadata/src/images/cock.png
rename to deprecated/token-metadata/src/images/cock.png
diff --git a/deprecated/token-metadata/src/images/coke.webp b/deprecated/token-metadata/src/images/coke.webp
new file mode 100644
index 000000000..623176a97
Binary files /dev/null and b/deprecated/token-metadata/src/images/coke.webp differ
diff --git a/packages/token-metadata/src/images/comp.png b/deprecated/token-metadata/src/images/comp.png
similarity index 100%
rename from packages/token-metadata/src/images/comp.png
rename to deprecated/token-metadata/src/images/comp.png
diff --git a/packages/token-metadata/src/images/crescent.jpeg b/deprecated/token-metadata/src/images/crescent.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/crescent.jpeg
rename to deprecated/token-metadata/src/images/crescent.jpeg
diff --git a/packages/token-metadata/src/images/cvr.png b/deprecated/token-metadata/src/images/cvr.png
similarity index 100%
rename from packages/token-metadata/src/images/cvr.png
rename to deprecated/token-metadata/src/images/cvr.png
diff --git a/packages/token-metadata/src/images/cw20.png b/deprecated/token-metadata/src/images/cw20.png
similarity index 100%
rename from packages/token-metadata/src/images/cw20.png
rename to deprecated/token-metadata/src/images/cw20.png
diff --git a/packages/token-metadata/src/images/dai.png b/deprecated/token-metadata/src/images/dai.png
similarity index 100%
rename from packages/token-metadata/src/images/dai.png
rename to deprecated/token-metadata/src/images/dai.png
diff --git a/deprecated/token-metadata/src/images/ddl.png b/deprecated/token-metadata/src/images/ddl.png
new file mode 100644
index 000000000..f43ccf2b7
Binary files /dev/null and b/deprecated/token-metadata/src/images/ddl.png differ
diff --git a/packages/token-metadata/src/images/defi5.png b/deprecated/token-metadata/src/images/defi5.png
similarity index 100%
rename from packages/token-metadata/src/images/defi5.png
rename to deprecated/token-metadata/src/images/defi5.png
diff --git a/packages/token-metadata/src/images/derivativeVault.png b/deprecated/token-metadata/src/images/derivativeVault.png
similarity index 100%
rename from packages/token-metadata/src/images/derivativeVault.png
rename to deprecated/token-metadata/src/images/derivativeVault.png
diff --git a/deprecated/token-metadata/src/images/dinj.svg b/deprecated/token-metadata/src/images/dinj.svg
new file mode 100644
index 000000000..07e92e4ec
--- /dev/null
+++ b/deprecated/token-metadata/src/images/dinj.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/deprecated/token-metadata/src/images/dogecoin.webp b/deprecated/token-metadata/src/images/dogecoin.webp
new file mode 100644
index 000000000..a3f5fd2f3
Binary files /dev/null and b/deprecated/token-metadata/src/images/dogecoin.webp differ
diff --git a/packages/token-metadata/src/images/doj.png b/deprecated/token-metadata/src/images/doj.png
similarity index 100%
rename from packages/token-metadata/src/images/doj.png
rename to deprecated/token-metadata/src/images/doj.png
diff --git a/deprecated/token-metadata/src/images/dojo-token.png b/deprecated/token-metadata/src/images/dojo-token.png
new file mode 100644
index 000000000..a66bc361c
Binary files /dev/null and b/deprecated/token-metadata/src/images/dojo-token.png differ
diff --git a/packages/token-metadata/src/images/dojo.png b/deprecated/token-metadata/src/images/dojo.png
similarity index 100%
rename from packages/token-metadata/src/images/dojo.png
rename to deprecated/token-metadata/src/images/dojo.png
diff --git a/deprecated/token-metadata/src/images/dojo.svg b/deprecated/token-metadata/src/images/dojo.svg
new file mode 100644
index 000000000..e25cb677b
--- /dev/null
+++ b/deprecated/token-metadata/src/images/dojo.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/packages/token-metadata/src/images/dot.jpeg b/deprecated/token-metadata/src/images/dot.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/dot.jpeg
rename to deprecated/token-metadata/src/images/dot.jpeg
diff --git a/deprecated/token-metadata/src/images/drogo.png b/deprecated/token-metadata/src/images/drogo.png
new file mode 100644
index 000000000..0074739ed
Binary files /dev/null and b/deprecated/token-metadata/src/images/drogo.png differ
diff --git a/packages/token-metadata/src/images/dude.png b/deprecated/token-metadata/src/images/dude.png
similarity index 100%
rename from packages/token-metadata/src/images/dude.png
rename to deprecated/token-metadata/src/images/dude.png
diff --git a/packages/token-metadata/src/images/dydx.png b/deprecated/token-metadata/src/images/dydx.png
similarity index 100%
rename from packages/token-metadata/src/images/dydx.png
rename to deprecated/token-metadata/src/images/dydx.png
diff --git a/packages/token-metadata/src/images/ecoomi.png b/deprecated/token-metadata/src/images/ecoomi.png
similarity index 100%
rename from packages/token-metadata/src/images/ecoomi.png
rename to deprecated/token-metadata/src/images/ecoomi.png
diff --git a/packages/token-metadata/src/images/enj.png b/deprecated/token-metadata/src/images/enj.png
similarity index 100%
rename from packages/token-metadata/src/images/enj.png
rename to deprecated/token-metadata/src/images/enj.png
diff --git a/packages/token-metadata/src/images/eric.png b/deprecated/token-metadata/src/images/eric.png
similarity index 100%
rename from packages/token-metadata/src/images/eric.png
rename to deprecated/token-metadata/src/images/eric.png
diff --git a/packages/token-metadata/src/images/ethbtctrend.png b/deprecated/token-metadata/src/images/ethbtctrend.png
similarity index 100%
rename from packages/token-metadata/src/images/ethbtctrend.png
rename to deprecated/token-metadata/src/images/ethbtctrend.png
diff --git a/deprecated/token-metadata/src/images/ethena.webp b/deprecated/token-metadata/src/images/ethena.webp
new file mode 100644
index 000000000..6c96c90f7
Binary files /dev/null and b/deprecated/token-metadata/src/images/ethena.webp differ
diff --git a/packages/token-metadata/src/images/ethereum.png b/deprecated/token-metadata/src/images/ethereum.png
similarity index 100%
rename from packages/token-metadata/src/images/ethereum.png
rename to deprecated/token-metadata/src/images/ethereum.png
diff --git a/deprecated/token-metadata/src/images/eur.svg b/deprecated/token-metadata/src/images/eur.svg
new file mode 100644
index 000000000..1af32da30
--- /dev/null
+++ b/deprecated/token-metadata/src/images/eur.svg
@@ -0,0 +1,6 @@
+
diff --git a/packages/token-metadata/src/images/evai.png b/deprecated/token-metadata/src/images/evai.png
similarity index 100%
rename from packages/token-metadata/src/images/evai.png
rename to deprecated/token-metadata/src/images/evai.png
diff --git a/packages/token-metadata/src/images/evmos.png b/deprecated/token-metadata/src/images/evmos.png
similarity index 100%
rename from packages/token-metadata/src/images/evmos.png
rename to deprecated/token-metadata/src/images/evmos.png
diff --git a/packages/token-metadata/src/images/extravirginoliveinu.png b/deprecated/token-metadata/src/images/extravirginoliveinu.png
similarity index 100%
rename from packages/token-metadata/src/images/extravirginoliveinu.png
rename to deprecated/token-metadata/src/images/extravirginoliveinu.png
diff --git a/deprecated/token-metadata/src/images/ezeth.webp b/deprecated/token-metadata/src/images/ezeth.webp
new file mode 100644
index 000000000..f1314f2f0
Binary files /dev/null and b/deprecated/token-metadata/src/images/ezeth.webp differ
diff --git a/packages/token-metadata/src/images/flux.png b/deprecated/token-metadata/src/images/flux.png
similarity index 100%
rename from packages/token-metadata/src/images/flux.png
rename to deprecated/token-metadata/src/images/flux.png
diff --git a/packages/token-metadata/src/images/frcoin.png b/deprecated/token-metadata/src/images/frcoin.png
similarity index 100%
rename from packages/token-metadata/src/images/frcoin.png
rename to deprecated/token-metadata/src/images/frcoin.png
diff --git a/packages/token-metadata/src/images/ftm.png b/deprecated/token-metadata/src/images/ftm.png
similarity index 100%
rename from packages/token-metadata/src/images/ftm.png
rename to deprecated/token-metadata/src/images/ftm.png
diff --git a/packages/token-metadata/src/images/galaxy.webp b/deprecated/token-metadata/src/images/galaxy.webp
similarity index 100%
rename from packages/token-metadata/src/images/galaxy.webp
rename to deprecated/token-metadata/src/images/galaxy.webp
diff --git a/deprecated/token-metadata/src/images/gbp.svg b/deprecated/token-metadata/src/images/gbp.svg
new file mode 100644
index 000000000..757670469
--- /dev/null
+++ b/deprecated/token-metadata/src/images/gbp.svg
@@ -0,0 +1,6 @@
+
diff --git a/packages/token-metadata/src/images/gf.png b/deprecated/token-metadata/src/images/gf.png
similarity index 100%
rename from packages/token-metadata/src/images/gf.png
rename to deprecated/token-metadata/src/images/gf.png
diff --git a/packages/token-metadata/src/images/ginger.png b/deprecated/token-metadata/src/images/ginger.png
similarity index 100%
rename from packages/token-metadata/src/images/ginger.png
rename to deprecated/token-metadata/src/images/ginger.png
diff --git a/deprecated/token-metadata/src/images/gme.jpeg b/deprecated/token-metadata/src/images/gme.jpeg
new file mode 100644
index 000000000..0f4fbe873
Binary files /dev/null and b/deprecated/token-metadata/src/images/gme.jpeg differ
diff --git a/deprecated/token-metadata/src/images/gold.svg b/deprecated/token-metadata/src/images/gold.svg
new file mode 100644
index 000000000..42ca49a03
--- /dev/null
+++ b/deprecated/token-metadata/src/images/gold.svg
@@ -0,0 +1,9 @@
+
diff --git a/deprecated/token-metadata/src/images/goldie.webp b/deprecated/token-metadata/src/images/goldie.webp
new file mode 100644
index 000000000..ac5d615cb
Binary files /dev/null and b/deprecated/token-metadata/src/images/goldie.webp differ
diff --git a/packages/token-metadata/src/images/graphToken.png b/deprecated/token-metadata/src/images/graphToken.png
similarity index 100%
rename from packages/token-metadata/src/images/graphToken.png
rename to deprecated/token-metadata/src/images/graphToken.png
diff --git a/packages/token-metadata/src/images/grok.png b/deprecated/token-metadata/src/images/grok.png
similarity index 100%
rename from packages/token-metadata/src/images/grok.png
rename to deprecated/token-metadata/src/images/grok.png
diff --git a/deprecated/token-metadata/src/images/gyen.webp b/deprecated/token-metadata/src/images/gyen.webp
new file mode 100644
index 000000000..a826e08b9
Binary files /dev/null and b/deprecated/token-metadata/src/images/gyen.webp differ
diff --git a/deprecated/token-metadata/src/images/hinj.svg b/deprecated/token-metadata/src/images/hinj.svg
new file mode 100644
index 000000000..ed0c2b373
--- /dev/null
+++ b/deprecated/token-metadata/src/images/hinj.svg
@@ -0,0 +1,19 @@
+
diff --git a/packages/token-metadata/src/images/ht.png b/deprecated/token-metadata/src/images/ht.png
similarity index 100%
rename from packages/token-metadata/src/images/ht.png
rename to deprecated/token-metadata/src/images/ht.png
diff --git a/deprecated/token-metadata/src/images/hydro.png b/deprecated/token-metadata/src/images/hydro.png
new file mode 100644
index 000000000..e6d05e836
Binary files /dev/null and b/deprecated/token-metadata/src/images/hydro.png differ
diff --git a/packages/token-metadata/src/images/ibc.png b/deprecated/token-metadata/src/images/ibc.png
similarity index 100%
rename from packages/token-metadata/src/images/ibc.png
rename to deprecated/token-metadata/src/images/ibc.png
diff --git a/packages/token-metadata/src/images/incel.png b/deprecated/token-metadata/src/images/incel.png
similarity index 100%
rename from packages/token-metadata/src/images/incel.png
rename to deprecated/token-metadata/src/images/incel.png
diff --git a/packages/token-metadata/src/images/injective-black-fill.png b/deprecated/token-metadata/src/images/injective-black-fill.png
similarity index 100%
rename from packages/token-metadata/src/images/injective-black-fill.png
rename to deprecated/token-metadata/src/images/injective-black-fill.png
diff --git a/packages/token-metadata/src/images/injective-v3.png b/deprecated/token-metadata/src/images/injective-v3.png
similarity index 100%
rename from packages/token-metadata/src/images/injective-v3.png
rename to deprecated/token-metadata/src/images/injective-v3.png
diff --git a/packages/token-metadata/src/images/injex.png b/deprecated/token-metadata/src/images/injex.png
similarity index 100%
rename from packages/token-metadata/src/images/injex.png
rename to deprecated/token-metadata/src/images/injex.png
diff --git a/packages/token-metadata/src/images/injinu.png b/deprecated/token-metadata/src/images/injinu.png
similarity index 100%
rename from packages/token-metadata/src/images/injinu.png
rename to deprecated/token-metadata/src/images/injinu.png
diff --git a/deprecated/token-metadata/src/images/injx.png b/deprecated/token-metadata/src/images/injx.png
new file mode 100644
index 000000000..60f3bba93
Binary files /dev/null and b/deprecated/token-metadata/src/images/injx.png differ
diff --git a/packages/token-metadata/src/images/insurance-fund.png b/deprecated/token-metadata/src/images/insurance-fund.png
similarity index 100%
rename from packages/token-metadata/src/images/insurance-fund.png
rename to deprecated/token-metadata/src/images/insurance-fund.png
diff --git a/packages/token-metadata/src/images/ipdai.png b/deprecated/token-metadata/src/images/ipdai.png
similarity index 100%
rename from packages/token-metadata/src/images/ipdai.png
rename to deprecated/token-metadata/src/images/ipdai.png
diff --git a/deprecated/token-metadata/src/images/jpy.svg b/deprecated/token-metadata/src/images/jpy.svg
new file mode 100644
index 000000000..dbbf40773
--- /dev/null
+++ b/deprecated/token-metadata/src/images/jpy.svg
@@ -0,0 +1,6 @@
+
diff --git a/packages/token-metadata/src/images/juno.jpeg b/deprecated/token-metadata/src/images/juno.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/juno.jpeg
rename to deprecated/token-metadata/src/images/juno.jpeg
diff --git a/deprecated/token-metadata/src/images/jup.jpeg b/deprecated/token-metadata/src/images/jup.jpeg
new file mode 100644
index 000000000..1d07b37db
Binary files /dev/null and b/deprecated/token-metadata/src/images/jup.jpeg differ
diff --git a/deprecated/token-metadata/src/images/kage.png b/deprecated/token-metadata/src/images/kage.png
new file mode 100644
index 000000000..0359083ea
Binary files /dev/null and b/deprecated/token-metadata/src/images/kage.png differ
diff --git a/packages/token-metadata/src/images/karate.jpg b/deprecated/token-metadata/src/images/karate.jpg
similarity index 100%
rename from packages/token-metadata/src/images/karate.jpg
rename to deprecated/token-metadata/src/images/karate.jpg
diff --git a/packages/token-metadata/src/images/karma.png b/deprecated/token-metadata/src/images/karma.png
similarity index 100%
rename from packages/token-metadata/src/images/karma.png
rename to deprecated/token-metadata/src/images/karma.png
diff --git a/packages/token-metadata/src/images/katana.webp b/deprecated/token-metadata/src/images/katana.webp
similarity index 100%
rename from packages/token-metadata/src/images/katana.webp
rename to deprecated/token-metadata/src/images/katana.webp
diff --git a/packages/token-metadata/src/images/kava.webp b/deprecated/token-metadata/src/images/kava.webp
similarity index 100%
rename from packages/token-metadata/src/images/kava.webp
rename to deprecated/token-metadata/src/images/kava.webp
diff --git a/packages/token-metadata/src/images/kinja.png b/deprecated/token-metadata/src/images/kinja.png
similarity index 100%
rename from packages/token-metadata/src/images/kinja.png
rename to deprecated/token-metadata/src/images/kinja.png
diff --git a/packages/token-metadata/src/images/kira.jpeg b/deprecated/token-metadata/src/images/kira.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/kira.jpeg
rename to deprecated/token-metadata/src/images/kira.jpeg
diff --git a/packages/token-metadata/src/images/klaytn.webp b/deprecated/token-metadata/src/images/klaytn.webp
similarity index 100%
rename from packages/token-metadata/src/images/klaytn.webp
rename to deprecated/token-metadata/src/images/klaytn.webp
diff --git a/packages/token-metadata/src/images/kuji.webp b/deprecated/token-metadata/src/images/kuji.webp
similarity index 100%
rename from packages/token-metadata/src/images/kuji.webp
rename to deprecated/token-metadata/src/images/kuji.webp
diff --git a/packages/token-metadata/src/images/lama.webp b/deprecated/token-metadata/src/images/lama.webp
similarity index 100%
rename from packages/token-metadata/src/images/lama.webp
rename to deprecated/token-metadata/src/images/lama.webp
diff --git a/packages/token-metadata/src/images/lambo.jpeg b/deprecated/token-metadata/src/images/lambo.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/lambo.jpeg
rename to deprecated/token-metadata/src/images/lambo.jpeg
diff --git a/packages/token-metadata/src/images/lido-dao.webp b/deprecated/token-metadata/src/images/lido-dao.webp
similarity index 100%
rename from packages/token-metadata/src/images/lido-dao.webp
rename to deprecated/token-metadata/src/images/lido-dao.webp
diff --git a/deprecated/token-metadata/src/images/lior.png b/deprecated/token-metadata/src/images/lior.png
new file mode 100644
index 000000000..c0bc07172
Binary files /dev/null and b/deprecated/token-metadata/src/images/lior.png differ
diff --git a/packages/token-metadata/src/images/luna.png b/deprecated/token-metadata/src/images/luna.png
similarity index 100%
rename from packages/token-metadata/src/images/luna.png
rename to deprecated/token-metadata/src/images/luna.png
diff --git a/packages/token-metadata/src/images/lvn.png b/deprecated/token-metadata/src/images/lvn.png
similarity index 100%
rename from packages/token-metadata/src/images/lvn.png
rename to deprecated/token-metadata/src/images/lvn.png
diff --git a/packages/token-metadata/src/images/lympo.png b/deprecated/token-metadata/src/images/lympo.png
similarity index 100%
rename from packages/token-metadata/src/images/lympo.png
rename to deprecated/token-metadata/src/images/lympo.png
diff --git a/packages/token-metadata/src/images/maga.png b/deprecated/token-metadata/src/images/maga.png
similarity index 100%
rename from packages/token-metadata/src/images/maga.png
rename to deprecated/token-metadata/src/images/maga.png
diff --git a/packages/token-metadata/src/images/matic.png b/deprecated/token-metadata/src/images/matic.png
similarity index 100%
rename from packages/token-metadata/src/images/matic.png
rename to deprecated/token-metadata/src/images/matic.png
diff --git a/packages/token-metadata/src/images/matic.webp b/deprecated/token-metadata/src/images/matic.webp
similarity index 100%
rename from packages/token-metadata/src/images/matic.webp
rename to deprecated/token-metadata/src/images/matic.webp
diff --git a/packages/token-metadata/src/images/meme.png b/deprecated/token-metadata/src/images/meme.png
similarity index 100%
rename from packages/token-metadata/src/images/meme.png
rename to deprecated/token-metadata/src/images/meme.png
diff --git a/packages/token-metadata/src/images/mila.png b/deprecated/token-metadata/src/images/mila.png
similarity index 100%
rename from packages/token-metadata/src/images/mila.png
rename to deprecated/token-metadata/src/images/mila.png
diff --git a/packages/token-metadata/src/images/milk.png b/deprecated/token-metadata/src/images/milk.png
similarity index 100%
rename from packages/token-metadata/src/images/milk.png
rename to deprecated/token-metadata/src/images/milk.png
diff --git a/deprecated/token-metadata/src/images/mito-test.png b/deprecated/token-metadata/src/images/mito-test.png
new file mode 100644
index 000000000..fc0093390
Binary files /dev/null and b/deprecated/token-metadata/src/images/mito-test.png differ
diff --git a/deprecated/token-metadata/src/images/monksimg.png b/deprecated/token-metadata/src/images/monksimg.png
new file mode 100644
index 000000000..2e753edeb
Binary files /dev/null and b/deprecated/token-metadata/src/images/monksimg.png differ
diff --git a/packages/token-metadata/src/images/moonify.png b/deprecated/token-metadata/src/images/moonify.png
similarity index 100%
rename from packages/token-metadata/src/images/moonify.png
rename to deprecated/token-metadata/src/images/moonify.png
diff --git a/deprecated/token-metadata/src/images/mother.webp b/deprecated/token-metadata/src/images/mother.webp
new file mode 100644
index 000000000..ea6dc7426
Binary files /dev/null and b/deprecated/token-metadata/src/images/mother.webp differ
diff --git a/deprecated/token-metadata/src/images/natom.png b/deprecated/token-metadata/src/images/natom.png
new file mode 100644
index 000000000..4f7b01dc9
Binary files /dev/null and b/deprecated/token-metadata/src/images/natom.png differ
diff --git a/deprecated/token-metadata/src/images/nbz.png b/deprecated/token-metadata/src/images/nbz.png
new file mode 100644
index 000000000..72d1bfed9
Binary files /dev/null and b/deprecated/token-metadata/src/images/nbz.png differ
diff --git a/packages/token-metadata/src/images/nebula.png b/deprecated/token-metadata/src/images/nebula.png
similarity index 100%
rename from packages/token-metadata/src/images/nebula.png
rename to deprecated/token-metadata/src/images/nebula.png
diff --git a/packages/token-metadata/src/images/neok.png b/deprecated/token-metadata/src/images/neok.png
similarity index 100%
rename from packages/token-metadata/src/images/neok.png
rename to deprecated/token-metadata/src/images/neok.png
diff --git a/deprecated/token-metadata/src/images/neptinj.png b/deprecated/token-metadata/src/images/neptinj.png
new file mode 100644
index 000000000..4363708fd
Binary files /dev/null and b/deprecated/token-metadata/src/images/neptinj.png differ
diff --git a/packages/token-metadata/src/images/nexo.png b/deprecated/token-metadata/src/images/nexo.png
similarity index 100%
rename from packages/token-metadata/src/images/nexo.png
rename to deprecated/token-metadata/src/images/nexo.png
diff --git a/packages/token-metadata/src/images/ninj.png b/deprecated/token-metadata/src/images/ninj.png
similarity index 100%
rename from packages/token-metadata/src/images/ninj.png
rename to deprecated/token-metadata/src/images/ninj.png
diff --git a/deprecated/token-metadata/src/images/ninja.png b/deprecated/token-metadata/src/images/ninja.png
new file mode 100644
index 000000000..3246e8179
Binary files /dev/null and b/deprecated/token-metadata/src/images/ninja.png differ
diff --git a/packages/token-metadata/src/images/ninjb.png b/deprecated/token-metadata/src/images/ninjb.png
similarity index 100%
rename from packages/token-metadata/src/images/ninjb.png
rename to deprecated/token-metadata/src/images/ninjb.png
diff --git a/deprecated/token-metadata/src/images/nlc.png b/deprecated/token-metadata/src/images/nlc.png
new file mode 100644
index 000000000..d126dc586
Binary files /dev/null and b/deprecated/token-metadata/src/images/nlc.png differ
diff --git a/packages/token-metadata/src/images/nobi.jpeg b/deprecated/token-metadata/src/images/nobi.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/nobi.jpeg
rename to deprecated/token-metadata/src/images/nobi.jpeg
diff --git a/packages/token-metadata/src/images/nobi.webp b/deprecated/token-metadata/src/images/nobi.webp
similarity index 100%
rename from packages/token-metadata/src/images/nobi.webp
rename to deprecated/token-metadata/src/images/nobi.webp
diff --git a/packages/token-metadata/src/images/noia.png b/deprecated/token-metadata/src/images/noia.png
similarity index 100%
rename from packages/token-metadata/src/images/noia.png
rename to deprecated/token-metadata/src/images/noia.png
diff --git a/packages/token-metadata/src/images/nois.png b/deprecated/token-metadata/src/images/nois.png
similarity index 100%
rename from packages/token-metadata/src/images/nois.png
rename to deprecated/token-metadata/src/images/nois.png
diff --git a/packages/token-metadata/src/images/none.webp b/deprecated/token-metadata/src/images/none.webp
similarity index 100%
rename from packages/token-metadata/src/images/none.webp
rename to deprecated/token-metadata/src/images/none.webp
diff --git a/deprecated/token-metadata/src/images/nonja.png b/deprecated/token-metadata/src/images/nonja.png
new file mode 100644
index 000000000..b96f88108
Binary files /dev/null and b/deprecated/token-metadata/src/images/nonja.png differ
diff --git a/packages/token-metadata/src/images/npepe.png b/deprecated/token-metadata/src/images/npepe.png
similarity index 100%
rename from packages/token-metadata/src/images/npepe.png
rename to deprecated/token-metadata/src/images/npepe.png
diff --git a/deprecated/token-metadata/src/images/nusdt.png b/deprecated/token-metadata/src/images/nusdt.png
new file mode 100644
index 000000000..efa10e2f1
Binary files /dev/null and b/deprecated/token-metadata/src/images/nusdt.png differ
diff --git a/deprecated/token-metadata/src/images/nweth.png b/deprecated/token-metadata/src/images/nweth.png
new file mode 100644
index 000000000..0de42cca9
Binary files /dev/null and b/deprecated/token-metadata/src/images/nweth.png differ
diff --git a/packages/token-metadata/src/images/ocean.png b/deprecated/token-metadata/src/images/ocean.png
similarity index 100%
rename from packages/token-metadata/src/images/ocean.png
rename to deprecated/token-metadata/src/images/ocean.png
diff --git a/packages/token-metadata/src/images/omi.png b/deprecated/token-metadata/src/images/omi.png
similarity index 100%
rename from packages/token-metadata/src/images/omi.png
rename to deprecated/token-metadata/src/images/omi.png
diff --git a/deprecated/token-metadata/src/images/omni.png b/deprecated/token-metadata/src/images/omni.png
new file mode 100644
index 000000000..7e16744a0
Binary files /dev/null and b/deprecated/token-metadata/src/images/omni.png differ
diff --git a/deprecated/token-metadata/src/images/optimism.webp b/deprecated/token-metadata/src/images/optimism.webp
new file mode 100644
index 000000000..74c446fe2
Binary files /dev/null and b/deprecated/token-metadata/src/images/optimism.webp differ
diff --git a/packages/token-metadata/src/images/orai.png b/deprecated/token-metadata/src/images/orai.png
similarity index 100%
rename from packages/token-metadata/src/images/orai.png
rename to deprecated/token-metadata/src/images/orai.png
diff --git a/deprecated/token-metadata/src/images/orne.png b/deprecated/token-metadata/src/images/orne.png
new file mode 100644
index 000000000..c32d031f7
Binary files /dev/null and b/deprecated/token-metadata/src/images/orne.png differ
diff --git a/packages/token-metadata/src/images/osmo.png b/deprecated/token-metadata/src/images/osmo.png
similarity index 100%
rename from packages/token-metadata/src/images/osmo.png
rename to deprecated/token-metadata/src/images/osmo.png
diff --git a/packages/token-metadata/src/images/ox.png b/deprecated/token-metadata/src/images/ox.png
similarity index 100%
rename from packages/token-metadata/src/images/ox.png
rename to deprecated/token-metadata/src/images/ox.png
diff --git a/packages/token-metadata/src/images/panda.png b/deprecated/token-metadata/src/images/panda.png
similarity index 100%
rename from packages/token-metadata/src/images/panda.png
rename to deprecated/token-metadata/src/images/panda.png
diff --git a/packages/token-metadata/src/images/paxg.png b/deprecated/token-metadata/src/images/paxg.png
similarity index 100%
rename from packages/token-metadata/src/images/paxg.png
rename to deprecated/token-metadata/src/images/paxg.png
diff --git a/packages/token-metadata/src/images/pepe.jpeg b/deprecated/token-metadata/src/images/pepe.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/pepe.jpeg
rename to deprecated/token-metadata/src/images/pepe.jpeg
diff --git a/packages/token-metadata/src/images/pikachu.png b/deprecated/token-metadata/src/images/pikachu.png
similarity index 100%
rename from packages/token-metadata/src/images/pikachu.png
rename to deprecated/token-metadata/src/images/pikachu.png
diff --git a/packages/token-metadata/src/images/point.png b/deprecated/token-metadata/src/images/point.png
similarity index 100%
rename from packages/token-metadata/src/images/point.png
rename to deprecated/token-metadata/src/images/point.png
diff --git a/packages/token-metadata/src/images/polygon.png b/deprecated/token-metadata/src/images/polygon.png
similarity index 100%
rename from packages/token-metadata/src/images/polygon.png
rename to deprecated/token-metadata/src/images/polygon.png
diff --git a/packages/token-metadata/src/images/pool.png b/deprecated/token-metadata/src/images/pool.png
similarity index 100%
rename from packages/token-metadata/src/images/pool.png
rename to deprecated/token-metadata/src/images/pool.png
diff --git a/packages/token-metadata/src/images/proj.png b/deprecated/token-metadata/src/images/proj.png
similarity index 100%
rename from packages/token-metadata/src/images/proj.png
rename to deprecated/token-metadata/src/images/proj.png
diff --git a/packages/token-metadata/src/images/projx.png b/deprecated/token-metadata/src/images/projx.png
similarity index 100%
rename from packages/token-metadata/src/images/projx.png
rename to deprecated/token-metadata/src/images/projx.png
diff --git a/packages/token-metadata/src/images/puggo.jpg b/deprecated/token-metadata/src/images/puggo.jpg
similarity index 100%
rename from packages/token-metadata/src/images/puggo.jpg
rename to deprecated/token-metadata/src/images/puggo.jpg
diff --git a/deprecated/token-metadata/src/images/punk-token.webp b/deprecated/token-metadata/src/images/punk-token.webp
new file mode 100644
index 000000000..5c6300341
Binary files /dev/null and b/deprecated/token-metadata/src/images/punk-token.webp differ
diff --git a/packages/token-metadata/src/images/pyth.png b/deprecated/token-metadata/src/images/pyth.png
similarity index 100%
rename from packages/token-metadata/src/images/pyth.png
rename to deprecated/token-metadata/src/images/pyth.png
diff --git a/packages/token-metadata/src/images/qnt.png b/deprecated/token-metadata/src/images/qnt.png
similarity index 100%
rename from packages/token-metadata/src/images/qnt.png
rename to deprecated/token-metadata/src/images/qnt.png
diff --git a/deprecated/token-metadata/src/images/qunt.png b/deprecated/token-metadata/src/images/qunt.png
new file mode 100644
index 000000000..3eb6b91bf
Binary files /dev/null and b/deprecated/token-metadata/src/images/qunt.png differ
diff --git a/packages/token-metadata/src/images/rai.png b/deprecated/token-metadata/src/images/rai.png
similarity index 100%
rename from packages/token-metadata/src/images/rai.png
rename to deprecated/token-metadata/src/images/rai.png
diff --git a/deprecated/token-metadata/src/images/ramen.jpeg b/deprecated/token-metadata/src/images/ramen.jpeg
new file mode 100644
index 000000000..28b97fd69
Binary files /dev/null and b/deprecated/token-metadata/src/images/ramen.jpeg differ
diff --git a/deprecated/token-metadata/src/images/ray.png b/deprecated/token-metadata/src/images/ray.png
new file mode 100644
index 000000000..c7b6b30fa
Binary files /dev/null and b/deprecated/token-metadata/src/images/ray.png differ
diff --git a/packages/token-metadata/src/images/ribbit.jpeg b/deprecated/token-metadata/src/images/ribbit.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/ribbit.jpeg
rename to deprecated/token-metadata/src/images/ribbit.jpeg
diff --git a/deprecated/token-metadata/src/images/rice.jpeg b/deprecated/token-metadata/src/images/rice.jpeg
new file mode 100644
index 000000000..b1db61885
Binary files /dev/null and b/deprecated/token-metadata/src/images/rice.jpeg differ
diff --git a/deprecated/token-metadata/src/images/root.png b/deprecated/token-metadata/src/images/root.png
new file mode 100644
index 000000000..56d774222
Binary files /dev/null and b/deprecated/token-metadata/src/images/root.png differ
diff --git a/packages/token-metadata/src/images/rune.png b/deprecated/token-metadata/src/images/rune.png
similarity index 100%
rename from packages/token-metadata/src/images/rune.png
rename to deprecated/token-metadata/src/images/rune.png
diff --git a/deprecated/token-metadata/src/images/sae.png b/deprecated/token-metadata/src/images/sae.png
new file mode 100644
index 000000000..eec81459e
Binary files /dev/null and b/deprecated/token-metadata/src/images/sae.png differ
diff --git a/deprecated/token-metadata/src/images/saga.webp b/deprecated/token-metadata/src/images/saga.webp
new file mode 100644
index 000000000..8aa5cca0e
Binary files /dev/null and b/deprecated/token-metadata/src/images/saga.webp differ
diff --git a/packages/token-metadata/src/images/scatter.webp b/deprecated/token-metadata/src/images/scatter.webp
similarity index 100%
rename from packages/token-metadata/src/images/scatter.webp
rename to deprecated/token-metadata/src/images/scatter.webp
diff --git a/packages/token-metadata/src/images/scrt.png b/deprecated/token-metadata/src/images/scrt.png
similarity index 100%
rename from packages/token-metadata/src/images/scrt.png
rename to deprecated/token-metadata/src/images/scrt.png
diff --git a/packages/token-metadata/src/images/sdex.png b/deprecated/token-metadata/src/images/sdex.png
similarity index 100%
rename from packages/token-metadata/src/images/sdex.png
rename to deprecated/token-metadata/src/images/sdex.png
diff --git a/packages/token-metadata/src/images/sei.webp b/deprecated/token-metadata/src/images/sei.webp
similarity index 100%
rename from packages/token-metadata/src/images/sei.webp
rename to deprecated/token-metadata/src/images/sei.webp
diff --git a/packages/token-metadata/src/images/shib.png b/deprecated/token-metadata/src/images/shib.png
similarity index 100%
rename from packages/token-metadata/src/images/shib.png
rename to deprecated/token-metadata/src/images/shib.png
diff --git a/packages/token-metadata/src/images/shiba.webp b/deprecated/token-metadata/src/images/shiba.webp
similarity index 100%
rename from packages/token-metadata/src/images/shiba.webp
rename to deprecated/token-metadata/src/images/shiba.webp
diff --git a/packages/token-metadata/src/images/shuriken.jpeg b/deprecated/token-metadata/src/images/shuriken.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/shuriken.jpeg
rename to deprecated/token-metadata/src/images/shuriken.jpeg
diff --git a/packages/token-metadata/src/images/skibidi.jpeg b/deprecated/token-metadata/src/images/skibidi.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/skibidi.jpeg
rename to deprecated/token-metadata/src/images/skibidi.jpeg
diff --git a/packages/token-metadata/src/images/snowy.png b/deprecated/token-metadata/src/images/snowy.png
similarity index 100%
rename from packages/token-metadata/src/images/snowy.png
rename to deprecated/token-metadata/src/images/snowy.png
diff --git a/packages/token-metadata/src/images/solana.png b/deprecated/token-metadata/src/images/solana.png
similarity index 100%
rename from packages/token-metadata/src/images/solana.png
rename to deprecated/token-metadata/src/images/solana.png
diff --git a/packages/token-metadata/src/images/sommelier.png b/deprecated/token-metadata/src/images/sommelier.png
similarity index 100%
rename from packages/token-metadata/src/images/sommelier.png
rename to deprecated/token-metadata/src/images/sommelier.png
diff --git a/packages/token-metadata/src/images/spotVault.png b/deprecated/token-metadata/src/images/spotVault.png
similarity index 100%
rename from packages/token-metadata/src/images/spotVault.png
rename to deprecated/token-metadata/src/images/spotVault.png
diff --git a/deprecated/token-metadata/src/images/spuun.png b/deprecated/token-metadata/src/images/spuun.png
new file mode 100644
index 000000000..f576262e9
Binary files /dev/null and b/deprecated/token-metadata/src/images/spuun.png differ
diff --git a/packages/token-metadata/src/images/stacks.png b/deprecated/token-metadata/src/images/stacks.png
similarity index 100%
rename from packages/token-metadata/src/images/stacks.png
rename to deprecated/token-metadata/src/images/stacks.png
diff --git a/deprecated/token-metadata/src/images/staked-usde.webp b/deprecated/token-metadata/src/images/staked-usde.webp
new file mode 100644
index 000000000..7c1e26e35
Binary files /dev/null and b/deprecated/token-metadata/src/images/staked-usde.webp differ
diff --git a/packages/token-metadata/src/images/stars.png b/deprecated/token-metadata/src/images/stars.png
similarity index 100%
rename from packages/token-metadata/src/images/stars.png
rename to deprecated/token-metadata/src/images/stars.png
diff --git a/packages/token-metadata/src/images/steadybtc.png b/deprecated/token-metadata/src/images/steadybtc.png
similarity index 100%
rename from packages/token-metadata/src/images/steadybtc.png
rename to deprecated/token-metadata/src/images/steadybtc.png
diff --git a/packages/token-metadata/src/images/steadyeth.png b/deprecated/token-metadata/src/images/steadyeth.png
similarity index 100%
rename from packages/token-metadata/src/images/steadyeth.png
rename to deprecated/token-metadata/src/images/steadyeth.png
diff --git a/packages/token-metadata/src/images/steth.png b/deprecated/token-metadata/src/images/steth.png
similarity index 100%
rename from packages/token-metadata/src/images/steth.png
rename to deprecated/token-metadata/src/images/steth.png
diff --git a/packages/token-metadata/src/images/stinj.png b/deprecated/token-metadata/src/images/stinj.png
similarity index 100%
rename from packages/token-metadata/src/images/stinj.png
rename to deprecated/token-metadata/src/images/stinj.png
diff --git a/packages/token-metadata/src/images/stride.png b/deprecated/token-metadata/src/images/stride.png
similarity index 100%
rename from packages/token-metadata/src/images/stride.png
rename to deprecated/token-metadata/src/images/stride.png
diff --git a/deprecated/token-metadata/src/images/sui.webp b/deprecated/token-metadata/src/images/sui.webp
new file mode 100644
index 000000000..4d634f207
Binary files /dev/null and b/deprecated/token-metadata/src/images/sui.webp differ
diff --git a/deprecated/token-metadata/src/images/sushi-inj.png b/deprecated/token-metadata/src/images/sushi-inj.png
new file mode 100644
index 000000000..acee4c3cd
Binary files /dev/null and b/deprecated/token-metadata/src/images/sushi-inj.png differ
diff --git a/packages/token-metadata/src/images/sushi.png b/deprecated/token-metadata/src/images/sushi.png
similarity index 100%
rename from packages/token-metadata/src/images/sushi.png
rename to deprecated/token-metadata/src/images/sushi.png
diff --git a/packages/token-metadata/src/images/swap.png b/deprecated/token-metadata/src/images/swap.png
similarity index 100%
rename from packages/token-metadata/src/images/swap.png
rename to deprecated/token-metadata/src/images/swap.png
diff --git a/packages/token-metadata/src/images/synthetix.png b/deprecated/token-metadata/src/images/synthetix.png
similarity index 100%
rename from packages/token-metadata/src/images/synthetix.png
rename to deprecated/token-metadata/src/images/synthetix.png
diff --git a/packages/token-metadata/src/images/talis.webp b/deprecated/token-metadata/src/images/talis.webp
similarity index 100%
rename from packages/token-metadata/src/images/talis.webp
rename to deprecated/token-metadata/src/images/talis.webp
diff --git a/packages/token-metadata/src/images/tia.webp b/deprecated/token-metadata/src/images/tia.webp
similarity index 100%
rename from packages/token-metadata/src/images/tia.webp
rename to deprecated/token-metadata/src/images/tia.webp
diff --git a/packages/token-metadata/src/images/tix.png b/deprecated/token-metadata/src/images/tix.png
similarity index 100%
rename from packages/token-metadata/src/images/tix.png
rename to deprecated/token-metadata/src/images/tix.png
diff --git a/packages/token-metadata/src/images/truEVINDEX.png b/deprecated/token-metadata/src/images/truEVINDEX.png
similarity index 100%
rename from packages/token-metadata/src/images/truEVINDEX.png
rename to deprecated/token-metadata/src/images/truEVINDEX.png
diff --git a/packages/token-metadata/src/images/truflation.png b/deprecated/token-metadata/src/images/truflation.png
similarity index 100%
rename from packages/token-metadata/src/images/truflation.png
rename to deprecated/token-metadata/src/images/truflation.png
diff --git a/packages/token-metadata/src/images/trustswap.png b/deprecated/token-metadata/src/images/trustswap.png
similarity index 100%
rename from packages/token-metadata/src/images/trustswap.png
rename to deprecated/token-metadata/src/images/trustswap.png
diff --git a/packages/token-metadata/src/images/uma.png b/deprecated/token-metadata/src/images/uma.png
similarity index 100%
rename from packages/token-metadata/src/images/uma.png
rename to deprecated/token-metadata/src/images/uma.png
diff --git a/packages/token-metadata/src/images/uni.png b/deprecated/token-metadata/src/images/uni.png
similarity index 100%
rename from packages/token-metadata/src/images/uni.png
rename to deprecated/token-metadata/src/images/uni.png
diff --git a/packages/token-metadata/src/images/untracked.png b/deprecated/token-metadata/src/images/unknown.png
similarity index 100%
rename from packages/token-metadata/src/images/untracked.png
rename to deprecated/token-metadata/src/images/unknown.png
diff --git a/deprecated/token-metadata/src/images/untracked.png b/deprecated/token-metadata/src/images/untracked.png
new file mode 100644
index 000000000..7f18be176
Binary files /dev/null and b/deprecated/token-metadata/src/images/untracked.png differ
diff --git a/packages/token-metadata/src/images/usdc-mpl.jpeg b/deprecated/token-metadata/src/images/usdc-mpl.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/usdc-mpl.jpeg
rename to deprecated/token-metadata/src/images/usdc-mpl.jpeg
diff --git a/packages/token-metadata/src/images/usdc.png b/deprecated/token-metadata/src/images/usdc.png
similarity index 100%
rename from packages/token-metadata/src/images/usdc.png
rename to deprecated/token-metadata/src/images/usdc.png
diff --git a/deprecated/token-metadata/src/images/usde.png b/deprecated/token-metadata/src/images/usde.png
new file mode 100644
index 000000000..dc67f01d9
Binary files /dev/null and b/deprecated/token-metadata/src/images/usde.png differ
diff --git a/packages/token-metadata/src/images/usdt.png b/deprecated/token-metadata/src/images/usdt.png
similarity index 100%
rename from packages/token-metadata/src/images/usdt.png
rename to deprecated/token-metadata/src/images/usdt.png
diff --git a/packages/token-metadata/src/images/usdy.webp b/deprecated/token-metadata/src/images/usdy.webp
similarity index 100%
rename from packages/token-metadata/src/images/usdy.webp
rename to deprecated/token-metadata/src/images/usdy.webp
diff --git a/packages/token-metadata/src/images/ust.png b/deprecated/token-metadata/src/images/ust.png
similarity index 100%
rename from packages/token-metadata/src/images/ust.png
rename to deprecated/token-metadata/src/images/ust.png
diff --git a/packages/token-metadata/src/images/utk.png b/deprecated/token-metadata/src/images/utk.png
similarity index 100%
rename from packages/token-metadata/src/images/utk.png
rename to deprecated/token-metadata/src/images/utk.png
diff --git a/packages/token-metadata/src/images/vatreni.jpeg b/deprecated/token-metadata/src/images/vatreni.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/vatreni.jpeg
rename to deprecated/token-metadata/src/images/vatreni.jpeg
diff --git a/packages/token-metadata/src/images/vrd.png b/deprecated/token-metadata/src/images/vrd.png
similarity index 100%
rename from packages/token-metadata/src/images/vrd.png
rename to deprecated/token-metadata/src/images/vrd.png
diff --git a/packages/token-metadata/src/images/wagmi.png b/deprecated/token-metadata/src/images/wagmi.png
similarity index 100%
rename from packages/token-metadata/src/images/wagmi.png
rename to deprecated/token-metadata/src/images/wagmi.png
diff --git a/packages/token-metadata/src/images/waifu-logo.png b/deprecated/token-metadata/src/images/waifu-logo.png
similarity index 100%
rename from packages/token-metadata/src/images/waifu-logo.png
rename to deprecated/token-metadata/src/images/waifu-logo.png
diff --git a/packages/token-metadata/src/images/wassie.jpeg b/deprecated/token-metadata/src/images/wassie.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/wassie.jpeg
rename to deprecated/token-metadata/src/images/wassie.jpeg
diff --git a/packages/token-metadata/src/images/wbtc.png b/deprecated/token-metadata/src/images/wbtc.png
similarity index 100%
rename from packages/token-metadata/src/images/wbtc.png
rename to deprecated/token-metadata/src/images/wbtc.png
diff --git a/packages/token-metadata/src/images/wgmi.png b/deprecated/token-metadata/src/images/wgmi.png
similarity index 100%
rename from packages/token-metadata/src/images/wgmi.png
rename to deprecated/token-metadata/src/images/wgmi.png
diff --git a/packages/token-metadata/src/images/whale.png b/deprecated/token-metadata/src/images/whale.png
similarity index 100%
rename from packages/token-metadata/src/images/whale.png
rename to deprecated/token-metadata/src/images/whale.png
diff --git a/deprecated/token-metadata/src/images/wif.webp b/deprecated/token-metadata/src/images/wif.webp
new file mode 100644
index 000000000..327a8e5ad
Binary files /dev/null and b/deprecated/token-metadata/src/images/wif.webp differ
diff --git a/packages/token-metadata/src/images/wizz.jpeg b/deprecated/token-metadata/src/images/wizz.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/wizz.jpeg
rename to deprecated/token-metadata/src/images/wizz.jpeg
diff --git a/deprecated/token-metadata/src/images/wormhole.png b/deprecated/token-metadata/src/images/wormhole.png
new file mode 100644
index 000000000..f57ca626e
Binary files /dev/null and b/deprecated/token-metadata/src/images/wormhole.png differ
diff --git a/packages/token-metadata/src/images/wsteth.png b/deprecated/token-metadata/src/images/wsteth.png
similarity index 100%
rename from packages/token-metadata/src/images/wsteth.png
rename to deprecated/token-metadata/src/images/wsteth.png
diff --git a/packages/token-metadata/src/images/xac.png b/deprecated/token-metadata/src/images/xac.png
similarity index 100%
rename from packages/token-metadata/src/images/xac.png
rename to deprecated/token-metadata/src/images/xac.png
diff --git a/deprecated/token-metadata/src/images/xag.svg b/deprecated/token-metadata/src/images/xag.svg
new file mode 100644
index 000000000..6ad9bd1c5
--- /dev/null
+++ b/deprecated/token-metadata/src/images/xag.svg
@@ -0,0 +1,9 @@
+
diff --git a/packages/token-metadata/src/images/xbx.png b/deprecated/token-metadata/src/images/xbx.png
similarity index 100%
rename from packages/token-metadata/src/images/xbx.png
rename to deprecated/token-metadata/src/images/xbx.png
diff --git a/deprecated/token-metadata/src/images/xiii.png b/deprecated/token-metadata/src/images/xiii.png
new file mode 100644
index 000000000..0bad174a4
Binary files /dev/null and b/deprecated/token-metadata/src/images/xiii.png differ
diff --git a/deprecated/token-metadata/src/images/xnj.png b/deprecated/token-metadata/src/images/xnj.png
new file mode 100644
index 000000000..de181c9fc
Binary files /dev/null and b/deprecated/token-metadata/src/images/xnj.png differ
diff --git a/packages/token-metadata/src/images/xpla.png b/deprecated/token-metadata/src/images/xpla.png
similarity index 100%
rename from packages/token-metadata/src/images/xpla.png
rename to deprecated/token-metadata/src/images/xpla.png
diff --git a/packages/token-metadata/src/images/xprt.png b/deprecated/token-metadata/src/images/xprt.png
similarity index 100%
rename from packages/token-metadata/src/images/xprt.png
rename to deprecated/token-metadata/src/images/xprt.png
diff --git a/packages/token-metadata/src/images/xrp.png b/deprecated/token-metadata/src/images/xrp.png
similarity index 100%
rename from packages/token-metadata/src/images/xrp.png
rename to deprecated/token-metadata/src/images/xrp.png
diff --git a/deprecated/token-metadata/src/images/xtalis.png b/deprecated/token-metadata/src/images/xtalis.png
new file mode 100644
index 000000000..deb55fbb7
Binary files /dev/null and b/deprecated/token-metadata/src/images/xtalis.png differ
diff --git a/packages/token-metadata/src/images/yfi.png b/deprecated/token-metadata/src/images/yfi.png
similarity index 100%
rename from packages/token-metadata/src/images/yfi.png
rename to deprecated/token-metadata/src/images/yfi.png
diff --git a/packages/token-metadata/src/images/yuki.png b/deprecated/token-metadata/src/images/yuki.png
similarity index 100%
rename from packages/token-metadata/src/images/yuki.png
rename to deprecated/token-metadata/src/images/yuki.png
diff --git a/packages/token-metadata/src/images/zen.svg b/deprecated/token-metadata/src/images/zen.svg
similarity index 100%
rename from packages/token-metadata/src/images/zen.svg
rename to deprecated/token-metadata/src/images/zen.svg
diff --git a/packages/token-metadata/src/images/zigg.jpeg b/deprecated/token-metadata/src/images/zigg.jpeg
similarity index 100%
rename from packages/token-metadata/src/images/zigg.jpeg
rename to deprecated/token-metadata/src/images/zigg.jpeg
diff --git a/deprecated/token-metadata/src/images/zigg.png b/deprecated/token-metadata/src/images/zigg.png
new file mode 100644
index 000000000..ab1711b5a
Binary files /dev/null and b/deprecated/token-metadata/src/images/zigg.png differ
diff --git a/deprecated/token-metadata/src/images/zro.jpeg b/deprecated/token-metadata/src/images/zro.jpeg
new file mode 100644
index 000000000..8de2af095
Binary files /dev/null and b/deprecated/token-metadata/src/images/zro.jpeg differ
diff --git a/packages/token-metadata/src/images/zrx.png b/deprecated/token-metadata/src/images/zrx.png
similarity index 100%
rename from packages/token-metadata/src/images/zrx.png
rename to deprecated/token-metadata/src/images/zrx.png
diff --git a/packages/token-metadata/src/index.ts b/deprecated/token-metadata/src/index.ts
similarity index 69%
rename from packages/token-metadata/src/index.ts
rename to deprecated/token-metadata/src/index.ts
index 8bcf161d6..a0190e244 100644
--- a/packages/token-metadata/src/index.ts
+++ b/deprecated/token-metadata/src/index.ts
@@ -1,14 +1,18 @@
import { TokenFactory } from './TokenFactory'
import { TokenMetaUtils } from './TokenMetaUtils'
+import { TokenFactoryStatic } from './TokenFactoryStatic'
import { TokenMetaUtilsFactory } from './TokenMetaUtilsFactory'
-import { TokenInfo } from './TokenInfo'
export * from './ibc'
export * from './types'
export * from './utils'
-export * from './tokens/canonical'
-export const tokenMetaUtils = TokenMetaUtilsFactory.make()
export const tokenFactory = TokenFactory.make()
+export const tokenMetaUtils = TokenMetaUtilsFactory.make()
-export { TokenMetaUtils, TokenInfo, TokenFactory, TokenMetaUtilsFactory }
+export {
+ TokenFactory,
+ TokenMetaUtils,
+ TokenFactoryStatic,
+ TokenMetaUtilsFactory,
+}
diff --git a/packages/token-metadata/src/tokens/index.ts b/deprecated/token-metadata/src/tokens/index.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/index.ts
rename to deprecated/token-metadata/src/tokens/index.ts
diff --git a/packages/token-metadata/src/tokens/mappings/index.ts b/deprecated/token-metadata/src/tokens/mappings/index.ts
similarity index 76%
rename from packages/token-metadata/src/tokens/mappings/index.ts
rename to deprecated/token-metadata/src/tokens/mappings/index.ts
index 5321dfcf7..98d950daa 100644
--- a/packages/token-metadata/src/tokens/mappings/index.ts
+++ b/deprecated/token-metadata/src/tokens/mappings/index.ts
@@ -1,4 +1,3 @@
export * from './mapByAddress'
export * from './mapByHash'
-export * from './mapByName'
export * from './mapBySymbol'
diff --git a/packages/token-metadata/src/tokens/mappings/mapByAddress.ts b/deprecated/token-metadata/src/tokens/mappings/mapByAddress.ts
similarity index 69%
rename from packages/token-metadata/src/tokens/mappings/mapByAddress.ts
rename to deprecated/token-metadata/src/tokens/mappings/mapByAddress.ts
index c6fef8d2e..0e31cd2fb 100644
--- a/packages/token-metadata/src/tokens/mappings/mapByAddress.ts
+++ b/deprecated/token-metadata/src/tokens/mappings/mapByAddress.ts
@@ -1,7 +1,7 @@
-import { TokenMeta } from '../../types'
+import { TokenMetaBase } from '../../types'
export const getMappedTokensByErc20Address = (
- tokens: Record,
+ tokens: Record,
) =>
(Object.keys(tokens) as Array)
.filter((token) => !!(tokens[token].erc20 || tokens[token].evm))
@@ -25,34 +25,27 @@ export const getMappedTokensByErc20Address = (
}
return result
- }, {}) as Record
+ }, {}) as Record
export const getMappedTokensByCw20Address = (
- tokens: Record,
+ tokens: Record,
) =>
(Object.keys(tokens) as Array)
- .filter((token) => tokens[token].cw20 || tokens[token].cw20s)
+ .filter((token) => tokens[token].cw20s)
.reduce((result, token) => {
- if (!tokens[token].cw20 && !tokens[token].cw20s) {
+ if (!tokens[token].cw20s) {
return result
}
const tokenMeta = tokens[token]
- if (tokenMeta.cw20) {
- return {
- ...result,
- [tokenMeta.cw20.address]: tokens[token],
- }
- }
-
if (tokenMeta.cw20s) {
const cw20Maps = tokenMeta.cw20s.reduce(
(result, cw20) => ({
...result,
[cw20.address]: tokens[token],
}),
- {} as Record,
+ {} as Record,
)
return {
@@ -62,4 +55,4 @@ export const getMappedTokensByCw20Address = (
}
return result
- }, {}) as Record
+ }, {}) as Record
diff --git a/deprecated/token-metadata/src/tokens/mappings/mapByHash.ts b/deprecated/token-metadata/src/tokens/mappings/mapByHash.ts
new file mode 100644
index 000000000..a10075afb
--- /dev/null
+++ b/deprecated/token-metadata/src/tokens/mappings/mapByHash.ts
@@ -0,0 +1,22 @@
+import { TokenMetaBase } from '../../types'
+
+ export const getMappedTokensByHash = (tokens: Record) =>
+ (Object.keys(tokens) as Array).reduce(
+ (result, token) => {
+
+ if (!tokens[token].ibcs || tokens[token].ibcs?.length === 0) {
+ return result;
+ }
+
+ tokens[token].ibcs?.forEach(ibc => {
+ if (ibc.hash) {
+ const hashKey = ibc.hash.toUpperCase();
+
+ result[hashKey] = tokens[token];
+ }
+ });
+
+ return result;
+ },
+ {} as Record
+ );
diff --git a/deprecated/token-metadata/src/tokens/mappings/mapBySymbol.ts b/deprecated/token-metadata/src/tokens/mappings/mapBySymbol.ts
new file mode 100644
index 000000000..e79abd2f8
--- /dev/null
+++ b/deprecated/token-metadata/src/tokens/mappings/mapBySymbol.ts
@@ -0,0 +1,86 @@
+import { TokenMetaBase } from '../../types'
+
+export const getMappedTokensBySymbol = (
+ tokens: Record,
+) =>
+ (Object.keys(tokens) as Array).reduce(
+ (result, token) => {
+ const tokenMeta = tokens[token]
+ const symbolKey = token.toUpperCase()
+ const symbol = tokenMeta.symbol?.toUpperCase()
+ const symbolDiffs = symbol !== symbolKey
+ const existingKeys = Object.keys(result)
+
+ let ibcResults = {} as Record
+ let cw20Results = {} as Record
+ let splResults = {} as Record
+ let evmResults = {} as Record
+ let erc20Results = {} as Record
+ let cw20sResults = {} as Record
+
+ if (tokenMeta.ibcs) {
+ tokenMeta.ibcs.forEach(ibc => {
+ if (ibc.baseDenom && !existingKeys.includes(ibc.baseDenom.toUpperCase())) {
+ ibcResults[ibc.baseDenom.toUpperCase()] = tokenMeta;
+ }
+ if (ibc.symbol && !existingKeys.includes(ibc.symbol.toUpperCase())) {
+ ibcResults[ibc.symbol.toUpperCase()] = tokenMeta;
+ }
+ });
+ }
+
+ if (tokenMeta.cw20s) {
+ const cw20Maps = tokenMeta.cw20s.reduce((result, cw20) => {
+ if (existingKeys.includes(cw20.symbol.toUpperCase())) {
+ return result
+ }
+
+ return {
+ ...result,
+ [cw20.symbol.toUpperCase()]: tokenMeta,
+ }
+ }, {} as Record)
+
+ cw20sResults = {
+ ...cw20Maps,
+ }
+ }
+
+ if (
+ tokenMeta.evm &&
+ tokenMeta.evm.symbol &&
+ !existingKeys.includes(tokenMeta.evm.symbol.toUpperCase())
+ ) {
+ evmResults = {
+ [tokenMeta.evm.symbol.toUpperCase()]: tokenMeta,
+ }
+ }
+
+ if (
+ tokenMeta.erc20 &&
+ tokenMeta.erc20.symbol &&
+ !existingKeys.includes(tokenMeta.erc20.symbol.toUpperCase())
+ ) {
+ erc20Results = {
+ [tokenMeta.erc20.symbol.toUpperCase()]: tokenMeta,
+ }
+ }
+
+ return {
+ ...result,
+ ...splResults,
+ ...evmResults,
+ ...ibcResults,
+ ...cw20Results,
+ ...cw20sResults,
+ ...erc20Results,
+ ...(symbol && {
+ [symbol.toUpperCase()]: tokenMeta,
+ }),
+ ...(symbolDiffs && {
+ [symbolKey.toUpperCase()]: tokenMeta,
+ }),
+ }
+ },
+ {},
+ ) as Record
diff --git a/packages/token-metadata/src/tokens/network/devnet.ts b/deprecated/token-metadata/src/tokens/network/devnet.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/network/devnet.ts
rename to deprecated/token-metadata/src/tokens/network/devnet.ts
diff --git a/packages/token-metadata/src/tokens/network/index.ts b/deprecated/token-metadata/src/tokens/network/index.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/network/index.ts
rename to deprecated/token-metadata/src/tokens/network/index.ts
diff --git a/packages/token-metadata/src/tokens/network/testnet.ts b/deprecated/token-metadata/src/tokens/network/testnet.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/network/testnet.ts
rename to deprecated/token-metadata/src/tokens/network/testnet.ts
diff --git a/deprecated/token-metadata/src/tokens/tokens/cw20-tokens.ts b/deprecated/token-metadata/src/tokens/tokens/cw20-tokens.ts
new file mode 100644
index 000000000..df1e5f9dd
--- /dev/null
+++ b/deprecated/token-metadata/src/tokens/tokens/cw20-tokens.ts
@@ -0,0 +1,146 @@
+import { TokenMetaBase } from '../../types'
+
+/** for testnet purposes only */
+export default {
+ ZEN: {
+ name: 'ZEN',
+ logo: 'zen.svg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'ZEN',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
+ },
+
+ UZEN: {
+ name: 'ZEN',
+ logo: 'zen.svg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'ZEN',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
+ },
+
+ PROJ: {
+ name: 'PROJ',
+ decimals: 18,
+ symbol: 'PROJ',
+ coinGeckoId: '',
+ logo: 'proj.png',
+
+ tokenFactories: [
+ {
+ symbol: 'PROJ',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
+ },
+
+ PROJX: {
+ name: 'PROJX',
+ logo: 'projx.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'PROJX',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
+ },
+
+ DEMO: {
+ name: 'Demo Coin',
+ logo: 'injective-v3.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'DEMO',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
+ },
+
+ MITOTEST2: {
+ name: 'Mito test token',
+ logo: 'mito-test.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ decimals: 6,
+ symbol: 'MT',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ },
+ ],
+ },
+
+ TEST1: {
+ name: 'Test 1',
+ logo: 'mito-test.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ decimals: 6,
+ symbol: 'TEST1',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ },
+ ],
+ },
+
+ TEST2: {
+ name: 'Test 2',
+ logo: 'mito-test.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ decimals: 6,
+ symbol: 'TEST2',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ },
+ ],
+ },
+
+ TEST3: {
+ name: 'Test 3',
+ logo: 'mito-test.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ decimals: 6,
+ symbol: 'TEST3',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ },
+ ],
+ },
+
+ PHUC: {
+ name: 'Phuc',
+ logo: 'mito-test.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e',
+ symbol: 'PHUC',
+ decimals: 6,
+ },
+ ],
+ },
+} as Record
diff --git a/packages/token-metadata/src/tokens/tokens/devnet-tokens.ts b/deprecated/token-metadata/src/tokens/tokens/devnet-tokens.ts
similarity index 76%
rename from packages/token-metadata/src/tokens/tokens/devnet-tokens.ts
rename to deprecated/token-metadata/src/tokens/tokens/devnet-tokens.ts
index f67f177f2..1812790e4 100644
--- a/packages/token-metadata/src/tokens/tokens/devnet-tokens.ts
+++ b/deprecated/token-metadata/src/tokens/tokens/devnet-tokens.ts
@@ -1,10 +1,5 @@
import tokens from './tokens'
-import {
- TokenMeta,
- TokenType,
- TokenSource,
- Cw20TokenMetaWithSource,
-} from '../../types'
+import { TokenMeta, TokenSource, Cw20TokenMetaWithSource } from '../../types'
export const overrideCw20s = (
source: Cw20TokenMetaWithSource,
@@ -49,9 +44,20 @@ export const devnetTokens = () =>
symbol: 'USDCet',
source: TokenSource.EthereumWh,
address: 'inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw',
- tokenType: TokenType.Cw20,
},
tokens.USDC.cw20s,
),
},
+
+ KIRA: {
+ ...tokens.KIRA,
+ tokenFactories: [
+ ...(tokens.KIRA.tokenFactories || []),
+ {
+ creator: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
+ symbol: 'KIRA',
+ decimals: 6,
+ },
+ ],
+ },
} as Record)
diff --git a/packages/token-metadata/src/tokens/tokens/ibc.ts b/deprecated/token-metadata/src/tokens/tokens/ibc.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/tokens/ibc.ts
rename to deprecated/token-metadata/src/tokens/tokens/ibc.ts
diff --git a/packages/token-metadata/src/tokens/tokens/index.ts b/deprecated/token-metadata/src/tokens/tokens/index.ts
similarity index 78%
rename from packages/token-metadata/src/tokens/tokens/index.ts
rename to deprecated/token-metadata/src/tokens/tokens/index.ts
index e76a168a8..7a1670d6b 100644
--- a/packages/token-metadata/src/tokens/tokens/index.ts
+++ b/deprecated/token-metadata/src/tokens/tokens/index.ts
@@ -8,8 +8,8 @@ import tokens from './tokens'
const allTokens = { ...tokens, ...cw20Tokens }
export const ibcBaseDenoms = Object.keys(allTokens)
- .filter((token) => allTokens[token].ibc)
- .map((token) => allTokens[token].ibc!.baseDenom)
+ .filter((token) => allTokens[token].ibcs)
+ .flatMap((token) => allTokens[token].ibcs!.map(({baseDenom}) => baseDenom))
export default allTokens as Record
diff --git a/packages/token-metadata/src/tokens/tokens/testnet-tokens.ts b/deprecated/token-metadata/src/tokens/tokens/testnet-tokens.ts
similarity index 50%
rename from packages/token-metadata/src/tokens/tokens/testnet-tokens.ts
rename to deprecated/token-metadata/src/tokens/tokens/testnet-tokens.ts
index 2cff00cfa..43fe6177e 100644
--- a/packages/token-metadata/src/tokens/tokens/testnet-tokens.ts
+++ b/deprecated/token-metadata/src/tokens/tokens/testnet-tokens.ts
@@ -1,8 +1,7 @@
import tokens from './tokens'
import {
- TokenMeta,
- TokenType,
TokenSource,
+ TokenMetaBase,
Cw20TokenMetaWithSource,
} from '../../types'
@@ -31,31 +30,22 @@ export const testnetTokens = () =>
({
wBTC: {
...tokens.wBTC,
- cw20s: [
- ...(tokens.wBTC.cw20s || []),
- ...overrideCw20s(
- {
- decimals: 8,
- symbol: 'wBTC',
- source: TokenSource.Cosmos,
- address: 'wbtc',
- tokenType: TokenType.Cw20,
- },
- tokens.wBTC.cw20s,
- ),
+ tokenFactories: [
+ {
+ symbol: 'wBTC',
+ creator: 'inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c',
+ decimals: 8,
+ },
],
},
ATOM: {
...tokens.ATOM,
- cw20s: [
- ...(tokens.ATOM.cw20s || []),
+ tokenFactories: [
{
- decimals: 8,
symbol: 'ATOM',
- source: TokenSource.Cosmos,
- address: 'atom',
- tokenType: TokenType.Cw20,
+ creator: 'inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c',
+ decimals: 8,
},
],
},
@@ -64,7 +54,7 @@ export const testnetTokens = () =>
...tokens.INJ,
erc20: {
...tokens.INJ.erc20,
- address: '0xAD1794307245443B3Cb55d88e79EEE4d8a548C03',
+ address: '0x5512c04B6FF813f3571bDF64A1d74c98B5257332',
},
},
@@ -90,35 +80,36 @@ export const testnetTokens = () =>
...tokens.wETH.erc20,
address: '0xdB309Bb079EB419C18fe7D568c61cD2FdB65D9aF',
},
- cw20s: [
- ...(tokens.wETH.cw20s || []),
+ tokenFactories: [
{
- decimals: 8,
symbol: 'wETH',
- source: TokenSource.EthereumWh,
- address: 'weth',
- tokenType: TokenType.Cw20,
+ creator: 'inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c',
+ decimals: 8,
},
],
},
ASTRO: {
...tokens.ASTRO,
- ibc: {
- ...tokens.ASTRO.ibc,
- hash: 'E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89',
- path: 'transfer/channel-13',
- channelId: 'channel-13',
- baseDenom: 'ASTRO',
- },
+ ibcs: [
+ {
+ ...(tokens.ASTRO.ibcs ? tokens.ASTRO.ibcs[0] : {}),
+ hash: 'E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89',
+ path: 'transfer/channel-13',
+ channelId: 'channel-13',
+ baseDenom: 'ASTRO',
+ },
+ ],
},
SOL: {
...tokens.SOL,
- cw20: {
- ...tokens.SOL.cw20,
- address: 'inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9',
- },
+ cw20s: [
+ {
+ ...(tokens.SOL.cw20s ? tokens.SOL.cw20s[0] : {}),
+ address: 'inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9',
+ },
+ ],
},
USDC: {
@@ -127,6 +118,13 @@ export const testnetTokens = () =>
...tokens.USDC.erc20,
address: '0x07865c6E87B9F70255377e024ace6630C1Eaa37F',
},
+ tokenFactories: [
+ {
+ symbol: 'USDC',
+ creator: 'inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c',
+ decimals: 6,
+ },
+ ],
cw20s: [
...overrideCw20s(
{
@@ -134,38 +132,74 @@ export const testnetTokens = () =>
symbol: 'USDCet',
source: TokenSource.EthereumWh,
address: 'inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw',
- tokenType: TokenType.Cw20,
},
tokens.USDC.cw20s,
),
- {
- decimals: 6,
- symbol: 'USDC',
- source: TokenSource.Cosmos,
- address: 'usdc',
- tokenType: TokenType.Cw20,
- },
],
},
MATIC: {
...tokens.MATIC,
- evm: {
- ...tokens.MATIC.evm,
+ erc20: {
+ ...tokens.MATIC.erc20,
address: '0x9c3c9283d3e44854697cd22d3faa240cfb032889',
},
+ tokenFactories: [
+ {
+ symbol: 'MATIC',
+ creator: 'inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c',
+ decimals: 18,
+ },
+ ],
+ },
+
+ STINJ: {
+ ...tokens.STINJ,
+
+ tokenFactories: [
+ {
+ symbol: 'STINJ',
+ creator: 'inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z',
+ decimals: 18,
+ },
+ ],
},
- MITOTEST1: {
- ...tokens.MITOTEST1,
+ hINJ: {
+ ...tokens.hINJ,
+
cw20s: [
+ ...(tokens.hINJ.cw20s || []),
{
+ symbol: 'hINJ',
decimals: 18,
- symbol: 'MT1',
- source: TokenSource.EthereumWh,
- address: 'mitotest1',
- tokenType: TokenType.Cw20,
+ address: 'inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc',
+ },
+ ],
+ },
+
+ HDRO: {
+ ...tokens.HDRO,
+
+ tokenFactories: [
+ ...(tokens.HDRO.tokenFactories || []),
+ {
+ creator: 'inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk',
+ symbol: 'HDRO',
+ decimals: 6,
+ },
+ ],
+ },
+ KIRA: {
+ ...tokens.KIRA,
+
+ tokenFactories: [
+ ...(tokens.KIRA.tokenFactories || []),
+ {
+ creator: 'inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk',
+ symbol: 'KIRA',
+ decimals: 6,
},
],
},
- } as Record)
+ } as Record)
diff --git a/deprecated/token-metadata/src/tokens/tokens/tokens.ts b/deprecated/token-metadata/src/tokens/tokens/tokens.ts
new file mode 100644
index 000000000..8e86cd87c
--- /dev/null
+++ b/deprecated/token-metadata/src/tokens/tokens/tokens.ts
@@ -0,0 +1,3927 @@
+import { TokenMetaBase, TokenSource, TokenType } from '../../types'
+
+export default {
+ BTC: {
+ name: 'Bitcoin',
+ symbol: 'BTC',
+ logo: 'bitcoin.png',
+ coinGeckoId: 'bitcoin',
+ tokenType: TokenType.Unknown,
+ },
+
+ wBTC: {
+ name: 'Wrapped Bitcoin',
+ logo: 'wbtc.png',
+ coinGeckoId: 'wrapped-bitcoin',
+
+ erc20: {
+ symbol: 'wBTC',
+ decimals: 8,
+ address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
+ },
+
+ cw20s: [
+ {
+ decimals: 18,
+ symbol: 'wBTC',
+ source: TokenSource.Cosmos,
+ address: 'inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku',
+ },
+ ],
+ },
+
+ ETH: {
+ name: 'Ethereum',
+ logo: 'ethereum.png',
+ coinGeckoId: 'ethereum',
+
+ erc20: {
+ symbol: 'ETH',
+ decimals: 18,
+ isNative: true,
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+ },
+
+ wETH: {
+ name: 'Wrapped Ethereum',
+ logo: 'ethereum.png',
+ coinGeckoId: 'ethereum',
+
+ erc20: {
+ symbol: 'wETH',
+ decimals: 18,
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
+ },
+
+ cw20s: [
+ {
+ symbol: 'wETH',
+ decimals: 8,
+ address: 'inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4',
+ source: TokenSource.Arbitrum,
+ },
+ {
+ symbol: 'wETH',
+ decimals: 8,
+ address: 'inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc',
+ source: TokenSource.EthereumWh,
+ },
+ ],
+ },
+
+ INJ: {
+ name: 'Injective',
+ logo: 'injective-v3.png',
+ coinGeckoId: 'injective-protocol',
+
+ erc20: {
+ symbol: 'INJ',
+ decimals: 18,
+ address: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
+ },
+
+ cw20s: [
+ {
+ decimals: 8,
+ symbol: 'INJbsc',
+ source: TokenSource.BinanceSmartChain,
+ address: 'inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40',
+ },
+ {
+ decimals: 8,
+ symbol: 'INJet',
+ source: TokenSource.EthereumWh,
+ address: 'inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw',
+ },
+ ],
+ },
+
+ USDT: {
+ name: 'Tether',
+ logo: 'usdt.png',
+ coinGeckoId: 'tether',
+
+ erc20: {
+ symbol: 'USDT',
+ decimals: 6,
+ address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
+ },
+
+ ibcs: [
+ {
+ decimals: 6,
+ symbol: 'USDTkv',
+ isNative: true,
+ baseDenom: 'erc20/tether/usdt',
+ path: 'transfer/channel-143',
+ channelId: 'channel-143',
+ hash: '4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB',
+ source: TokenSource.Cosmos,
+ },
+ ],
+
+ cw20s: [
+ {
+ decimals: 6,
+ symbol: 'USDTbsc',
+ source: TokenSource.BinanceSmartChain,
+ address: 'inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDTet',
+ source: TokenSource.EthereumWh,
+ address: 'inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDTap',
+ source: TokenSource.Aptos,
+ address: 'inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDTso',
+ source: TokenSource.Solana,
+ address: 'inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd',
+ },
+ ],
+ },
+
+ USDC: {
+ name: 'USD Coin',
+ logo: 'usdc.png',
+ coinGeckoId: 'usd-coin',
+
+ erc20: {
+ decimals: 6,
+ symbol: 'USDClegacy',
+ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
+ },
+
+ cw20s: [
+ {
+ name: 'USD Coin (legacy)',
+ decimals: 6,
+ symbol: 'USDCet',
+ source: TokenSource.EthereumWh,
+ address: 'inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDCso',
+ source: TokenSource.Solana,
+ address: 'inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDCarb',
+ source: TokenSource.Arbitrum,
+ address: 'inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDCbsc',
+ source: TokenSource.BinanceSmartChain,
+ address: 'inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu',
+ },
+ {
+ decimals: 6,
+ symbol: 'USDCpoly',
+ source: TokenSource.Polygon,
+ address: 'inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3',
+ },
+ ],
+
+ ibcs: [
+ {
+ decimals: 6,
+ symbol: 'axlUSDC',
+ baseDenom: 'uusdc',
+ isNative: false,
+ channelId: 'channel-84',
+ path: 'transfer/channel-84',
+ hash: '7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0',
+ source: TokenSource.Axelar,
+ },
+ {
+ decimals: 6,
+ symbol: 'USDC',
+ baseDenom: 'uusdc',
+ isNative: true,
+ channelId: 'channel-148',
+ path: 'transfer/channel-148',
+ hash: '2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E',
+ source: TokenSource.Cosmos,
+ },
+ {
+ decimals: 6,
+ symbol: 'USDCgateway',
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/GGh9Ufn1SeDGrhzEkMyRKt5568VbbxZK2yvWNsd6PbXt',
+ isNative: false,
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323',
+ source: TokenSource.EthereumWh,
+ },
+ ],
+
+ spl: {
+ decimals: 6,
+ symbol: 'USDCso',
+ isNative: false,
+ address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
+ },
+ },
+
+ GRT: {
+ name: 'Graph Token',
+ logo: 'graphToken.png',
+ coinGeckoId: 'the-graph',
+
+ erc20: {
+ symbol: 'GRT',
+ decimals: 18,
+ address: '0xc944E90C64B2c07662A292be6244BDf05Cda44a7',
+ },
+ },
+
+ SNX: {
+ name: 'Synthetix Network Token',
+ logo: 'synthetix.png',
+ coinGeckoId: 'havven',
+
+ erc20: {
+ symbol: 'SNX',
+ decimals: 18,
+ address: '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F',
+ },
+ },
+
+ BNB: {
+ name: 'Binance Coin',
+ logo: 'bnb.png',
+ coinGeckoId: 'binancecoin',
+
+ erc20: {
+ symbol: 'BNB',
+ decimals: 18,
+ address: '0xB8c77482e45F1F44dE1745F52C74426C631bDD52',
+ },
+ },
+
+ AAVE: {
+ name: 'Aave',
+ logo: 'AAVE.png',
+ coinGeckoId: 'aave',
+
+ erc20: {
+ symbol: 'AAVE',
+ decimals: 18,
+ address: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9',
+ },
+ },
+
+ YFI: {
+ name: 'yearn.finance',
+ logo: 'yfi.png',
+ coinGeckoId: 'yearn-finance',
+
+ erc20: {
+ symbol: 'YFI',
+ decimals: 18,
+ address: '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e',
+ },
+ },
+
+ COMP: {
+ name: 'Compound',
+ logo: 'comp.png',
+ coinGeckoId: 'compound-coin',
+
+ erc20: {
+ symbol: 'COMP',
+ decimals: 18,
+ address: '0xc00e94Cb662C3520282E6f5717214004A7f26888',
+ },
+ },
+
+ ZRX: {
+ name: '0x',
+ logo: 'zrx.png',
+ coinGeckoId: '0x',
+
+ erc20: {
+ symbol: 'ZRX',
+ decimals: 18,
+ address: '0xE41d2489571d322189246DaFA5ebDe1F4699F498',
+ },
+ },
+
+ MATIC: {
+ name: 'Polygon',
+ logo: 'polygon.png',
+ coinGeckoId: 'matic-network',
+
+ erc20: {
+ symbol: 'MATIC',
+ decimals: 18,
+ address: '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0',
+ },
+ },
+
+ UNI: {
+ name: 'Uniswap',
+ logo: 'uni.png',
+ coinGeckoId: 'uniswap',
+
+ erc20: {
+ symbol: 'UNI',
+ decimals: 18,
+ address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984',
+ },
+ },
+
+ DAI: {
+ name: 'Dai',
+ logo: 'dai.png',
+ coinGeckoId: 'dai',
+
+ erc20: {
+ symbol: 'DAI',
+ decimals: 18,
+ address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
+ },
+ },
+
+ LINK: {
+ name: 'Chainlink',
+ logo: 'chainlink.png',
+ coinGeckoId: 'chainlink',
+
+ erc20: {
+ symbol: 'LINK',
+ decimals: 18,
+ address: '0x514910771AF9Ca656af840dff83E8264EcF986CA',
+ },
+ },
+
+ SUSHI: {
+ erc20: {
+ coinGeckoId: 'sushi',
+ name: 'SushiSwap',
+ logo: 'sushi.png',
+ symbol: 'SUSHI',
+ decimals: 18,
+ address: '0x6B3595068778DD592e39A122f4f5a5cF09C90fE2',
+ },
+
+ cw20s: [
+ {
+ name: 'SUSHI FIGHTER',
+ logo: 'sushi-inj.png',
+ symbol: 'SUSHI',
+ decimals: 18,
+ address: 'inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd',
+ },
+ ],
+ },
+
+ AXS: {
+ name: 'Axie Infinity',
+ logo: 'axs.png',
+ coinGeckoId: 'axie-infinity',
+
+ erc20: {
+ symbol: 'AXS',
+ decimals: 18,
+ address: '0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b',
+ },
+ },
+
+ '1INCH': {
+ name: '1inch',
+ logo: '1inch.png',
+ coinGeckoId: '1inch',
+
+ erc20: {
+ symbol: '1INCH',
+ decimals: 18,
+ address: '0x111111111117dC0aa78b770fA6A738034120C302',
+ },
+ },
+
+ BAT: {
+ name: 'Basic Attention Token',
+ logo: 'bat.png',
+ coinGeckoId: 'basic-attention-token',
+
+ erc20: {
+ symbol: 'BAT',
+ decimals: 18,
+ address: '0x0D8775F648430679A709E98d2b0Cb6250d2887EF',
+ },
+ },
+
+ BUSD: {
+ name: 'Binance USD',
+ logo: 'busd.png',
+ coinGeckoId: 'binance-usd',
+
+ erc20: {
+ symbol: 'BUSD',
+ decimals: 18,
+ address: '0x4Fabb145d64652a948d72533023f6E7A623C7C53',
+ },
+ },
+
+ CEL: {
+ name: 'Celsius',
+ logo: 'cel.png',
+ coinGeckoId: 'celsius-degree-token',
+
+ erc20: {
+ symbol: 'CEL',
+ decimals: 4,
+ address: '0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d',
+ },
+ },
+
+ CELL: {
+ name: 'Cellframe',
+ logo: 'cell.png',
+ coinGeckoId: 'cellframe',
+
+ erc20: {
+ symbol: 'CELL',
+ decimals: 18,
+ address: '0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099',
+ },
+ },
+
+ DEFI5: {
+ name: 'DEFI Top 5 Tokens Index',
+ logo: 'defi5.png',
+ coinGeckoId: 'defi-top-5-tokens-index',
+
+ erc20: {
+ symbol: 'DEFI5',
+ decimals: 18,
+ address: '0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41',
+ },
+ },
+
+ ENJ: {
+ name: 'Enjin Coin',
+ logo: 'enj.png',
+ coinGeckoId: 'enjincoin',
+
+ erc20: {
+ symbol: 'ENJ',
+ decimals: 18,
+ address: '0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c',
+ },
+ },
+
+ EVAI: {
+ name: 'Evai.io',
+ logo: 'evai.png',
+ coinGeckoId: 'evai',
+
+ erc20: {
+ symbol: 'EVAI',
+ decimals: 8,
+ address: '0x50f09629d0afDF40398a3F317cc676cA9132055c',
+ },
+ },
+
+ FTM: {
+ name: 'Fantom',
+ logo: 'ftm.png',
+ coinGeckoId: 'fantom',
+
+ erc20: {
+ symbol: 'FTM',
+ decimals: 18,
+ address: '0x4E15361FD6b4BB609Fa63C81A2be19d873717870',
+ },
+ },
+
+ HT: {
+ name: 'Huobi Token',
+ logo: 'ht.png',
+ coinGeckoId: 'huobi-token',
+
+ erc20: {
+ symbol: 'HT',
+ decimals: 18,
+ address: '0x6f259637dcD74C767781E37Bc6133cd6A68aa161',
+ },
+ },
+
+ NEXO: {
+ name: 'Nexo',
+ logo: 'nexo.png',
+ coinGeckoId: 'nexo',
+
+ erc20: {
+ symbol: 'NEXO',
+ decimals: 18,
+ address: '0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206',
+ },
+ },
+
+ NOIA: {
+ name: 'Syntropy',
+ logo: 'noia.png',
+ coinGeckoId: 'noia-network',
+
+ erc20: {
+ symbol: 'NOIA',
+ decimals: 18,
+ address: '0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca',
+ },
+ },
+
+ OCEAN: {
+ name: 'Ocean Protocol',
+ logo: 'ocean.png',
+ coinGeckoId: 'ocean-protocol',
+
+ erc20: {
+ symbol: 'OCEAN',
+ decimals: 18,
+ address: '0x967da4048cD07aB37855c090aAF366e4ce1b9F48',
+ },
+ },
+
+ PAXG: {
+ name: 'PAX Gold',
+ logo: 'paxg.png',
+ coinGeckoId: 'pax-gold',
+
+ erc20: {
+ symbol: 'PAXG',
+ decimals: 18,
+ address: '0x45804880De22913dAFE09f4980848ECE6EcbAf78',
+ },
+ },
+
+ POOL: {
+ name: 'PoolTogether',
+ logo: 'pool.png',
+ coinGeckoId: 'pooltogether',
+
+ erc20: {
+ symbol: 'POOL',
+ decimals: 18,
+ address: '0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e',
+ },
+ },
+
+ RUNE: {
+ name: 'THORChain (ERC20)',
+ logo: 'rune.png',
+ coinGeckoId: 'thorchain-erc20',
+
+ erc20: {
+ symbol: 'RUNE',
+ decimals: 18,
+ address: '0x3155BA85D5F96b2d030a4966AF206230e46849cb',
+ },
+ },
+
+ SHIB: {
+ name: 'SHIBA INU',
+ logo: 'shib.png',
+ coinGeckoId: 'shiba-inu',
+
+ erc20: {
+ symbol: 'SHIB',
+ decimals: 18,
+ address: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',
+ },
+ },
+
+ STARS: {
+ name: 'Mogul Productions',
+ logo: 'stars.png',
+ coinGeckoId: 'mogul-productions',
+
+ erc20: {
+ symbol: 'STARS',
+ decimals: 18,
+ address: '0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca',
+ },
+ },
+
+ STT: {
+ name: 'Scatter.cx',
+ logo: 'scatter.webp',
+ coinGeckoId: 'scatter-cx',
+
+ erc20: {
+ symbol: 'STT',
+ decimals: 18,
+ address: '0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd',
+ },
+ },
+
+ SWAP: {
+ name: 'TrustSwap',
+ logo: 'trustswap.png',
+ coinGeckoId: 'trustswap',
+
+ erc20: {
+ symbol: 'SWAP',
+ decimals: 18,
+ address: '0xcc4304a31d09258b0029ea7fe63d032f52e44efe',
+ },
+ },
+
+ UMA: {
+ name: 'UMA',
+ coinGeckoId: 'uma',
+ logo: 'uma.png',
+
+ erc20: {
+ symbol: 'UMA',
+ decimals: 18,
+ address: '0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828',
+ },
+ },
+
+ UTK: {
+ name: 'Utrust',
+ logo: 'utk.png',
+ coinGeckoId: 'utrust',
+
+ erc20: {
+ symbol: 'UTK',
+ decimals: 18,
+ address: '0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c',
+ },
+ },
+
+ ATOM: {
+ name: 'Cosmos',
+ logo: 'atom.png',
+ coinGeckoId: 'cosmos',
+
+ erc20: {
+ symbol: 'ATOM',
+ decimals: 6,
+ address: '0x8D983cb9388EaC77af0474fA441C4815500Cb7BB',
+ },
+
+ ibcs: [
+ {
+ symbol: 'ATOM',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uatom',
+ path: 'transfer/channel-1',
+ channelId: 'channel-1',
+ hash: 'C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ UPHOTON: {
+ name: 'Cosmos Testnet',
+ logo: 'atom.png',
+ coinGeckoId: 'cosmos',
+
+ erc20: {
+ symbol: 'UPHOTON',
+ decimals: 6,
+ address: '0x8D983cb9388EaC77af0474fA441C4815500Cb7BB',
+ },
+
+ ibcs: [
+ {
+ symbol: 'UPHOTON',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uphoton',
+ path: 'transfer/channel-2',
+ channelId: 'channel-2',
+ hash: '48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ LUNA: {
+ name: 'Terra',
+ logo: 'luna.png',
+ coinGeckoId: 'terra-luna',
+
+ erc20: {
+ symbol: 'LUNA',
+ decimals: 6,
+ address: '0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9',
+ },
+
+ ibcs: [
+ {
+ symbol: 'LUNA',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uluna',
+ path: 'transfer/channel-4',
+ channelId: 'channel-4',
+ hash: 'B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ UST: {
+ name: 'TerraUSD',
+ logo: 'ust.png',
+ coinGeckoId: 'terrausd',
+
+ erc20: {
+ symbol: 'UST',
+ decimals: 18,
+ address: '0xa47c8bf37f92aBed4A126BDA807A7b7498661acD',
+ },
+
+ ibcs: [
+ {
+ symbol: 'UST',
+ decimals: 18,
+ isNative: true,
+ baseDenom: 'uusd',
+ path: 'transfer/channel-4',
+ channelId: 'channel-4',
+ hash: 'B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ GF: {
+ name: 'GuildFi',
+ logo: 'gf.png',
+ coinGeckoId: 'guildfi',
+
+ erc20: {
+ symbol: 'GF',
+ decimals: 18,
+ address: '0xaaef88cea01475125522e117bfe45cf32044e238',
+ },
+ },
+
+ XBX: {
+ name: 'BurnX',
+ logo: 'xbx.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'XBX',
+ decimals: 18,
+ address: '0x080B12E80C9b45e97C23b6ad10a16B3e2a123949',
+ },
+ },
+
+ OSMO: {
+ name: 'Osmosis',
+ coinGeckoId: 'osmosis',
+ logo: 'osmo.png',
+
+ ibcs: [
+ {
+ symbol: 'OSMO',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uosmo',
+ path: 'transfer/channel-8',
+ channelId: 'channel-8',
+ hash: '92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ TAB: {
+ name: 'Injective',
+ logo: 'injective-v3.png',
+ coinGeckoId: 'injective-protocol',
+
+ erc20: {
+ symbol: 'TAB',
+ decimals: 18,
+ address: '0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD',
+ },
+ },
+
+ HUAHUA: {
+ name: 'Chihuahua',
+ logo: 'chihuahua.jpeg',
+ coinGeckoId: 'chihuahua-token',
+
+ ibcs: [
+ {
+ symbol: 'HUAHUA',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uhuahua',
+ path: 'transfer/channel-76',
+ channelId: 'channel-76',
+ hash: 'E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ JUNO: {
+ name: 'Juno',
+ logo: 'juno.jpeg',
+ coinGeckoId: 'juno-network',
+
+ ibcs: [
+ {
+ symbol: 'JUNO',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'ujuno',
+ path: 'transfer/channel-78',
+ channelId: 'channel-78',
+ hash: 'D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ WHALE: {
+ name: 'White Whale',
+ logo: 'whale.png',
+ coinGeckoId: 'white-whale',
+
+ ibcs: [
+ {
+ symbol: 'WHALE',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uwhale',
+ path: 'transfer/channel-102',
+ channelId: 'channel-102',
+ hash: 'D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ NOIS: {
+ name: 'Nois',
+ coinGeckoId: 'nois',
+ logo: 'nois.png',
+
+ ibcs: [
+ {
+ symbol: 'NOIS',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'unois',
+ path: 'transfer/channel-138',
+ channelId: 'channel-138',
+ hash: 'DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ AXL: {
+ name: 'Axelar',
+ logo: 'axelar.png',
+ coinGeckoId: 'axelar',
+
+ erc20: {
+ symbol: 'AXL',
+ decimals: 6,
+ address: '0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc',
+ },
+
+ ibcs: [
+ {
+ symbol: 'AXL',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uaxl',
+ path: 'transfer/channel-84',
+ channelId: 'channel-84',
+ hash: 'B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ BAYC: {
+ name: 'Bored Ape Yacht Club',
+ symbol: 'BAYC',
+ logo: 'bayc.png',
+ decimals: 18,
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ APE: {
+ name: 'Ape Coin',
+ logo: 'ape.png',
+ coinGeckoId: 'apecoin',
+
+ erc20: {
+ symbol: 'APE',
+ decimals: 18,
+ address: '0x4d224452801ACEd8B2F0aebE155379bb5D594381',
+ },
+ },
+
+ SCRT: {
+ name: 'Secret Network',
+ logo: 'scrt.png',
+ coinGeckoId: 'secret',
+
+ ibcs: [
+ {
+ symbol: 'SCRT',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uscrt',
+ path: 'transfer/channel-88',
+ channelId: 'channel-88',
+ hash: '0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ XPRT: {
+ name: 'Persistence',
+ logo: 'xprt.png',
+ coinGeckoId: 'persistence',
+
+ ibcs: [
+ {
+ symbol: 'XPRT',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uxprt',
+ path: 'transfer/channel-82',
+ channelId: 'channel-82',
+ hash: 'B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ EVMOS: {
+ name: 'Evmos',
+ logo: 'evmos.png',
+ coinGeckoId: 'evmos',
+
+ ibcs: [
+ {
+ symbol: 'EVMOS',
+ decimals: 18,
+ isNative: true,
+ baseDenom: 'aevmos',
+ path: 'transfer/channel-83',
+ channelId: 'channel-83',
+ hash: '16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ STX: {
+ name: 'Stacks',
+ symbol: 'STX',
+ decimals: 6,
+ logo: 'stacks.png',
+ coinGeckoId: 'blockstack',
+ tokenType: TokenType.Unknown,
+ },
+
+ DOT: {
+ name: 'Polkadot',
+ logo: 'dot.jpeg',
+ coinGeckoId: 'polkadot',
+
+ erc20: {
+ symbol: 'DOT',
+ decimals: 10,
+ address: '0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080',
+ },
+
+ ibcs: [
+ {
+ symbol: 'DOT',
+ decimals: 10,
+ isNative: false,
+ baseDenom: 'dot-planck',
+ path: 'transfer/channel-84',
+ channelId: 'channel-84',
+ hash: '624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4',
+ source: TokenSource.Cosmos,
+ },
+ ],
+
+ cw20s: [
+ {
+ symbol: 'DOT',
+ decimals: 10,
+ address: 'inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf',
+ },
+ ],
+ },
+
+ STRD: {
+ name: 'Stride',
+ logo: 'stride.png',
+ coinGeckoId: 'stride',
+
+ ibcs: [
+ {
+ symbol: 'STRD',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'ustrd',
+ path: 'transfer/channel-89',
+ channelId: 'channel-89',
+ hash: '3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ CRE: {
+ name: 'Crescent',
+ logo: 'crescent.jpeg',
+ coinGeckoId: 'crescent-network',
+
+ ibcs: [
+ {
+ symbol: 'CRE',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'ucre',
+ path: 'transfer/channel-90',
+ channelId: 'channel-90',
+ hash: '3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ ASTRO: {
+ name: 'ASTRO',
+ logo: 'astroport.png',
+ coinGeckoId: 'astroport-fi',
+
+ ibcs: [
+ {
+ symbol: 'ASTRO',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'cw20:terra1nsuqsk6kh58ulczatwev87ttq2z6r3pusulg9r24mfj2fvtzd4uq3exn26',
+ path: 'transfer/channel-104',
+ channelId: 'channel-104',
+ hash: 'EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ SOL: {
+ name: 'Solana',
+ logo: 'solana.png',
+ coinGeckoId: 'solana',
+
+ spl: {
+ symbol: 'SOL',
+ decimals: 9,
+ address: '',
+ isNative: true,
+ },
+
+ cw20s: [
+ {
+ name: 'Solana (legacy)',
+ symbol: 'SOLlegacy',
+ decimals: 8,
+ address: 'inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3',
+ },
+ ],
+
+ ibcs: [
+ {
+ symbol: 'SOL',
+ decimals: 8,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/8sYgCzLRJC3J7qPn2bNbx6PiGcarhyx8rBhVaNnfvHCA',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: 'A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97',
+ source: TokenSource.Solana,
+ },
+ ],
+ },
+
+ SOMM: {
+ name: 'Sommelier',
+ logo: 'sommelier.png',
+ coinGeckoId: 'sommelier',
+
+ erc20: {
+ symbol: 'SOMM',
+ decimals: 6,
+ address: '0xa670d7237398238DE01267472C6f13e5B8010FD1',
+ },
+
+ ibcs: [
+ {
+ symbol: 'SOMM',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'usomm',
+ path: 'transfer/channel-93',
+ channelId: 'channel-93',
+ hash: '34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ ETHBTCTREND: {
+ name: 'ETHBTC Trend',
+ logo: 'ethbtctrend.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'ETHBTCTrend',
+ decimals: 18,
+ address: '0x6b7f87279982d919Bbf85182DDeAB179B366D8f2',
+ },
+ },
+
+ STEADYETH: {
+ name: 'SteadyETH',
+ logo: 'steadyeth.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'SteadyETH',
+ decimals: 18,
+ address: '0x3F07A84eCdf494310D397d24c1C78B041D2fa622',
+ },
+ },
+
+ STEADYBTC: {
+ name: 'SteadyBTC',
+ logo: 'steadybtc.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'SteadyBTC',
+ decimals: 18,
+ address: '0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d',
+ },
+ },
+
+ XPLA: {
+ name: 'XPLA',
+ logo: 'xpla.png',
+ coinGeckoId: 'xpla',
+
+ cw20s: [
+ {
+ symbol: 'XPLA',
+ decimals: 8,
+ address: 'inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe',
+ },
+ ],
+ },
+
+ AVAX: {
+ name: 'AVAX',
+ logo: 'avax.webp',
+ coinGeckoId: 'avalanche-2',
+
+ cw20s: [
+ {
+ symbol: 'AVAX',
+ decimals: 8,
+ address: 'inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6',
+ },
+ ],
+ },
+
+ BONK: {
+ name: 'BONK',
+ logo: 'bonk.jpeg',
+ coinGeckoId: 'bonk',
+
+ cw20s: [
+ {
+ symbol: 'BONK',
+ decimals: 5,
+ address: 'inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch',
+ },
+ ],
+ },
+
+ CHZ: {
+ name: 'Chiliz',
+ logo: 'chz.png',
+ coinGeckoId: 'chiliz',
+
+ erc20: {
+ symbol: 'CHZ',
+ decimals: 18,
+ address: '0x3506424F91fD33084466F402d5D97f05F8e3b4AF',
+ },
+
+ cw20s: [
+ {
+ name: 'Chiliz (legacy)',
+ symbol: 'CHZlegacy',
+ decimals: 8,
+ address: 'inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh',
+ },
+ ],
+ },
+
+ CANTO: {
+ name: 'Canto',
+ logo: 'canto.webp',
+ coinGeckoId: 'canto',
+
+ ibcs: [
+ {
+ symbol: 'CANTO',
+ decimals: 18,
+ isNative: true,
+ baseDenom: 'acanto',
+ path: 'transfer/channel-99',
+ channelId: 'channel-99',
+ hash: 'D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ QAT: {
+ name: 'Test QAT',
+ logo: 'injective-v3.png',
+ coinGeckoId: 'injective-protocol',
+
+ erc20: {
+ symbol: 'QAT',
+ decimals: 18,
+ address: '0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9',
+ },
+
+ cw20s: [
+ {
+ symbol: 'QAT',
+ decimals: 8,
+ address: 'inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen',
+ },
+ ],
+ },
+
+ PUGGO: {
+ name: 'Puggo',
+ logo: 'puggo.jpg',
+ coinGeckoId: '',
+
+ erc20: {
+ decimals: 18,
+ symbol: 'PUG',
+ address: '0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b',
+ },
+ },
+
+ LDO: {
+ name: 'Lido DAO Token',
+ logo: 'lido-dao.webp',
+ coinGeckoId: 'lido-dao',
+
+ erc20: {
+ symbol: 'LDO',
+ decimals: 18,
+ address: '0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32',
+ },
+
+ cw20s: [
+ {
+ symbol: 'LDO',
+ decimals: 8,
+ address: 'inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy',
+ },
+ ],
+ },
+
+ ARB: {
+ name: 'Arbitrum',
+ logo: 'arb-circle.png',
+ coinGeckoId: 'arbitrum',
+
+ evm: {
+ symbol: 'ARB',
+ decimals: 18,
+ address: '0x912CE59144191C1204E64559FE8253a0e49E6548',
+ },
+
+ erc20: {
+ symbol: 'ARB',
+ decimals: 18,
+ address: '0x912CE59144191C1204E64559FE8253a0e49E6548',
+ },
+
+ cw20s: [
+ {
+ name: 'Arbitrum (legacy)',
+ symbol: 'ARBlegacy',
+ decimals: 8,
+ address: 'inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd',
+ source: TokenSource.Arbitrum,
+ },
+ ],
+
+ ibcs: [
+ {
+ decimals: 8,
+ symbol: 'ARB',
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/4jq5m8FR6W6nJygDj8NMMbB48mqX4LQHc3j5uEb9syDe',
+ isNative: false,
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1',
+ source: TokenSource.Arbitrum,
+ },
+ ],
+ },
+
+ EUR: {
+ name: 'Euro',
+ symbol: 'EUR',
+ decimals: 6,
+ logo: 'eur.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ GBP: {
+ name: 'British Pound',
+ symbol: 'GBP',
+ decimals: 6,
+ logo: 'gbp.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ JPY: {
+ name: 'Japanese Yen',
+ symbol: 'JPY',
+ decimals: 6,
+ logo: 'jpy.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ XAU: {
+ name: 'Gold',
+ symbol: 'XAU',
+ decimals: 6,
+ logo: 'gold.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ GOLD: {
+ name: 'GOLD',
+ symbol: 'GOLD',
+ decimals: 18,
+ logo: 'gold.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ BRZ: {
+ name: 'Brazilian Digital Token',
+ logo: 'brz.png',
+ coinGeckoId: 'brz',
+
+ erc20: {
+ symbol: 'BRZ',
+ decimals: 4,
+ address: '0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B',
+ },
+
+ cw20s: [
+ {
+ symbol: 'BRZ',
+ decimals: 4,
+ address: 'inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk',
+ },
+ ],
+ },
+
+ ASTR: {
+ name: 'Astar',
+ logo: 'astar.png',
+ coinGeckoId: 'astar',
+
+ cw20s: [
+ {
+ symbol: 'ASTR',
+ decimals: 18,
+ address: 'inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x',
+ },
+ ],
+ },
+
+ ALPHA: {
+ name: 'Alpha Coin',
+ logo: 'alpha.png',
+ coinGeckoId: 'alphacoin',
+
+ erc20: {
+ symbol: 'ALPHA',
+ decimals: 18,
+ address: '0x138C2F1123cF3f82E4596d097c118eAc6684940B',
+ },
+
+ cw20s: [
+ {
+ symbol: 'ALPHA',
+ decimals: 8,
+ address: 'inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u',
+ },
+ ],
+ },
+
+ WMATIC: {
+ name: 'Wrapped Matic',
+ logo: 'polygon.png',
+ coinGeckoId: 'wmatic',
+
+ evm: {
+ symbol: 'WMATIC',
+ decimals: 18,
+ isNative: true,
+ address: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',
+ },
+
+ cw20s: [
+ {
+ name: 'Wrapped Matic (legacy)',
+ symbol: 'WMATIClegacy',
+ decimals: 8,
+ address: 'inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h',
+ source: TokenSource.Polygon,
+ },
+ ],
+
+ ibcs: [
+ {
+ decimals: 8,
+ symbol: 'WMATIC',
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/4gn1J9pchUGh63ez1VwiuTmU4nfJ8Rr8o5HgBC5TMdMk',
+ isNative: false,
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC',
+ source: TokenSource.Polygon,
+ },
+ ],
+ },
+
+ '1MPEPE': {
+ name: 'Pepe',
+ logo: 'pepe.jpeg',
+ coinGeckoId: 'pepe',
+
+ erc20: {
+ symbol: 'MPEPE',
+ decimals: 18,
+ address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
+ },
+ },
+
+ '1000PEPE': {
+ name: 'Pepe',
+ logo: 'pepe.jpeg',
+ coinGeckoId: 'pepe',
+
+ erc20: {
+ symbol: 'KPEPE',
+ decimals: 18,
+ address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
+ },
+ },
+
+ PEPE: {
+ name: 'Pepe',
+ logo: 'pepe.jpeg',
+ coinGeckoId: 'pepe',
+
+ erc20: {
+ symbol: 'PEPE',
+ decimals: 18,
+ address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
+ },
+ },
+
+ WASSIE: {
+ name: 'WASSIE',
+ logo: 'wassie.jpeg',
+ coinGeckoId: 'wassie',
+
+ erc20: {
+ symbol: 'WASSIE',
+ decimals: 18,
+ address: '0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160',
+ },
+ },
+
+ RIBBIT: {
+ name: 'Ribbit Meme',
+ logo: 'ribbit.jpeg',
+ coinGeckoId: 'ribbit-meme',
+
+ erc20: {
+ symbol: 'RIBBIT',
+ decimals: 18,
+ address: '0xb794Ad95317f75c44090f64955954C3849315fFe',
+ },
+ },
+
+ LAMBO: {
+ name: 'Lambo',
+ logo: 'lambo.jpeg',
+ coinGeckoId: 'lambo-0fcbf0f7-1a8f-470d-ba09-797d5e95d836',
+
+ erc20: {
+ symbol: 'LAMBO',
+ decimals: 18,
+ address: '0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3',
+ },
+ },
+
+ STINJ: {
+ name: 'Stride Staked Injective',
+ logo: 'stinj.png',
+ coinGeckoId: 'stride-staked-injective',
+
+ ibcs: [
+ {
+ symbol: 'STINJ',
+ decimals: 18,
+ isNative: true,
+ baseDenom: 'stinj',
+ path: 'transfer/channel-89',
+ channelId: 'channel-89',
+ hash: 'AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ XRP: {
+ name: 'Ripple',
+ logo: 'xrp.png',
+ coinGeckoId: 'ripple',
+
+ erc20: {
+ symbol: 'XRP',
+ decimals: 18,
+ address: '0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe',
+ },
+ },
+
+ RAI: {
+ name: 'Rai Reflex Index',
+ logo: 'rai.png',
+ coinGeckoId: 'rai',
+
+ erc20: {
+ symbol: 'RAI',
+ decimals: 18,
+ address: '0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919',
+ },
+ },
+
+ BTSG: {
+ name: 'Rai Reflex Index',
+ logo: 'btsg.png',
+ coinGeckoId: 'bitsong',
+
+ erc20: {
+ symbol: 'BitSong',
+ decimals: 18,
+ address: '0x05079687D35b93538cbd59fe5596380cae9054A9',
+ },
+ },
+
+ CVR: {
+ name: 'CoverCompared',
+ logo: 'cvr.png',
+ coinGeckoId: 'covercompared',
+
+ erc20: {
+ symbol: 'CVR',
+ decimals: 18,
+ address: '0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6',
+ },
+ },
+
+ QNT: {
+ name: 'Quant',
+ logo: 'qnt.png',
+ coinGeckoId: 'quant-network',
+
+ erc20: {
+ symbol: 'QNT',
+ decimals: 18,
+ address: '0x4a220e6096b25eadb88358cb44068a3248254675',
+ },
+ },
+
+ WSTETH: {
+ name: 'Lido wstETH',
+ logo: 'wsteth.png',
+ coinGeckoId: 'wrapped-steth',
+
+ erc20: {
+ symbol: 'WSTETH',
+ decimals: 18,
+ address: '0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0',
+ },
+ },
+
+ DYDX: {
+ name: 'dYdX',
+ logo: 'dydx.png',
+ coinGeckoId: 'dydx',
+
+ erc20: {
+ symbol: 'dYdX',
+ decimals: 18,
+ address: '0x92d6c1e31e14520e676a687f0a93788b716beff5',
+ },
+ },
+
+ XAC: {
+ name: 'General Attention Currency',
+ logo: 'xac.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'XAC',
+ decimals: 8,
+ address: '0xDe4C5a791913838027a2185709E98c5C6027EA63',
+ },
+ },
+
+ STETH: {
+ name: 'Lido Staked ETH',
+ logo: 'steth.png',
+ coinGeckoId: 'staked-ether',
+
+ erc20: {
+ symbol: 'stETH',
+ decimals: 18,
+ address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',
+ },
+ },
+
+ LYM: {
+ name: 'Lympo',
+ logo: 'lympo.png',
+ coinGeckoId: 'lympo',
+
+ erc20: {
+ symbol: 'LYM',
+ decimals: 18,
+ address: '0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5',
+ },
+ },
+
+ OMI: {
+ name: 'ECOMI',
+ logo: 'omi.png',
+ coinGeckoId: 'ecomi',
+
+ erc20: {
+ symbol: 'OMI',
+ decimals: 18,
+ address: '0xed35af169af46a02ee13b9d79eb57d6d68c1749e',
+ },
+ },
+
+ POINT: {
+ name: 'Reward Point Token',
+ logo: 'point.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'POINT',
+ creator: 'inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4',
+ decimals: 0,
+ },
+ ],
+ },
+
+ KAVA: {
+ name: 'KAVA',
+ logo: 'kava.webp',
+ coinGeckoId: 'kava',
+
+ ibcs: [
+ {
+ symbol: 'KAVA',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'ukava',
+ path: 'transfer/channel-143',
+ channelId: 'channel-143',
+ hash: '57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ SEI: {
+ name: 'SEI',
+ symbol: 'SEI',
+ decimals: 6,
+ logo: 'sei.webp',
+ coinGeckoId: 'sei-network',
+ tokenType: TokenType.Unknown,
+ },
+
+ VATRENI: {
+ name: 'Vatreni Token',
+ logo: 'vatreni.jpeg',
+ coinGeckoId: 'croatian-ff-fan-token',
+
+ evm: {
+ symbol: 'VATRENI',
+ decimals: 18,
+ isNative: true,
+ address: '0xD60DebA014459F07BBcC077a5B817f31DaFD5229',
+ },
+
+ cw20s: [
+ {
+ symbol: 'VATRENI',
+ decimals: 8,
+ address: 'inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay',
+ source: TokenSource.Polygon,
+ },
+ ],
+ },
+
+ NBLA: {
+ name: 'Nebula',
+ logo: 'nebula.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ symbol: 'NBLA',
+ creator: 'inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WKLAY: {
+ name: 'Wrapped Klaytn',
+ logo: 'klaytn.webp',
+ coinGeckoId: 'klay-token',
+
+ cw20s: [
+ {
+ symbol: 'WKLAY',
+ decimals: 8,
+ address: 'inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4',
+ },
+ ],
+ },
+
+ NEOK: {
+ name: 'NEOKingdom DAO',
+ logo: 'neok.png',
+ coinGeckoId: '',
+
+ ibcs: [
+ {
+ symbol: 'NEOK',
+ decimals: 18,
+ isNative: true,
+ baseDenom: 'erc20/0x655ecB57432CC1370f65e5dc2309588b71b473A9',
+ path: 'transfer/channel-83',
+ channelId: 'channel-83',
+ hash: 'F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ ORAI: {
+ name: 'Oraichain',
+ logo: 'orai.png',
+ coinGeckoId: 'oraichain-token',
+
+ erc20: {
+ symbol: 'ORAI',
+ decimals: 18,
+ address: '0x4c11249814f11b9346808179Cf06e71ac328c1b5',
+ },
+
+ ibcs: [
+ {
+ symbol: 'ORAI',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'orai',
+ path: 'transfer/channel-147',
+ channelId: 'channel-147',
+ hash: 'C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ EVINDEX: {
+ name: 'EVIINDEX',
+ symbol: 'EVIINDEX',
+ decimals: 18,
+ logo: 'truEVINDEX.png',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ TRUCPI: {
+ name: 'TRUCPI',
+ symbol: 'TRUCPI',
+ decimals: 18,
+ logo: 'truflation.png',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ TIA: {
+ name: 'Celestia',
+ logo: 'tia.webp',
+ coinGeckoId: 'celestia',
+
+ ibcs: [
+ {
+ symbol: 'TIA',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'utia',
+ path: 'transfer/channel-152',
+ channelId: 'channel-152',
+ hash: 'F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ TALIS: {
+ name: 'Talis',
+ logo: 'talis.webp',
+ coinGeckoId: 'talis-protocol',
+
+ tokenFactories: [
+ {
+ creator: 'inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3',
+ symbol: 'TALIS',
+ decimals: 6,
+ },
+ ],
+ },
+
+ XTALIS: {
+ name: 'xTalis',
+ logo: 'xtalis.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3',
+ symbol: 'XTALIS',
+ decimals: 6,
+ },
+ ],
+ },
+
+ KIRA: {
+ name: 'KIRA',
+ logo: 'kira.jpeg',
+ coinGeckoId: 'kira-the-injective-cat',
+
+ tokenFactories: [
+ {
+ creator: 'inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq',
+ symbol: 'KIRA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ USDY: {
+ name: 'Ondo US Dollar Yield',
+ logo: 'usdy.webp',
+ coinGeckoId: 'ondo-us-dollar-yield',
+
+ erc20: {
+ symbol: 'USDY',
+ decimals: 18,
+ address: '0x96F6eF951840721AdBF46Ac996b59E0235CB985C',
+ },
+ },
+
+ KUJI: {
+ name: 'Kujira',
+ logo: 'kuji.webp',
+ coinGeckoId: 'kujira',
+
+ ibcs: [
+ {
+ symbol: 'KUJI',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'ukuji',
+ path: 'transfer/channel-98',
+ channelId: 'channel-98',
+ hash: '9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ 'USDC-MPL': {
+ name: 'USDC Maple',
+ logo: 'usdc-mpl.jpeg',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'USDC-MPL',
+ decimals: 6,
+ address: '0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A',
+ },
+ },
+
+ PYTH: {
+ name: 'Pyth Network',
+ logo: 'pyth.png',
+ coinGeckoId: 'pyth-network',
+
+ spl: {
+ decimals: 6,
+ symbol: 'PYTH',
+ isNative: false,
+ address: 'HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3',
+ },
+
+ cw20s: [
+ {
+ name: 'Pyth Network (legacy)',
+ decimals: 6,
+ symbol: 'PYTHlegacy',
+ source: TokenSource.Solana,
+ address: 'inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy',
+ },
+ ],
+
+ ibcs: [
+ {
+ symbol: 'PYTH',
+ decimals: 6,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/B8ohBnfisop27exk2gtNABJyYjLwQA7ogrp5uNzvZCoy',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: 'F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6',
+ source: TokenSource.Solana,
+ },
+ ],
+ },
+
+ TIX: {
+ name: 'Timeworx.io',
+ logo: 'tix.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke' /** testnet */,
+ symbol: 'TIX',
+ decimals: 6,
+ },
+ ],
+ },
+
+ NINJ: {
+ name: 'Gryphon Staked Injective',
+ logo: 'ninj.png',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ decimals: 18,
+ symbol: 'nINJ',
+ address: 'inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf',
+ },
+ ],
+ },
+
+ BINJ: {
+ tokenFactories: [
+ {
+ name: 'blackINJ',
+ logo: 'blackINJ.png',
+ coinGeckoId: '',
+ creator: 'inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5',
+ symbol: 'bINJ',
+ decimals: 18,
+ },
+ {
+ name: 'Bird INJ',
+ logo: 'bird.png',
+ creator: 'inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld',
+ symbol: 'BINJ',
+ coinGeckoId: '',
+ decimals: 6,
+ },
+ {
+ name: 'Bird INJ',
+ logo: 'bird.png',
+ creator: 'inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52',
+ symbol: 'BINJ',
+ coinGeckoId: '',
+ decimals: 6,
+ },
+ ],
+ },
+
+ NINJA: {
+ name: 'Dog Wif Nunchucks',
+ logo: 'ninja.png',
+ coinGeckoId: 'dog-wif-nuchucks',
+
+ tokenFactories: [
+ {
+ creator: 'inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w',
+ symbol: 'NINJA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ KATANA: {
+ name: 'Dog Wif Katana',
+ logo: 'katana.webp',
+ coinGeckoId: 'dogwifkatana',
+
+ tokenFactories: [
+ {
+ creator: 'inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87',
+ symbol: 'KATANA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ GALAXY: {
+ name: 'GALAXY',
+ logo: 'galaxy.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8',
+ symbol: 'GALAXY',
+ decimals: 6,
+ },
+ ],
+ },
+
+ AOI: {
+ name: 'Alien Token',
+ logo: 'aoi.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0',
+ symbol: '$AOI',
+ decimals: 6,
+ },
+ ],
+ },
+
+ NOBI: {
+ name: 'Shinobi',
+ logo: 'nobi.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6',
+ symbol: 'NOBI',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav',
+ symbol: 'NOBI',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0',
+ symbol: 'NOBI',
+ decimals: 6,
+ },
+ ],
+ },
+
+ YUKI: {
+ name: 'Yuki Dog',
+ logo: 'yuki.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2',
+ symbol: 'YUKI',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WAGMI: {
+ name: 'Wagmi Coin',
+ logo: 'wagmi.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh',
+ symbol: 'WAGMI',
+ decimals: 9,
+ },
+ ],
+ },
+
+ BAMBOO: {
+ name: 'Injective Panda',
+ logo: 'panda.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j',
+ symbol: 'BAMBOO',
+ decimals: 6,
+ },
+ {
+ creator: 'inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy',
+ symbol: 'BAMBOO',
+ decimals: 6,
+ },
+ ],
+ },
+
+ SHURIKEN: {
+ name: 'Shuriken Token',
+ logo: 'shuriken.jpeg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0',
+ symbol: 'SHURIKEN',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju',
+ symbol: 'SHURIKEN',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0',
+ symbol: 'SHURIKEN',
+ decimals: 6,
+ },
+ ],
+ },
+
+ BRETT: {
+ name: 'BluePepe',
+ logo: 'brett.jpeg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv',
+ symbol: 'BRETT',
+ decimals: 6,
+ },
+ ],
+ },
+
+ ZIG: {
+ name: 'ZigCoin',
+ logo: 'zigg.png',
+ coinGeckoId: 'zignaly',
+
+ erc20: {
+ symbol: 'ZIG',
+ decimals: 18,
+ address: '0xb2617246d0c6c0087f18703d576831899ca94f01',
+ },
+ },
+
+ DOJ: {
+ name: 'DOJcoin',
+ logo: 'doj.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9',
+ symbol: 'DOJ',
+ decimals: 6,
+ },
+ ],
+ },
+
+ SKIPBIDIDOBDOBDOBYESYESYESYES: {
+ name: 'SKIPBIDIDOBDOBDOBYESYESYESYES',
+ logo: 'skibidi.jpeg',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'SKIPBIDIDOBDOBDOBYESYESYESYES',
+ decimals: 9,
+ address: '0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d',
+ },
+ },
+
+ GINGER: {
+ name: 'GINGER',
+ logo: 'ginger.png',
+ coinGeckoId: 'ginger',
+
+ tokenFactories: [
+ {
+ creator: 'inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9',
+ symbol: 'GINGER',
+ decimals: 6,
+ },
+ ],
+ },
+
+ ERIC: {
+ name: 'TheJanitor',
+ logo: 'eric.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77',
+ symbol: 'ERIC',
+ decimals: 6,
+ },
+ ],
+ },
+
+ INJINU: {
+ name: 'INJINU',
+ logo: 'injinu.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm',
+ symbol: 'INJINU',
+ decimals: 6,
+ },
+ ],
+ },
+
+ Babykira: {
+ name: 'Babykira',
+ logo: 'babykira.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93',
+ symbol: '$Babykira',
+ decimals: 6,
+ },
+ {
+ creator: 'inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu',
+ symbol: '$Babykira',
+ decimals: 6,
+ },
+ ],
+ },
+
+ LIOR: {
+ name: 'LIOR',
+ logo: 'lior.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx',
+ symbol: 'LIOR',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3',
+ symbol: 'LIOR',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh',
+ symbol: 'LIOR',
+ decimals: 6,
+ },
+ ],
+ },
+
+ INJER: {
+ name: 'INJINEER',
+ logo: 'INJINEER.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn',
+ symbol: 'INJER',
+ decimals: 6,
+ },
+ ],
+ },
+
+ SHIBA: {
+ name: 'Shiba',
+ logo: 'shiba.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r',
+ symbol: 'Shiba INJ',
+ decimals: 6,
+ },
+ ],
+ },
+
+ GROK: {
+ name: 'GROK',
+ logo: 'grok.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z',
+ symbol: 'GROK',
+ decimals: 6,
+ },
+ ],
+ },
+
+ SNOWY: {
+ name: 'Injective Snowy',
+ logo: 'snowy.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk',
+ symbol: 'SNOWY',
+ decimals: 6,
+ },
+ ],
+ },
+
+ BULLS: {
+ name: 'BULLS',
+ logo: 'bulls.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3',
+ symbol: 'BULLS',
+ decimals: 6,
+ },
+ ],
+ },
+
+ LVN: {
+ name: 'Levana',
+ coinGeckoId: 'levana-protocol',
+ logo: 'lvn.png',
+
+ ibcs: [
+ {
+ symbol: 'LVN',
+ decimals: 6,
+ isNative: false,
+ baseDenom: 'ulvn',
+ path: 'transfer/channel-8',
+ channelId: 'channel-8',
+ hash: '4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ KINJA: {
+ name: 'Kinja',
+ logo: 'kinja.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k',
+ symbol: 'KINJA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ LAMA: {
+ name: 'LAMA',
+ logo: 'lama.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl',
+ symbol: 'LAMA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ INJEX: {
+ name: 'Internet Explorer',
+ logo: 'injex.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg',
+ symbol: 'NINJB',
+ decimals: 6,
+ },
+ ],
+ },
+
+ NINJB: {
+ name: 'NINJB',
+ logo: 'ninjb.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n',
+ symbol: 'NINJB',
+ decimals: 6,
+ },
+ ],
+ },
+
+ KARATE: {
+ name: 'Doge Wif Karate',
+ logo: 'karate.jpg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv',
+ symbol: 'KARATE',
+ decimals: 6,
+ },
+ ],
+ },
+
+ NPEPE: {
+ name: 'NinjaPepe',
+ logo: 'npepe.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0',
+ symbol: 'NPEPE',
+ decimals: 6,
+ },
+ ],
+ },
+
+ MILK: {
+ name: 'MILK',
+ logo: 'milk.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry',
+ symbol: 'MILK',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck',
+ symbol: 'MILK',
+ decimals: 6,
+ },
+ ],
+ },
+
+ INCEL: {
+ name: 'InjectiveCelestiaNoFapLadyBoy420Inu',
+ logo: 'incel.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh',
+ symbol: 'INCEL',
+ decimals: 6,
+ },
+ ],
+ },
+
+ PIKACHU: {
+ name: 'Pikachu',
+ logo: 'pikachu.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u',
+ symbol: 'PIKA',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00',
+ symbol: 'PIKA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WGMI: {
+ name: 'WGMI',
+ logo: 'wgmi.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546',
+ symbol: 'WGMI',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WIZZ: {
+ name: 'WIZZ',
+ logo: 'wizz.jpeg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst',
+ symbol: 'WIZZ',
+ decimals: 6,
+ },
+ ],
+ },
+
+ MEMEME: {
+ name: 'Mememe',
+ logo: 'meme.png',
+ coinGeckoId: 'mememe',
+
+ erc20: {
+ symbol: 'MEMEME',
+ decimals: 18,
+ address: '0x1A963Df363D01EEBB2816b366d61C917F20e1EbE',
+ },
+ },
+
+ MAGA: {
+ name: 'Trump',
+ logo: 'maga.png',
+ coinGeckoId: 'maga',
+
+ erc20: {
+ symbol: 'MAGA',
+ decimals: 9,
+ address: '0x576e2BeD8F7b46D34016198911Cdf9886f78bea7',
+ },
+ },
+
+ SDEX: {
+ name: 'SmarDex',
+ logo: 'maga.png',
+ coinGeckoId: 'smardex',
+
+ erc20: {
+ symbol: 'SDEX',
+ decimals: 18,
+ address: '0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF',
+ },
+ },
+
+ OX: {
+ name: 'Open Exchange Token',
+ logo: 'ox.png',
+ coinGeckoId: 'open-exchange-token',
+
+ erc20: {
+ symbol: 'OX',
+ decimals: 18,
+ address: '0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f',
+ },
+ },
+
+ FUSDT: {
+ name: 'Flux USDT',
+ logo: 'flux.png',
+ coinGeckoId: 'flux-usdt',
+
+ erc20: {
+ symbol: 'fUSDT',
+ decimals: 8,
+ address: '0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7',
+ },
+ },
+
+ PVP: {
+ name: 'PVP',
+ logo: 'unknown.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'PVP',
+ decimals: 8,
+ address: '0x9B44793a0177C84DD01AD81137db696531902871',
+ },
+ },
+
+ POOR: {
+ name: 'Proof Of Officially Rugged',
+ logo: 'unknown.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'POOR',
+ decimals: 8,
+ address: '0x9D433Fa992C5933D6843f8669019Da6D512fd5e9',
+ },
+ },
+
+ VRD: {
+ name: 'Viridis Network',
+ logo: 'vrd.png',
+ coinGeckoId: 'viridis-network',
+
+ erc20: {
+ symbol: 'VRD',
+ decimals: 18,
+ address: '0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8',
+ },
+ },
+
+ NONE: {
+ name: 'None Trading',
+ logo: 'none.webp',
+ coinGeckoId: 'none-trading',
+
+ erc20: {
+ symbol: 'NONE',
+ decimals: 18,
+ address: '0x903ff0ba636E32De1767A4B5eEb55c155763D8B7',
+ },
+ },
+
+ DUDE: {
+ name: 'DUDE',
+ logo: 'dude.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53',
+ symbol: 'DUDE',
+ decimals: 6,
+ },
+ ],
+ },
+
+ AUTISM: {
+ name: 'AUTISM',
+ logo: 'autism.png',
+ coinGeckoId: 'autism',
+
+ tokenFactories: [
+ {
+ creator: 'inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz',
+ symbol: 'AUTISM',
+ decimals: 6,
+ },
+ ],
+ },
+
+ EXTRAVIRGINOLIVEINU: {
+ name: 'Extra Virgin Olive Inu',
+ logo: 'extravirginoliveinu.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5',
+ symbol: 'NOBITCHES',
+ decimals: 6,
+ },
+ ],
+ },
+
+ MILA: {
+ name: 'MILA',
+ logo: 'mila.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf',
+ symbol: 'MILA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ IPDAI: {
+ name: 'Injective Panda AI',
+ logo: 'ipdai.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul',
+ symbol: 'IPandaAI',
+ decimals: 6,
+ },
+ ],
+ },
+
+ COCK: {
+ name: 'ROOSTER NINJA',
+ logo: 'cock.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf',
+ symbol: 'COCK',
+ decimals: 6,
+ },
+ ],
+ },
+
+ MOONIFY: {
+ name: 'Moonify',
+ logo: 'moonify.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6',
+ symbol: 'MOONIFY',
+ decimals: 6,
+ },
+ ],
+ },
+
+ KARMAINJ: {
+ name: 'Karma',
+ logo: 'karma.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm',
+ symbol: 'KARMA',
+ decimals: 6,
+ },
+ ],
+ },
+
+ DREAM: {
+ name: 'DREAM',
+ logo: 'DREAM.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59',
+ symbol: 'DREAM',
+ decimals: 6,
+ },
+ ],
+ },
+
+ DGNZ: {
+ name: 'Injective Degens',
+ logo: 'DGNZ.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59',
+ symbol: 'DGNZ',
+ decimals: 6,
+ },
+ ],
+ },
+
+ INJECT: {
+ name: 'Injectools',
+ logo: 'INJECT.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk',
+ symbol: 'INJECT',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WAIFU: {
+ name: 'Waifu',
+ logo: 'waifu-logo.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49',
+ symbol: 'WAIFU',
+ decimals: 6,
+ },
+ ],
+ },
+
+ APP: {
+ name: 'Moon App',
+ logo: 'app.jpeg',
+ coinGeckoId: 'moon-app',
+
+ erc20: {
+ symbol: 'APP',
+ decimals: 18,
+ address: '0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439',
+ },
+ },
+
+ DOJO: {
+ name: 'Dojo Token',
+ logo: 'dojo-token.png',
+
+ cw20s: [
+ {
+ coinGeckoId: 'dojo-token',
+ symbol: 'DOJO',
+ name: 'Dojo Token',
+ decimals: 18,
+ address: 'inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923',
+ },
+ ],
+
+ tokenFactories: [
+ {
+ decimals: 6,
+ symbol: 'DOJO',
+ name: 'Dojo Bot',
+ logo: 'dojo.png',
+ creator: 'inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc',
+ },
+ ],
+ },
+
+ PUNK: {
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'PUNK',
+ name: 'Punk Token',
+ decimals: 18,
+ logo: 'punk-token.webp',
+ address: 'inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt',
+ },
+ ],
+
+ tokenFactories: [
+ {
+ name: 'Punk DAO Token',
+ logo: 'PUNK.png',
+ creator: 'inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs',
+ symbol: 'PUNK',
+ decimals: 6,
+ },
+ ],
+ },
+
+ ORNE: {
+ name: 'ORNE',
+ logo: 'orne.png',
+ coinGeckoId: 'orne',
+
+ ibcs: [
+ {
+ symbol: 'ORNE',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'cw20:terra19p20mfnvwh9yvyr7aus3a6z6g6uk28fv4jhx9kmnc2m7krg27q2qkfenjw',
+ path: 'transfer/channel-116',
+ channelId: 'channel-116',
+ hash: '3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ DROGO: {
+ name: 'DROGO',
+ logo: 'drogo.png',
+
+ ibcs: [
+ {
+ symbol: 'DROGO',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'cw20:terra1cl273523kmr2uwjhhznq54je69mted2u3ljffm8kp2ap4z3drdksftwqun',
+ path: 'transfer/channel-118',
+ channelId: 'channel-118',
+ hash: '565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ RAMEN: {
+ name: 'Ramen',
+ logo: 'ramen.jpeg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke',
+ symbol: 'RAMEN',
+ decimals: 6,
+ },
+ ],
+ },
+
+ GYEN: {
+ name: 'GMO JPY',
+ logo: 'gyen.webp',
+ coinGeckoId: 'gyen',
+
+ erc20: {
+ symbol: 'GYEN',
+ decimals: 6,
+ address: '0xC08512927D12348F6620a698105e1BAac6EcD911',
+ },
+ },
+
+ ZRO: {
+ name: 'LayerZero',
+ logo: 'zro.jpeg',
+ decimals: 6,
+ symbol: 'ZRO',
+ coinGeckoId: 'layerzero',
+ tokenType: TokenType.Unknown,
+ },
+
+ JUP: {
+ name: 'Jupiter',
+ logo: 'jup.jpeg',
+ decimals: 6,
+ symbol: 'JUP',
+ coinGeckoId: 'jupiter-exchange-solana',
+ tokenType: TokenType.Unknown,
+ },
+
+ ALIEN: {
+ name: 'ALIEN',
+ logo: 'alien.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6',
+ symbol: '$ALIEN',
+ decimals: 6,
+ },
+ ],
+ },
+
+ RICE: {
+ name: 'RICE',
+ logo: 'RICE.jpeg',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426',
+ symbol: 'RICE',
+ decimals: 12,
+ },
+ ],
+ },
+
+ BITS: {
+ name: 'bits',
+ logo: 'bits.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n',
+ symbol: 'BITS',
+ decimals: 6,
+ },
+ ],
+ },
+
+ WOSMO: {
+ name: 'Wosmo',
+ logo: 'WOSMO.png',
+ coinGeckoId: '',
+
+ ibcs: [
+ {
+ symbol: 'WOSMO',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'factory/osmo1pfyxruwvtwk00y8z06dh2lqjdj82ldvy74wzm3/WOSMO',
+ path: 'transfer/channel-8',
+ channelId: 'channel-8',
+ hash: 'DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ IKINGS: {
+ name: 'Injective Kings',
+ logo: 'IKINGS.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426',
+ symbol: 'IKINGS',
+ decimals: 6,
+ },
+ ],
+ },
+
+ BEAST: {
+ name: 'Gelotto BEAST',
+ logo: 'beast.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'BEAST',
+ decimals: 6,
+ address: '0xA4426666addBE8c4985377d36683D17FB40c31Be',
+ },
+ },
+
+ GLTO: {
+ name: 'Gelotto',
+ logo: 'GLTO.png',
+ coinGeckoId: '',
+
+ erc20: {
+ symbol: 'GLTO',
+ decimals: 6,
+ address: '0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2',
+ },
+ },
+
+ SUI: {
+ name: 'Sui',
+ logo: 'sui.webp',
+ decimals: 9,
+ symbol: 'SUI',
+ coinGeckoId: 'sui',
+ tokenType: TokenType.Unknown,
+ },
+
+ WIF: {
+ name: 'dogwifhat',
+ logo: 'wif.webp',
+ decimals: 6,
+ symbol: 'WIF',
+ coinGeckoId: 'dogwifcoin',
+ tokenType: TokenType.Unknown,
+ },
+
+ OP: {
+ name: 'Optimism',
+ logo: 'optimism.webp',
+ decimals: 18,
+ symbol: 'OP',
+ coinGeckoId: 'optimism',
+ tokenType: TokenType.Unknown,
+ },
+
+ DOGE: {
+ name: 'Dogecoin',
+ logo: 'dogecoin.webp',
+ decimals: 8,
+ symbol: 'DOGE',
+ coinGeckoId: 'dogecoin',
+ tokenType: TokenType.Unknown,
+ },
+
+ ANDR: {
+ name: 'Andromeda',
+ logo: 'andromeda.webp',
+ coinGeckoId: 'andromeda-2',
+
+ ibcs: [
+ {
+ symbol: 'ANDR',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'uandr',
+ path: 'transfer/channel-213',
+ channelId: 'channel-213',
+ hash: '61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ hINJ: {
+ name: 'Hydro Wrapped INJ',
+ logo: 'hinj.svg',
+ symbol: 'hINJ',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'hINJ',
+ decimals: 18,
+ address: 'inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc',
+ },
+ ],
+ },
+
+ QUNT: {
+ name: 'QUNT',
+ logo: 'qunt.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64',
+ symbol: 'QUNT',
+ decimals: 6,
+ },
+ ],
+ },
+
+ HDRO: {
+ name: 'Hydro',
+ logo: 'hydro.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk',
+ symbol: 'HDRO',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw',
+ symbol: 'HDRO',
+ decimals: 6,
+ },
+ {
+ creator: 'inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw',
+ symbol: 'HDRO',
+ decimals: 6,
+ },
+ ],
+ },
+
+ DINJ: {
+ name: 'Dojo Staked INJ',
+ logo: 'dinj.svg',
+ symbol: 'dINJ',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'dINJ',
+ decimals: 18,
+ address: 'inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9',
+ },
+ ],
+ },
+
+ BMOS: {
+ name: 'BMOS',
+ logo: 'bitmos.png',
+ coinGeckoId: '',
+
+ ibcs: [
+ {
+ symbol: 'BMOS',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'cw20:terra1sxe8u2hjczlekwfkcq0rs28egt38pg3wqzfx4zcrese4fnvzzupsk9gjkq',
+ path: 'transfer/channel-104',
+ channelId: 'channel-104',
+ hash: 'D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ XNJ: {
+ name: 'xNinja.Tech Token',
+ logo: 'xnj.png',
+ symbol: 'XNJ',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'XNJ',
+ decimals: 18,
+ address: 'inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar',
+ },
+ ],
+ },
+
+ USDE: {
+ name: 'Ethena USDe',
+ logo: 'usde.png',
+ coinGeckoId: 'ethena-usde',
+
+ erc20: {
+ symbol: 'USDe',
+ decimals: 18,
+ address: '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3',
+ },
+ },
+
+ KAGE: {
+ name: 'Kage',
+ coinGeckoId: 'kage',
+
+ cw20s: [
+ {
+ symbol: 'KAGE',
+ logo: 'kage.png',
+ address: 'inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65',
+ decimals: 18,
+ },
+ ],
+ },
+
+ blackINJ: {
+ name: 'blackINJ',
+ logo: 'blackINJ.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5',
+ symbol: 'bINJ',
+ decimals: 18,
+ },
+ ],
+ },
+
+ INJX: {
+ name: 'Injex Finance',
+ logo: 'injx.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp',
+ symbol: 'INJX',
+ decimals: 6,
+ },
+ ],
+ },
+
+ nINJ: {
+ name: 'Neptune Receipt INJ',
+ logo: 'neptinj.png',
+ symbol: 'nINJ',
+
+ cw20s: [
+ {
+ symbol: 'nINJ',
+ logo: 'neptinj.png',
+ address: 'inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f',
+ decimals: 18,
+ },
+ ],
+ },
+
+ nATOM: {
+ name: 'Neptune Receipt ATOM',
+ logo: 'natom.png',
+ symbol: 'nATOM',
+
+ cw20s: [
+ {
+ symbol: 'nATOM',
+ logo: 'natom.png',
+ address: 'inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780',
+ decimals: 6,
+ },
+ ],
+ },
+
+ nUSDT: {
+ name: 'Neptune Receipt USDT',
+ logo: 'nusdt.png',
+ symbol: 'nUSDT',
+
+ cw20s: [
+ {
+ symbol: 'nUSDT',
+ logo: 'nusdt.png',
+ address: 'inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s',
+ decimals: 6,
+ },
+ ],
+ },
+
+ nWETH: {
+ name: 'Neptune Receipt WETH',
+ logo: 'nweth.png',
+ symbol: 'nWETH',
+
+ cw20s: [
+ {
+ symbol: 'nWETH',
+ logo: 'nweth.png',
+ address: 'inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt',
+ decimals: 18,
+ },
+ ],
+ },
+
+ BAND: {
+ name: 'Band Protocol',
+ logo: 'band.webp',
+ coinGeckoId: 'band-protocol',
+
+ erc20: {
+ symbol: 'BAND',
+ decimals: 18,
+ address: '0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55',
+ },
+ },
+
+ BSKT: {
+ name: 'Basket',
+ logo: 'bskt.png',
+ coinGeckoId: 'basket',
+
+ erc20: {
+ decimals: 5,
+ symbol: 'BSKT',
+ address: '0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53',
+ },
+
+ spl: {
+ decimals: 5,
+ symbol: 'BSKT',
+ isNative: false,
+ address: '6gnCPhXtLnUD76HjQuSYPENLSZdG8RvDB1pTLM5aLSJA',
+ },
+
+ cw20s: [
+ {
+ symbol: 'BSKT',
+ decimals: 5,
+ source: TokenSource.Solana,
+ address: 'inj193340xxv49hkug7r65xzc0l40tze44pee4fj94',
+ },
+ ],
+ },
+
+ BLACK: {
+ name: 'BLACK',
+ logo: 'BLACK.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85',
+ symbol: 'BLACK',
+ decimals: 6,
+ },
+ ],
+ },
+
+ ROOT: {
+ name: 'The Root Network',
+ logo: 'root.png',
+ coinGeckoId: 'the-root-network',
+
+ erc20: {
+ symbol: 'ROOT',
+ decimals: 6,
+ address: '0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29',
+ },
+ },
+
+ NONJA: {
+ name: 'NONJA',
+ logo: 'nonja.png',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'NONJA',
+ decimals: 18,
+ address: 'inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck',
+ },
+ ],
+ },
+
+ NBOY: {
+ name: 'NinjaBoy',
+ logo: 'NBlogo.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7',
+ symbol: 'NBOY',
+ decimals: 6,
+ },
+ ],
+ },
+
+ MONKS: {
+ name: 'MONKS',
+ logo: 'monksimg.png',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'MONKS',
+ decimals: 18,
+ address: 'inj148sjw9h9n3n8gjw37reetwdlc7v4hfhl8r7vv3',
+ },
+ ],
+ },
+
+ RAY: {
+ name: 'Raymond',
+ logo: 'ray.png',
+ symbol: 'RAY',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'RAY',
+ decimals: 6,
+ address: 'inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0',
+ },
+ ],
+ },
+
+ SUSDE: {
+ name: 'Staked USDe',
+ logo: 'staked-usde.webp',
+ coinGeckoId: 'ethena-staked-usde',
+
+ erc20: {
+ symbol: 'sUSDE',
+ decimals: 18,
+ address: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497',
+ },
+ },
+
+ NLC: {
+ name: 'Ninja Labs Coin',
+ logo: 'nlc.png',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'NLC',
+ decimals: 6,
+ address: 'inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4',
+ },
+ ],
+ },
+
+ ENA: {
+ name: 'Ethena',
+ logo: 'ethena.webp',
+ coinGeckoId: 'ethena',
+
+ erc20: {
+ symbol: 'ENA',
+ decimals: 18,
+ address: '0x57e114b691db790c35207b2e685d4a43181e6061',
+ },
+ },
+
+ BONJO: {
+ name: 'Bonjo',
+ logo: 'bonjo.png',
+ coinGeckoId: '',
+
+ cw20s: [
+ {
+ symbol: 'BONJO',
+ decimals: 18,
+ address: 'inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6',
+ },
+ ],
+
+ tokenFactories: [
+ {
+ creator: 'inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w',
+ symbol: 'BONJO',
+ decimals: 6,
+ },
+ ],
+ },
+
+ BONUS: {
+ name: 'Bonus Block',
+ coinGeckoId: '',
+ logo: 'bonus-block.png',
+
+ ibcs: [
+ {
+ symbol: 'BONUS',
+ decimals: 8,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/5mejeW9oeeWU7B84t6CSjXskTumVWsapjsbpsivtVZQw',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: 'DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF',
+ source: TokenSource.Arbitrum,
+ },
+ ],
+ },
+
+ W: {
+ name: 'Wormhole',
+ coinGeckoId: 'wormhole',
+ logo: 'wormhole.png',
+
+ ibcs: [
+ {
+ symbol: 'W',
+ decimals: 6,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/2Wb6ueMFc9WLc2eyYVha6qnwHKbwzUXdooXsg6XXVvos',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: 'F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537',
+ source: TokenSource.Solana,
+ },
+ ],
+ },
+
+ SAE: {
+ name: 'Summoners Arena Essence',
+ logo: 'sae.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr',
+ symbol: 'SAE',
+ decimals: 6,
+ },
+ ],
+
+ evm: {
+ symbol: 'SAE',
+ decimals: 18,
+ address: '0x2FD85ED6EF7c26E07619cF32aee535f3D4393a0F',
+ },
+
+ ibcs: [
+ {
+ symbol: 'SAE',
+ decimals: 8,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/2mWv5umZHxJ1X8zMeSw3hFPdGuUZmq5UjbCsmJcDdEW1',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB',
+ source: TokenSource.BinanceSmartChain,
+ },
+ ],
+ },
+
+ XIII: {
+ name: 'XIII Coin',
+ logo: 'xiii.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e',
+ symbol: 'XIII',
+ decimals: 6,
+ },
+ ],
+ },
+
+ DDL: {
+ name: 'Discordels Token',
+ logo: 'ddl.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls',
+ symbol: 'DDL',
+ decimals: 6,
+ },
+ ],
+ },
+
+ ASG: {
+ name: 'Ancient Summoners Gem',
+ logo: 'asg.png',
+ coinGeckoId: '',
+
+ evm: {
+ symbol: 'ASG',
+ decimals: 18,
+ address: '0x2ef776488739722Ad174F8f2ffE76eb67a8467Eb',
+ },
+
+ ibcs: [
+ {
+ symbol: 'ASG',
+ decimals: 8,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/54RgtKyJuM9boEu4G7Dzp2mMrg6w5MuctfU95HoHHeL3',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021',
+ source: TokenSource.BinanceSmartChain,
+ },
+ ],
+ },
+
+ CLON: {
+ name: 'CLON',
+ logo: 'clon1.png',
+
+ ibcs: [
+ {
+ symbol: 'CLON',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'cw20:terra164ssz60yvsxey0ku9mtcaegdeyxwzuwwqyrp238nvflwqve0pvxsra7fa2',
+ path: 'transfer/channel-116',
+ channelId: 'channel-116',
+ hash: '695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ SPUUN: {
+ name: 'SPUUN',
+ logo: 'spuun.png',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7',
+ symbol: 'SPUUN',
+ decimals: 6,
+ },
+ ],
+ },
+
+ OMNI: {
+ name: 'Omni Network',
+ logo: 'omni.png',
+ symbol: 'OMNI',
+ coinGeckoId: 'omni-network',
+
+ erc20: {
+ symbol: 'OMNI',
+ decimals: 18,
+ address: '0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4',
+ },
+ },
+
+ SAGA: {
+ name: 'Saga',
+ logo: 'saga.webp',
+
+ ibcs: [
+ {
+ symbol: 'SAGA',
+ decimals: 6,
+ isNative: true,
+ baseDenom: 'usaga',
+ path: 'transfer/channel-261',
+ channelId: 'channel-261',
+ hash: 'AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ ezETH: {
+ name: 'Renzo Restaked ETH',
+ logo: 'ezeth.webp',
+ symbol: 'ezETH',
+ coinGeckoId: 'renzo-restaked-eth',
+
+ erc20: {
+ symbol: 'ezETH',
+ decimals: 18,
+ address: '0xbf5495Efe5DB9ce00f80364C8B423567e58d2110',
+ },
+ },
+
+ GOLDIE: {
+ name: 'Goldicocks',
+ logo: 'goldie.webp',
+ symbol: 'GOLDIE',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc',
+ symbol: 'GOLDIE',
+ decimals: 6,
+ },
+ ],
+ },
+ XAG: {
+ name: 'Silver',
+ symbol: 'XAG',
+ decimals: 6,
+ logo: 'xag.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+
+ CAD: {
+ name: 'Canadian Dollar',
+ symbol: 'CAD',
+ decimals: 6,
+ logo: 'cad.svg',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ },
+ NBZ: {
+ name: 'Ninja Blaze Token',
+ coinGeckoId: '',
+ logo: 'nbz.png',
+
+ ibcs: [
+ {
+ symbol: 'NBZ',
+ decimals: 6,
+ isNative: true,
+ baseDenom:
+ 'factory/neutron1a6ydq8urdj0gkvjw9e9e5y9r5ce2qegm9m4xufpt96kcm60kmuass0mqq4/nbz',
+ path: 'transfer/channel-177',
+ channelId: 'channel-177',
+ hash: '1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D',
+ source: TokenSource.Cosmos,
+ },
+ ],
+ },
+
+ MOTHER: {
+ name: 'MOTHER IGGY',
+ coinGeckoId: 'mother-iggy',
+ logo: 'mother.webp',
+
+ ibcs: [
+ {
+ symbol: 'MOTHER',
+ decimals: 6,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/3yX6ZZbagFp8pLni1gsy9zifaCMYyARGqADqCBwgABgA',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: '984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE',
+ source: TokenSource.Solana,
+ },
+ ],
+ },
+
+ BODEN: {
+ name: 'jeo boden',
+ logo: 'boden.png',
+ decimals: 9,
+ symbol: 'BODEN',
+ coinGeckoId: 'jeo-boden',
+ tokenType: TokenType.Unknown,
+ },
+
+ GME: {
+ name: 'GME',
+ coinGeckoId: 'gme',
+ logo: 'gme.jpeg',
+
+ ibcs: [
+ {
+ symbol: 'GME',
+ decimals: 8,
+ isNative: false,
+ baseDenom:
+ 'factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/3nNG5xw6fTXkcQCr36ySsd2jpQR5HgVvrQJtsSaAtiQq',
+ path: 'transfer/channel-183',
+ channelId: 'channel-183',
+ hash: 'CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272',
+ source: TokenSource.Solana,
+ },
+ ],
+ },
+
+ COKE: {
+ name: 'COKE',
+ logo: 'coke.webp',
+ coinGeckoId: '',
+
+ tokenFactories: [
+ {
+ creator: 'inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6',
+ symbol: 'COKE',
+ decimals: 6,
+ },
+ ],
+
+ cw20s: [
+ {
+ decimals: 6,
+ symbol: 'COKE',
+ address: 'inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp',
+ },
+ ],
+ },
+} as Record
diff --git a/packages/token-metadata/src/types.ts b/deprecated/token-metadata/src/types.ts
similarity index 58%
rename from packages/token-metadata/src/types.ts
rename to deprecated/token-metadata/src/types.ts
index 119892441..03695e03c 100644
--- a/packages/token-metadata/src/types.ts
+++ b/deprecated/token-metadata/src/types.ts
@@ -5,6 +5,7 @@ export enum TokenType {
Erc20 = 'erc20',
Evm = 'evm',
Native = 'native',
+ Symbol = 'symbol',
TokenFactory = 'tokenFactory',
InsuranceFund = 'insuranceFund',
Unknown = 'unknown',
@@ -12,6 +13,7 @@ export enum TokenType {
export enum TokenVerification {
Verified = 'verified' /** verified on token-metadata package */,
+ Submitted = 'submitted' /** submitted on token-metadata package but not verified */,
Internal = 'internal' /** verified from on-chain data */,
External = 'external' /** verified on external source */,
Unverified = 'unverified' /** unverified on any source */,
@@ -29,48 +31,95 @@ export enum TokenSource {
Sui = 'sui',
Ibc = 'ibc',
BinanceSmartChain = 'binance-smart-chain',
+ Axelar = 'axelar',
+}
+
+/** natively created denoms - not derived from a CW20 */
+export interface NativeTokenFactoryMeta {
+ creator: string
+ symbol: string
+ name?: string
+ logo?: string
+ description?: string
+ decimals: number
+ coinGeckoId?: string
}
export interface IbcTokenMeta {
hash: string
path: string
+ name?: string
+ logo?: string
channelId: string
decimals: number
- symbol?: string
+ symbol: string
isNative: boolean
baseDenom: string
+ coinGeckoId?: string
}
export interface SplTokenMeta {
address: string
decimals: number
- symbol?: string
+ symbol: string
+ name?: string
+ logo?: string
isNative?: boolean
+ coinGeckoId?: string
}
export interface Erc20TokenMeta {
address: string
decimals: number
- symbol?: string
+ symbol: string
+ name?: string
+ logo?: string
isNative?: boolean
+ coinGeckoId?: string
}
export interface EvmTokenMeta {
address: string
decimals: number
- symbol?: string
+ symbol: string
+ name?: string
+ logo?: string
isNative?: boolean
+ coinGeckoId?: string
}
export interface Cw20TokenMeta {
address: string
decimals: number
- tokenType: TokenType.Cw20
+ symbol: string
+ name?: string
+ logo?: string
+ coinGeckoId?: string
}
export interface Cw20TokenMetaWithSource extends Cw20TokenMeta {
- symbol: string
- source: TokenSource
+ source?: TokenSource
+}
+
+export interface IbcTokenMetaWithSource extends IbcTokenMeta {
+ source?: TokenSource
+}
+
+export interface TokenMetaBase {
+ name?: string
+ logo?: string
+ symbol?: string
+ decimals?: number
+ tokenType?: TokenType // primary token type
+ tokenVerification?: TokenVerification
+ coinGeckoId?: string
+
+ ibcs?: Array>
+ spl?: Omit
+ cw20s?: Array>
+ erc20?: Omit
+ evm?: Omit
+ tokenFactories?: Array>
}
export interface TokenMeta {
@@ -78,16 +127,20 @@ export interface TokenMeta {
logo: string
symbol: string
decimals: number
- tokenType?: TokenType
+ tokenType: TokenType
tokenVerification?: TokenVerification
coinGeckoId: string
ibc?: IbcTokenMeta
spl?: SplTokenMeta
cw20?: Cw20TokenMeta
- cw20s?: Cw20TokenMetaWithSource[] // When there are multiple variations of the same CW20 token
erc20?: Erc20TokenMeta
evm?: EvmTokenMeta
+ tokenFactory?: NativeTokenFactoryMeta
+}
+
+export type TokenBase = TokenMetaBase & {
+ denom: string
}
export type BaseToken = TokenMeta & {
@@ -97,49 +150,48 @@ export type BaseToken = TokenMeta & {
// Insurance fund tokens, token factory tokens, etc
export interface NativeToken extends TokenMeta {
denom: string
- tokenType: TokenType
}
export interface Erc20Token extends BaseToken {
erc20: Erc20TokenMeta
- tokenType: TokenType
}
export interface EvmToken extends BaseToken {
evm: EvmTokenMeta
- tokenType: TokenType
}
export interface IbcToken extends BaseToken {
ibc: IbcTokenMeta
- tokenType: TokenType
}
export interface Cw20TokenSingle extends BaseToken {
cw20: Cw20TokenMeta
- tokenType: TokenType
}
export interface Cw20TokenMultiple extends BaseToken {
cw20s: Cw20TokenMetaWithSource[]
- tokenType: TokenType
+}
+
+export interface IbcTokenMultiple extends BaseToken {
+ ibcs: IbcTokenMetaWithSource[]
}
export interface Cw20Token extends BaseToken {
cw20: Cw20TokenMeta
- cw20s: Cw20TokenMetaWithSource[]
- tokenType: TokenType
}
export interface SplToken extends BaseToken {
spl: SplTokenMeta
- tokenType: TokenType
}
+/** @deprecated - use TokenFactoryToken */
export interface FactoryToken extends BaseToken {
display: string
description: string
- tokenType: TokenType
+}
+
+export interface TokenFactoryToken extends BaseToken {
+ tokenFactory: NativeTokenFactoryMeta
}
export type Token =
@@ -152,6 +204,7 @@ export type Token =
| NativeToken
| SplToken
| FactoryToken
+ | TokenFactoryToken
export type TokenWithPrice = Token & { usdPrice: number }
@@ -164,3 +217,22 @@ export interface GrpcTokenMeta {
decimals: number
updatedAt: number
}
+
+export interface TokenStatic {
+ name: string
+ logo: string
+ symbol: string
+ decimals: number
+ coinGeckoId: string
+ denom: string
+ address: string
+ tokenType: TokenType
+ tokenVerification: TokenVerification
+ isNative?: boolean
+ source?: TokenSource
+ hash?: string
+ path?: string
+ channelId?: string
+ baseDenom?: string
+ externalLogo?: string
+}
diff --git a/packages/token-metadata/src/tokens/canonical.ts b/deprecated/token-metadata/src/utils/canonical.ts
similarity index 100%
rename from packages/token-metadata/src/tokens/canonical.ts
rename to deprecated/token-metadata/src/utils/canonical.ts
diff --git a/deprecated/token-metadata/src/utils/helpers.ts b/deprecated/token-metadata/src/utils/helpers.ts
new file mode 100644
index 000000000..1429a3a08
--- /dev/null
+++ b/deprecated/token-metadata/src/utils/helpers.ts
@@ -0,0 +1,199 @@
+import {
+ Network,
+ getCw20AdapterContractForNetwork,
+} from '@injectivelabs/networks'
+import { TokenMetaUtilsFactory } from '../TokenMetaUtilsFactory'
+import {
+ Token,
+ TokenType,
+ TokenBase,
+ TokenSource,
+ IbcTokenMeta,
+ Cw20TokenMeta,
+ TokenVerification,
+ IbcTokenMetaWithSource,
+ Cw20TokenMetaWithSource,
+ NativeTokenFactoryMeta,
+} from '../types'
+import { getChannelIdFromPath } from '../ibc'
+
+/**
+ * Token factory denoms created by the adapter contract
+ */
+export const getTokenFactoryDenomByAdapter = (
+ cw20address: string,
+ network: Network = Network.Mainnet,
+) => {
+ return `factory/${getCw20AdapterContractForNetwork(network)}/${cw20address}`
+}
+
+export const getPeggyDenomFromSymbolOrName = (
+ symbolOrName: string,
+ network: Network = Network.Mainnet,
+) => {
+ const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
+ const metaFromSymbol = tokenMetaUtils.getMetaBySymbol(symbolOrName)
+
+ if (!metaFromSymbol) {
+ return
+ }
+
+ if (!metaFromSymbol?.erc20) {
+ return
+ }
+
+ return `peggy${metaFromSymbol?.erc20?.address}`
+}
+
+export const getIbcDenomFromSymbolOrName = ({
+ symbolOrName,
+ network = Network.Mainnet,
+ source,
+}: {
+ symbolOrName: string
+ network?: Network
+ source?: TokenSource
+}) => {
+ const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
+ const metaFromSymbol = tokenMetaUtils.getMetaBySymbol(symbolOrName)
+
+ if (!metaFromSymbol) {
+ return
+ }
+
+ if (!metaFromSymbol?.ibcs) {
+ return
+ }
+
+ const meta = metaFromSymbol
+
+ if (source) {
+ const ibcHash = meta?.ibcs?.find((ibc) => ibc.source === source)?.hash
+
+ return `ibc/${ibcHash}`
+ }
+
+ const defaultIbcHash = meta.ibcs?.find(
+ (ibc) => ibc.source === TokenSource.Cosmos,
+ )?.hash
+ const [ibc] = meta.ibcs || []
+ const ibcHash = defaultIbcHash || ibc?.hash
+
+ return `ibc/${ibcHash}`
+}
+
+export const getCw20FromSymbolOrName = (
+ symbolOrName: string,
+ network: Network = Network.Mainnet,
+ source?: TokenSource,
+) => {
+ const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
+ const metaFromSymbol = tokenMetaUtils.getMetaBySymbol(symbolOrName)
+
+ if (!metaFromSymbol) {
+ return
+ }
+
+ if (!metaFromSymbol?.cw20s) {
+ return
+ }
+
+ const meta = metaFromSymbol
+
+ if (source) {
+ const cw20 = meta?.cw20s?.find((cw20) => cw20.source === source)
+
+ return cw20
+ ? getTokenFactoryDenomByAdapter(cw20.address, network)
+ : undefined
+ }
+
+ const [cw20] = meta.cw20s || []
+
+ return getTokenFactoryDenomByAdapter(cw20.address, network)
+}
+
+export const getCw20Meta = (
+ token: TokenBase,
+): Cw20TokenMetaWithSource | Cw20TokenMeta | undefined => {
+ const denomToLowerCase = token.denom.toLowerCase()
+ const cw20MetaFromCw20s = token.cw20s?.find((meta) =>
+ denomToLowerCase.includes(meta.address.toLowerCase()),
+ )
+
+ return cw20MetaFromCw20s || token.cw20s?.[0] || undefined
+}
+
+export const getIbcMeta = (
+ token: TokenBase,
+): IbcTokenMetaWithSource | IbcTokenMeta | undefined => {
+ const denomToLowerCase = token.denom.toLowerCase()
+ const ibcMetaFromIbcs = token.ibcs?.find((meta) =>
+ denomToLowerCase.includes(meta.hash.toLowerCase()),
+ )
+ const defaultIbcMeta = token.ibcs?.find(
+ (meta) => meta.source === TokenSource.Cosmos,
+ )
+
+ return ibcMetaFromIbcs || defaultIbcMeta || token.ibcs?.[0] || undefined
+}
+
+export const getNativeTokenFactoryMeta = (
+ token: TokenBase,
+): NativeTokenFactoryMeta | undefined => {
+ const [, creatorAddress] = token.denom.split('/').reverse()
+
+ return token.tokenFactories?.find(
+ (meta) => meta.creator.toLowerCase() === creatorAddress,
+ )
+}
+
+export const getUnknownToken = (denom: string): Token => {
+ return {
+ denom,
+ name: denom,
+ symbol: denom,
+ decimals: 18,
+ logo: 'unknown.png',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ tokenVerification: TokenVerification.Unverified,
+ } as Token
+}
+
+export const getUnknownTokenWithSymbol = (denom: string): Token => {
+ return {
+ denom,
+ name: denom,
+ symbol: 'UNKNOWN',
+ decimals: 0,
+ logo: 'unknown.png',
+ coinGeckoId: '',
+ tokenType: TokenType.Unknown,
+ tokenVerification: TokenVerification.Unverified,
+ } as Token
+}
+
+/** @deprecated - use getIbcTokenFromDenomTrace */
+export const getIbcTokenMetaFromDenomTrace = ({
+ hash,
+ path,
+ decimals,
+ baseDenom,
+}: {
+ decimals: number
+ hash: string
+ path: string
+ baseDenom: string
+}): IbcTokenMeta => ({
+ symbol: baseDenom,
+ hash,
+ path,
+ baseDenom,
+ decimals,
+ channelId: getChannelIdFromPath(path),
+ isNative: !baseDenom.startsWith('ibc'),
+})
+
+export const isCw20ContractAddress = (address: string) =>
+ address.length === 42 && address.startsWith('inj')
diff --git a/deprecated/token-metadata/src/utils/index.ts b/deprecated/token-metadata/src/utils/index.ts
new file mode 100644
index 000000000..8da6c50d8
--- /dev/null
+++ b/deprecated/token-metadata/src/utils/index.ts
@@ -0,0 +1,4 @@
+export * from './helpers'
+export * from './meta'
+export * from './canonical'
+export * from './token'
diff --git a/deprecated/token-metadata/src/utils/meta.ts b/deprecated/token-metadata/src/utils/meta.ts
new file mode 100644
index 000000000..880f3cdbb
--- /dev/null
+++ b/deprecated/token-metadata/src/utils/meta.ts
@@ -0,0 +1,360 @@
+import { INJ_DENOM } from '@injectivelabs/utils'
+import {
+ Token,
+ IbcToken,
+ TokenBase,
+ TokenType,
+ Cw20TokenMetaWithSource,
+ IbcTokenMetaWithSource,
+} from '../types'
+import {
+ getIbcMeta,
+ getCw20Meta,
+ isCw20ContractAddress,
+ getNativeTokenFactoryMeta,
+} from './helpers'
+import { getChannelIdFromPath } from '../ibc'
+
+/** @deprecated - use getTokenInfo */
+export const getTokenTypeFromDenom = (denom: string) => {
+ if (denom === INJ_DENOM) {
+ return TokenType.Native
+ }
+
+ if (isCw20ContractAddress(denom)) {
+ return TokenType.Cw20
+ }
+
+ if (denom.startsWith('ibc')) {
+ return TokenType.Ibc
+ }
+
+ if (denom.startsWith('factory/')) {
+ return TokenType.TokenFactory
+ }
+
+ if (denom.startsWith('peggy')) {
+ return TokenType.Erc20
+ }
+
+ if (denom.startsWith('share')) {
+ return TokenType.InsuranceFund
+ }
+
+ return TokenType.Cw20
+}
+
+/** @deprecated - use getTokenInfo */
+export const getTokenSymbol = (token: Token) => {
+ if (token.denom.startsWith('factory/')) {
+ const [address] = token.denom.split('/').reverse()
+
+ if (isCw20ContractAddress(address)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return meta?.symbol || token.symbol
+ }
+
+ const meta = getNativeTokenFactoryMeta(token)
+
+ return meta?.symbol || token.symbol
+ }
+
+ if (token.denom.startsWith('peggy')) {
+ return token.erc20?.symbol || token.symbol
+ }
+
+ if (token.denom.startsWith('ibc')) {
+ return token.ibc?.symbol || token.symbol
+ }
+
+ return token.symbol
+}
+
+/** @deprecated - use getTokenInfo */
+export const getTokenLogo = (token: Token) => {
+ if (isCw20ContractAddress(token.denom)) {
+ return token.cw20?.name || token.name
+ }
+
+ if (token.denom.startsWith('factory/')) {
+ const [address] = token.denom.split('/').reverse()
+
+ if (isCw20ContractAddress(address)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return meta?.logo || token.logo
+ }
+
+ const meta = getNativeTokenFactoryMeta(token)
+
+ return meta?.logo || token.logo
+ }
+
+ if (token.denom.startsWith('peggy')) {
+ return token.erc20?.name || token.name
+ }
+
+ if (token.denom.startsWith('ibc')) {
+ return token.ibc?.name || token.name
+ }
+
+ return token.name
+}
+
+/** @deprecated - use getTokenInfo */
+export const getTokenName = (token: Token) => {
+ if (isCw20ContractAddress(token.denom)) {
+ return token.cw20?.name || token.name
+ }
+
+ if (token.denom.startsWith('factory/')) {
+ const [address] = token.denom.split('/').reverse()
+
+ if (isCw20ContractAddress(address)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return meta?.name || token.name
+ }
+
+ const meta = getNativeTokenFactoryMeta(token)
+
+ return meta?.name || token.name
+ }
+
+ if (token.denom.startsWith('peggy')) {
+ return token.erc20?.name || token.name
+ }
+
+ if (token.denom.startsWith('ibc')) {
+ return token.ibc?.name || token.name
+ }
+
+ return token.name
+}
+
+/** @deprecated - use getTokenInfo */
+export const getTokenDecimals = (token: Token) => {
+ if (token.denom === INJ_DENOM) {
+ return token.decimals
+ }
+
+ if (token.denom.startsWith('factory/')) {
+ const [address] = token.denom.split('/').reverse()
+
+ if (isCw20ContractAddress(address)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return meta?.decimals || token.decimals
+ }
+
+ const meta = getNativeTokenFactoryMeta(token)
+
+ return meta?.decimals || token.decimals
+ }
+
+ if (token.denom.startsWith('ibc')) {
+ const meta = getIbcMeta(token)
+
+ return meta?.decimals || token.decimals
+ }
+
+ if (token.denom.startsWith('peggy')) {
+ return token.erc20?.decimals || token.decimals
+ }
+
+ if (token.denom.startsWith('share')) {
+ return token.decimals
+ }
+
+ return token.decimals
+}
+
+/** @deprecated - use getTokenInfo */
+export const getTokenAddress = (token: Token) => {
+ if (token.denom === INJ_DENOM) {
+ return token.erc20?.address
+ }
+
+ if (token.denom.startsWith('inj')) {
+ return token.cw20?.address
+ }
+
+ if (token.denom.startsWith('factory/')) {
+ const [, , address] = token.denom
+
+ return address
+ }
+
+ if (token.denom.startsWith('peggy')) {
+ return token.erc20?.address
+ }
+
+ if (token.denom.startsWith('share')) {
+ return ''
+ }
+
+ return ''
+}
+
+export const getTokenInfo = (token: TokenBase) => {
+ const tokenType = getTokenTypeFromDenom(token.denom)
+
+ if (isCw20ContractAddress(token.denom)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return {
+ symbol: meta?.symbol || token.symbol,
+ name: meta?.name || token.name,
+ logo: meta?.logo || token.logo,
+ decimals: meta?.decimals || token.decimals,
+ coinGeckoId: meta?.coinGeckoId || token.coinGeckoId,
+ cw20: meta,
+ tokenType,
+ }
+ }
+
+ if (token.denom.startsWith('factory/')) {
+ const [address] = token.denom.split('/').reverse()
+
+ if (isCw20ContractAddress(address)) {
+ const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
+
+ return {
+ symbol: meta?.symbol || token.symbol || '',
+ name: meta?.name || token.name || '',
+ logo: meta?.logo || token.logo,
+ decimals: meta?.decimals || token.decimals || 0,
+ coinGeckoId: meta?.coinGeckoId || token.coinGeckoId,
+ cw20: meta,
+ tokenType,
+ }
+ }
+
+ const meta = getNativeTokenFactoryMeta(token)
+
+ return {
+ symbol: meta?.symbol || token.symbol || '',
+ name: meta?.name || token.name || '',
+ logo: meta?.logo || token.logo || '',
+ decimals: meta?.decimals || token.decimals || 0,
+ coinGeckoId: meta?.coinGeckoId || token.coinGeckoId,
+ tokenFactory: meta,
+ tokenType,
+ }
+ }
+
+ if (token.denom.startsWith('peggy') || token.denom === INJ_DENOM) {
+ return {
+ symbol: token.erc20?.symbol || token.symbol || '',
+ name: token.erc20?.name || token.name || '',
+ logo: token.erc20?.logo || token.logo || '',
+ decimals: token.erc20?.decimals || token.decimals || 0,
+ coinGeckoId: token.erc20?.coinGeckoId || token.coinGeckoId,
+ tokenType,
+ }
+ }
+
+ if (token.denom.startsWith('0x') && token.denom.length === 42) {
+ return {
+ symbol: token.erc20?.symbol || token.evm?.symbol || token.symbol || '',
+ name: token.erc20?.name || token.evm?.symbol || token.name || '',
+ logo: token.erc20?.logo || token.evm?.symbol || token.logo || '',
+ decimals:
+ token.erc20?.decimals || token.evm?.symbol || token.decimals || 0,
+ coinGeckoId:
+ token.erc20?.coinGeckoId || token.evm?.coinGeckoId || token.coinGeckoId,
+ tokenType,
+ }
+ }
+
+ // Including tokens that can be searched by baseDenom symbol
+ if (token.denom.startsWith('ibc') || token.ibcs) {
+ const meta = getIbcMeta(token) as IbcTokenMetaWithSource
+
+ return {
+ symbol: meta?.symbol || token.symbol || '',
+ name: meta?.name || token.name || '',
+ logo: meta?.logo || token.logo || '',
+ decimals: meta?.decimals || token.decimals || 6,
+ coinGeckoId: meta?.coinGeckoId || token.coinGeckoId,
+ tokenType,
+ }
+ }
+
+ // Including tokens that can be searched by symbol
+ if (token.erc20 || token.evm || token.spl) {
+ return {
+ symbol:
+ token.erc20?.symbol ||
+ token.evm?.symbol ||
+ token.spl?.symbol ||
+ token.symbol ||
+ '',
+ name:
+ token.erc20?.name ||
+ token.evm?.name ||
+ token.spl?.name ||
+ token.name ||
+ '',
+ logo:
+ token.erc20?.logo ||
+ token.evm?.logo ||
+ token.spl?.logo ||
+ token.logo ||
+ '',
+ decimals:
+ token.erc20?.decimals ||
+ token.evm?.decimals ||
+ token.spl?.decimals ||
+ token.decimals ||
+ 6,
+ coinGeckoId:
+ token.erc20?.coinGeckoId ||
+ token.evm?.coinGeckoId ||
+ token.spl?.coinGeckoId ||
+ token.coinGeckoId ||
+ 6,
+ tokenType,
+ }
+ }
+
+ return {
+ symbol: token.symbol,
+ name: token.name,
+ logo: token.logo,
+ decimals: token.decimals || 0,
+ coinGeckoId: token.coinGeckoId || 0,
+ tokenType,
+ }
+}
+
+export const getIbcTokenFromDenomTrace = ({
+ denomTrace,
+ token,
+}: {
+ token: Token
+ denomTrace: {
+ path: string
+ baseDenom: string
+ }
+}): IbcToken => {
+ return {
+ ...token,
+ symbol: token.ibc?.symbol || token.symbol || '',
+ name: token.ibc?.name || token.name || '',
+ logo: token.ibc?.logo || token.logo || '',
+ decimals: token.ibc?.decimals || token.decimals || 0,
+ tokenType: TokenType.Ibc,
+
+ ibc: {
+ hash: token.denom.replace('ibc/', ''),
+ symbol: denomTrace.baseDenom,
+ path: denomTrace.path,
+ baseDenom: denomTrace.baseDenom,
+ decimals: token.decimals,
+ channelId: getChannelIdFromPath(denomTrace.path),
+ isNative: !denomTrace.baseDenom.startsWith('ibc'),
+ },
+ } as IbcToken
+}
diff --git a/deprecated/token-metadata/src/utils/token.ts b/deprecated/token-metadata/src/utils/token.ts
new file mode 100644
index 000000000..9e6fadd40
--- /dev/null
+++ b/deprecated/token-metadata/src/utils/token.ts
@@ -0,0 +1,51 @@
+import { ibcBaseDenoms } from '../tokens/tokens'
+import { Token, TokenMetaBase, TokenType } from '../types'
+import { getCw20Meta, getIbcMeta } from './helpers'
+import { getTokenInfo } from './meta'
+
+/**
+ * We only need to perform the base denom check
+ * when we are getting token metadata
+ * from symbol
+ **/
+export const getTokenFromMetaIncludingIbcBaseDenoms = (
+ meta: TokenMetaBase,
+ denom?: string,
+): Token => {
+ const isBaseIbcDenom =
+ ibcBaseDenoms.includes(denom || '') || meta.ibcs?.find(ibc => ibc.baseDenom.includes(denom || ''))
+
+ const tokenMeta = getTokenFromMeta(meta, denom)
+
+ const token = {
+ ...meta,
+ denom: denom || '',
+ }
+
+ return {
+ ...token,
+ ...getTokenInfo(token),
+ tokenType: isBaseIbcDenom ? TokenType.Ibc : tokenMeta.tokenType,
+ denom: denom || '',
+ ...(token.cw20s && { cw20: getCw20Meta(token) }),
+ ...(token.ibcs && { ibc: getIbcMeta(token) }),
+ } as Token
+}
+
+export const getTokenFromMeta = (
+ meta: TokenMetaBase,
+ denom?: string,
+): Token => {
+ const token = {
+ ...meta,
+ denom: denom || '',
+ }
+ const tokenInfo = getTokenInfo(token)
+
+ return {
+ ...token,
+ ...tokenInfo,
+ ...(token.cw20s && { cw20: getCw20Meta(token) }),
+ ...(token.ibcs && { ibc: getIbcMeta(token) }),
+ } as Token
+}
diff --git a/packages/token-metadata/test/unit/images.spec.ts b/deprecated/token-metadata/test/unit/images.spec.ts
similarity index 100%
rename from packages/token-metadata/test/unit/images.spec.ts
rename to deprecated/token-metadata/test/unit/images.spec.ts
diff --git a/packages/token-metadata/test/unit/cw20.spec.ts b/deprecated/token-metadata/test/unit/tokens.spec.ts
similarity index 88%
rename from packages/token-metadata/test/unit/cw20.spec.ts
rename to deprecated/token-metadata/test/unit/tokens.spec.ts
index 5f53a3b00..6f85ffd33 100644
--- a/packages/token-metadata/test/unit/cw20.spec.ts
+++ b/deprecated/token-metadata/test/unit/tokens.spec.ts
@@ -13,11 +13,11 @@ describe('TokenMetadata', () => {
expect(tokenMeta.ibc).toEqual({
decimals: 6,
isNative: true,
+ symbol: 'LUNA',
baseDenom: 'uluna',
path: 'transfer/channel-4',
channelId: 'channel-4',
hash: 'B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395',
- tokenType: 'ibc',
})
})
@@ -26,16 +26,20 @@ describe('TokenMetadata', () => {
'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh'
const CHZPeggyDenom = 'peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF'
- test('fetches correct decimal value for cw20 format', () => {
+ test('fetches correct info for cw20 format', () => {
const tokenMeta = tokenFactory.toToken(CHZFactoryDenom) as Token
expect(tokenMeta.decimals).toBe(8)
+ expect(tokenMeta.name).toBe('Chiliz')
+ expect(tokenMeta.symbol).toBe('CHZ')
})
- test('fetches correct decimal value for peggy format', () => {
+ test('fetches correct info for peggy format', () => {
const tokenMeta = tokenFactory.toToken(CHZPeggyDenom) as Token
expect(tokenMeta.decimals).toBe(18)
+ expect(tokenMeta.name).toBe('Chiliz')
+ expect(tokenMeta.symbol).toBe('CHZ')
})
})
@@ -77,16 +81,14 @@ describe('TokenMetadata', () => {
const USDCPeggyDenom = 'peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
test('fetches correct value for peggyUsdc', () => {
- const tokenMeta = tokenFactory.toToken(USDCetFactoryDenom) as Token
+ const tokenMeta = tokenFactory.toToken(USDCPeggyDenom) as Token
expect(tokenMeta).toEqual(
expect.objectContaining({
- cw20: {
+ erc20: {
decimals: 6,
- symbol: 'USDCet',
- source: 'ethereum-wormhole',
- address: 'inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk',
- tokenType: 'cw20',
+ symbol: 'USDC',
+ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
},
}),
)
@@ -102,7 +104,6 @@ describe('TokenMetadata', () => {
symbol: 'USDCet',
source: 'ethereum-wormhole',
address: 'inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk',
- tokenType: 'cw20',
},
}),
)
@@ -118,7 +119,6 @@ describe('TokenMetadata', () => {
symbol: 'USDCso',
source: 'solana',
address: 'inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu',
- tokenType: 'cw20',
},
}),
)
@@ -133,7 +133,6 @@ describe('TokenMetadata', () => {
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
decimals: 6,
symbol: 'USDC',
- tokenType: 'erc20',
},
}),
)
diff --git a/packages/token-metadata/tsconfig.build.esm.json b/deprecated/token-metadata/tsconfig.build.esm.json
similarity index 100%
rename from packages/token-metadata/tsconfig.build.esm.json
rename to deprecated/token-metadata/tsconfig.build.esm.json
diff --git a/packages/token-metadata/tsconfig.build.json b/deprecated/token-metadata/tsconfig.build.json
similarity index 100%
rename from packages/token-metadata/tsconfig.build.json
rename to deprecated/token-metadata/tsconfig.build.json
diff --git a/packages/token-metadata/tsconfig.json b/deprecated/token-metadata/tsconfig.json
similarity index 100%
rename from packages/token-metadata/tsconfig.json
rename to deprecated/token-metadata/tsconfig.json
diff --git a/packages/token-utils/.npmignore b/deprecated/token-utils/.npmignore
similarity index 100%
rename from packages/token-utils/.npmignore
rename to deprecated/token-utils/.npmignore
diff --git a/packages/token-utils/CHANGELOG.md b/deprecated/token-utils/CHANGELOG.md
similarity index 98%
rename from packages/token-utils/CHANGELOG.md
rename to deprecated/token-utils/CHANGELOG.md
index caa8a2f9b..94320c0ee 100644
--- a/packages/token-utils/CHANGELOG.md
+++ b/deprecated/token-utils/CHANGELOG.md
@@ -3,46 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.5-beta.6...@injectivelabs/token-utils@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.11-beta.11...@injectivelabs/token-utils@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/token-utils
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.7...@injectivelabs/token-utils@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/token-utils
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.6...@injectivelabs/token-utils@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/token-utils
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.4-beta.0...@injectivelabs/token-utils@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.6-beta.10...@injectivelabs/token-utils@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/token-utils
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.5-beta.6...@injectivelabs/token-utils@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/token-utils
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.4-beta.0...@injectivelabs/token-utils@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/token-utils
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.3-beta.4...@injectivelabs/token-utils@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/token-utils
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.2-beta.1...@injectivelabs/token-utils@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/token-utils
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.1-beta.7...@injectivelabs/token-utils@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/token-utils
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/token-utils@1.14.0-beta.1...@injectivelabs/token-utils@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/token-utils
diff --git a/packages/token-utils/LICENSE b/deprecated/token-utils/LICENSE
similarity index 100%
rename from packages/token-utils/LICENSE
rename to deprecated/token-utils/LICENSE
diff --git a/packages/token-utils/README.md b/deprecated/token-utils/README.md
similarity index 100%
rename from packages/token-utils/README.md
rename to deprecated/token-utils/README.md
diff --git a/packages/token-utils/jest.config.js b/deprecated/token-utils/jest.config.js
similarity index 100%
rename from packages/token-utils/jest.config.js
rename to deprecated/token-utils/jest.config.js
diff --git a/packages/token-utils/package.json b/deprecated/token-utils/package.json
similarity index 73%
rename from packages/token-utils/package.json
rename to deprecated/token-utils/package.json
index 2d20d3ee5..d4e3ec50f 100644
--- a/packages/token-utils/package.json
+++ b/deprecated/token-utils/package.json
@@ -1,12 +1,13 @@
{
"name": "@injectivelabs/token-utils",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"description": "Token Utils is a package for querying different data about tokens",
"sideEffects": false,
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -17,7 +18,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -26,12 +27,12 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"link-module-alias": "^1.2.0",
"shx": "^0.3.2"
},
diff --git a/packages/token-utils/src/CoinGeckoApi.ts b/deprecated/token-utils/src/CoinGeckoApi.ts
similarity index 88%
rename from packages/token-utils/src/CoinGeckoApi.ts
rename to deprecated/token-utils/src/CoinGeckoApi.ts
index 2b73ba525..f1b0fc436 100644
--- a/packages/token-utils/src/CoinGeckoApi.ts
+++ b/deprecated/token-utils/src/CoinGeckoApi.ts
@@ -57,6 +57,31 @@ export default class CoinGeckoApi {
}
}
+ async fetchErc20TokenCoinId(
+ tokenAddress: string,
+ options: Record | undefined = {},
+ ) {
+ try {
+ const actualParams = {
+ x_cg_pro_api_key: this.apiKey,
+ ...options,
+ }
+
+ const { data } = (await this.httpClient.get(
+ `/coins/ethereum/contract/${tokenAddress}`,
+ actualParams,
+ )) as CoinGeckoReturnObject
+
+ return data?.id
+ } catch (e: unknown) {
+ if (e instanceof HttpRequestException) {
+ throw e
+ }
+
+ throw new HttpRequestException(new Error((e as any).message))
+ }
+ }
+
async fetchPrice(
coinId: string,
options: Record | undefined = {},
diff --git a/packages/token-utils/src/asset-service/index.ts b/deprecated/token-utils/src/asset-service/index.ts
similarity index 100%
rename from packages/token-utils/src/asset-service/index.ts
rename to deprecated/token-utils/src/asset-service/index.ts
diff --git a/packages/token-utils/src/asset-service/types.ts b/deprecated/token-utils/src/asset-service/types.ts
similarity index 100%
rename from packages/token-utils/src/asset-service/types.ts
rename to deprecated/token-utils/src/asset-service/types.ts
diff --git a/packages/token-utils/src/index.ts b/deprecated/token-utils/src/index.ts
similarity index 100%
rename from packages/token-utils/src/index.ts
rename to deprecated/token-utils/src/index.ts
diff --git a/packages/token-utils/src/price-utils/CoinGeckoPriceUtil.ts b/deprecated/token-utils/src/price-utils/CoinGeckoPriceUtil.ts
similarity index 100%
rename from packages/token-utils/src/price-utils/CoinGeckoPriceUtil.ts
rename to deprecated/token-utils/src/price-utils/CoinGeckoPriceUtil.ts
diff --git a/packages/token-utils/src/price-utils/TokenPriceUtilBase.ts b/deprecated/token-utils/src/price-utils/TokenPriceUtilBase.ts
similarity index 100%
rename from packages/token-utils/src/price-utils/TokenPriceUtilBase.ts
rename to deprecated/token-utils/src/price-utils/TokenPriceUtilBase.ts
diff --git a/packages/token-utils/src/price-utils/TokenPriceUtilFactory.ts b/deprecated/token-utils/src/price-utils/TokenPriceUtilFactory.ts
similarity index 100%
rename from packages/token-utils/src/price-utils/TokenPriceUtilFactory.ts
rename to deprecated/token-utils/src/price-utils/TokenPriceUtilFactory.ts
diff --git a/packages/token-utils/src/price-utils/index.ts b/deprecated/token-utils/src/price-utils/index.ts
similarity index 100%
rename from packages/token-utils/src/price-utils/index.ts
rename to deprecated/token-utils/src/price-utils/index.ts
diff --git a/packages/token-utils/src/price-utils/types.ts b/deprecated/token-utils/src/price-utils/types.ts
similarity index 100%
rename from packages/token-utils/src/price-utils/types.ts
rename to deprecated/token-utils/src/price-utils/types.ts
diff --git a/packages/token-utils/src/types.ts b/deprecated/token-utils/src/types.ts
similarity index 100%
rename from packages/token-utils/src/types.ts
rename to deprecated/token-utils/src/types.ts
diff --git a/packages/token-utils/tsconfig.build.esm.json b/deprecated/token-utils/tsconfig.build.esm.json
similarity index 100%
rename from packages/token-utils/tsconfig.build.esm.json
rename to deprecated/token-utils/tsconfig.build.esm.json
diff --git a/packages/token-utils/tsconfig.build.json b/deprecated/token-utils/tsconfig.build.json
similarity index 100%
rename from packages/token-utils/tsconfig.build.json
rename to deprecated/token-utils/tsconfig.build.json
diff --git a/packages/token-utils/tsconfig.json b/deprecated/token-utils/tsconfig.json
similarity index 100%
rename from packages/token-utils/tsconfig.json
rename to deprecated/token-utils/tsconfig.json
diff --git a/docs/classes/_injectivelabs_wallet_ts.internal.HttpConnection.html b/docs/classes/_injectivelabs_wallet_ts.internal.HttpConnection.html
deleted file mode 100644
index 45d698b23..000000000
--- a/docs/classes/_injectivelabs_wallet_ts.internal.HttpConnection.html
+++ /dev/null
@@ -1 +0,0 @@
-HttpConnection | API Reference | Injective - Powering the future of decentralized finance. Class HttpConnection
Hierarchy
- HttpConnection
Implements
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
Parameters
url: string
Returns HttpConnection
Properties
Private api
events
Private on Close
Private on Error
Private on Open
Private on Payload
Private register
Private registering
url
Accessors
connected
Returns boolean
connecting
Returns boolean
Methods
close
Returns Promise<void>
off
Parameters
event: string
listener: any
Returns void
on
Parameters
event: string
listener: any
Returns void
once
Parameters
event: string
listener: any
Returns void
open
Parameters
Optional url: string
Returns Promise<void>
remove Listener
Parameters
event: string
listener: any
Returns void
send
Parameters
payload: JsonRpcPayload<any, any>
Optional context: any
Returns Promise<void>
Generated using TypeDoc
\ No newline at end of file
diff --git a/docs/interfaces/_injectivelabs_sdk_ts.internal.Pubkey.html b/docs/interfaces/_injectivelabs_sdk_ts.internal.Pubkey.html
deleted file mode 100644
index f345ee246..000000000
--- a/docs/interfaces/_injectivelabs_sdk_ts.internal.Pubkey.html
+++ /dev/null
@@ -1 +0,0 @@
-Pubkey | API Reference | Injective - Powering the future of decentralized finance. Interface Pubkey
Generated using TypeDoc
\ No newline at end of file
diff --git a/etc/bootstrapEnv.js b/etc/bootstrapEnv.js
index ccea0456d..370a2a4f1 100644
--- a/etc/bootstrapEnv.js
+++ b/etc/bootstrapEnv.js
@@ -11,10 +11,20 @@ const main = () => {
packages.forEach((packageName) => {
const path = `packages/${packageName}/dist`
+ const esmPath = `packages/${packageName}/dist/esm`
+ const cjsPath = `packages/${packageName}/dist/cjs`
if (!fs.existsSync(path)) {
fs.mkdirSync(path)
}
+
+ if (!fs.existsSync(esmPath)) {
+ fs.mkdirSync(esmPath)
+ }
+
+ if (!fs.existsSync(cjsPath)) {
+ fs.mkdirSync(cjsPath)
+ }
})
}
diff --git a/etc/replacements.js b/etc/replacements.js
new file mode 100644
index 000000000..e9c9716a2
--- /dev/null
+++ b/etc/replacements.js
@@ -0,0 +1,47 @@
+const { readFile, writeFile } = require('fs')
+
+const isCJS = process.env.BUILD_MODE.includes('cjs')
+const isESM = process.env.BUILD_MODE.includes('esm')
+
+const REPLACEMENT_PAIRS = [
+ {
+ path: './src/strategies/wallet-strategy/strategies/Ledger/Base.ts',
+ cjs: '@ledgerhq/hw-app-eth/lib/services/ledger',
+ esm: '@ledgerhq/hw-app-eth/lib-es/services/ledger',
+ },
+]
+
+for (const pair of REPLACEMENT_PAIRS) {
+ readFile(pair.path, 'utf8', (err, data) => {
+ if (err) {
+ console.error('Error reading file:', err)
+ return
+ }
+
+ if (isCJS) {
+ const updatedData = data.replace(new RegExp(pair.esm, 'g'), pair.cjs)
+
+ writeFile(pair.path, updatedData, 'utf8', (err) => {
+ if (err) {
+ console.error('Error writing file:', err)
+ return
+ }
+
+ console.log(`Replaced in ${pair.path} for CJS`)
+ })
+ }
+
+ if (isESM) {
+ const updatedData = data.replace(new RegExp(pair.cjs, 'g'), pair.esm)
+
+ writeFile(pair.path, updatedData, 'utf8', (err) => {
+ if (err) {
+ console.error('Error writing file:', err)
+ return
+ }
+
+ console.log(`Replaced in ${pair.path} for ESM`)
+ })
+ }
+ })
+}
diff --git a/package.json b/package.json
index b86257e92..050cbef8e 100644
--- a/package.json
+++ b/package.json
@@ -13,17 +13,17 @@
},
"scripts": {
"postinstall": "node etc/bootstrapEnv",
- "build": "node etc/bootstrapEnv && lerna run --parallel build",
+ "build": "node etc/bootstrapEnv && lerna run build",
"build:docs": "yarn typedoc",
"lerna:publish:prerelease": "lerna publish --conventional-commits --conventional-prerelease",
"lerna:publish": "lerna publish patch",
- "build:watch": "node etc/bootstrapEnv && lerna run --parallel build:watch",
+ "build:watch": "node etc/bootstrapEnv && lerna run build:watch",
"build:fresh": "yarn clean-up && yarn build",
"build:publish": "yarn build:fresh && yarn lerna:publish",
"build:publish:prerelease": "yarn build:fresh && yarn lerna:publish:prerelease",
"build:patch:publish": "yarn build:fresh && yarn patch && yarn lerna:publish",
"patch": "lerna version patch",
- "clean-up": "lerna run --parallel clean && shx rm -rf .build-cache *.log coverage junit.xml",
+ "clean-up": "lerna run clean && shx rm -rf .build-cache *.log coverage junit.xml",
"bootstrap": "yarn clean-up && lerna bootstrap",
"test": "jest",
"test:sdk-ts:client": "jest ./packages/sdk-ts/src/client",
@@ -61,8 +61,8 @@
"@commitlint/config-conventional": "^13.1.0",
"@types/jest": "^29.4.0",
"@types/node": "^18.6.2",
- "@typescript-eslint/eslint-plugin": "^4.31.1",
- "@typescript-eslint/parser": "^4.31.1",
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
+ "@typescript-eslint/parser": "^6.0.0",
"babel-jest": "^29.4.3",
"commitizen": "^4.2.4",
"cross-env": "^7.0.3",
@@ -88,12 +88,13 @@
"serve": "^12.0.1",
"shx": "^0.3.4",
"ts-jest": "^29.0.5",
+ "ts-node": "^10.9.2",
"ts-node-dev": "2.0.0",
"tsc-alias": "^1.7.0",
- "tsconfig-paths": "^3.11.0",
- "typedoc": "^0.22.1",
+ "tsconfig-paths": "^4.2.0",
+ "typedoc": "^0.25.11",
"typedoc-monorepo-link-types": "^0.0.4",
- "typescript": "^4.4.3"
+ "typescript": "^5.1.1"
},
"resolutions": {
"@ethereumjs/tx": "^4.1.1",
diff --git a/packages/bridge-ts/src/wormhole/strategy/index.ts b/packages/bridge-ts/src/wormhole/strategy/index.ts
deleted file mode 100644
index f47ca3843..000000000
--- a/packages/bridge-ts/src/wormhole/strategy/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './EvmWormholeClientStrategy'
diff --git a/packages/bridge-ts/src/wormhole/utils.test.ts b/packages/bridge-ts/src/wormhole/utils.test.ts
deleted file mode 100644
index c8edd96db..000000000
--- a/packages/bridge-ts/src/wormhole/utils.test.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-// import {
-// CHAIN_ID_INJECTIVE,
-// tryHexToNativeString,
-// } from '@injectivelabs/wormhole-sdk'
-
-describe('tryHexToNativeString', () => {
- it('converts properly', () => {
- //
- })
-})
diff --git a/packages/exceptions/CHANGELOG.md b/packages/exceptions/CHANGELOG.md
index 72099665c..12742ec94 100644
--- a/packages/exceptions/CHANGELOG.md
+++ b/packages/exceptions/CHANGELOG.md
@@ -3,49 +3,44 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.5-beta.6...@injectivelabs/exceptions@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.11-beta.9...@injectivelabs/exceptions@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/exceptions
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.7...@injectivelabs/exceptions@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/exceptions
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.6...@injectivelabs/exceptions@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/exceptions
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.4-beta.0...@injectivelabs/exceptions@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.6-beta.9...@injectivelabs/exceptions@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/exceptions
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.5-beta.6...@injectivelabs/exceptions@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/exceptions
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.4-beta.0...@injectivelabs/exceptions@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/exceptions
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.3-beta.4...@injectivelabs/exceptions@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/exceptions
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.2-beta.1...@injectivelabs/exceptions@1.14.2) (2023-11-07)
-
### Reverts
-* faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
-
-
-
-
+- faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.1-beta.7...@injectivelabs/exceptions@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/exceptions
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/exceptions@1.14.0-beta.1...@injectivelabs/exceptions@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/exceptions
diff --git a/packages/exceptions/package.json b/packages/exceptions/package.json
index cf4f6b1a0..133640ecb 100644
--- a/packages/exceptions/package.json
+++ b/packages/exceptions/package.json
@@ -1,14 +1,15 @@
{
"name": "@injectivelabs/exceptions",
"description": "List of exceptions that can be reused throughout Injective's projects.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"files": [
"dist"
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,12 +28,12 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
"@injectivelabs/grpc-web": "^0.0.1",
- "@injectivelabs/ts-types": "^1.14.5",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
"http-status-codes": "^2.2.0",
"link-module-alias": "^1.2.0",
"shx": "^0.3.2"
diff --git a/packages/exceptions/src/exception.ts b/packages/exceptions/src/exception.ts
index 8be9e7034..8f55ad114 100644
--- a/packages/exceptions/src/exception.ts
+++ b/packages/exceptions/src/exception.ts
@@ -90,8 +90,8 @@ export abstract class ConcreteException extends Error implements Exception {
public parseContext(errorContext?: ErrorContext) {
const { contextModule, type, code, context } = errorContext || {
- contextModule: '',
- context: '',
+ contextModule: 'Unknown',
+ context: 'Unknown',
code: UnspecifiedErrorCode,
type: ErrorType.Unspecified,
}
@@ -119,8 +119,11 @@ export abstract class ConcreteException extends Error implements Exception {
}
public setStack(stack: string) {
- super.stack = stack
- this.stack = stack
+ try {
+ this.stack = stack
+ } catch (e) {
+ // throw nothing here
+ }
}
public setName(name: string) {
diff --git a/packages/exceptions/src/exceptions/BitGetException.ts b/packages/exceptions/src/exceptions/BitGetException.ts
new file mode 100644
index 000000000..070a1d4ba
--- /dev/null
+++ b/packages/exceptions/src/exceptions/BitGetException.ts
@@ -0,0 +1,25 @@
+import { ConcreteException } from '../exception'
+import { ErrorContext, ErrorType } from '../types'
+import { mapMetamaskMessage } from '../utils/maps'
+
+const removeBitGetFromErrorString = (message: string): string =>
+ message
+ .replaceAll('BitGet', '')
+ .replaceAll('Bitget:', '')
+ .replaceAll('Bitkeep:', '')
+
+export class BitGetException extends ConcreteException {
+ public errorClass: string = 'BitGetException'
+
+ constructor(error: Error, context?: ErrorContext) {
+ super(error, context)
+
+ this.type = ErrorType.WalletError
+ }
+
+ public parse(): void {
+ const { message } = this
+
+ this.setMessage(mapMetamaskMessage(removeBitGetFromErrorString(message)))
+ }
+}
diff --git a/packages/exceptions/src/exceptions/GrpcUnaryRequestException.ts b/packages/exceptions/src/exceptions/GrpcUnaryRequestException.ts
index abefb09aa..d4c88eeb6 100644
--- a/packages/exceptions/src/exceptions/GrpcUnaryRequestException.ts
+++ b/packages/exceptions/src/exceptions/GrpcUnaryRequestException.ts
@@ -1,5 +1,5 @@
import { ConcreteException } from '../exception'
-import { ErrorContext, ErrorType } from '../types'
+import { ErrorContext, ErrorType, GRPC_REQUEST_FAILED } from '../types'
export class GrpcUnaryRequestException extends ConcreteException {
public errorClass: string = 'GrpcUnaryRequestException'
@@ -15,11 +15,9 @@ export class GrpcUnaryRequestException extends ConcreteException {
if (message.toLowerCase().includes('response closed without headers')) {
this.setMessage(
- 'Product is under heavy load, refresh the page in a few seconds.',
- )
- this.setOriginalMessage(
- `The product is experiencing higher than usual demand. Hang tight, engineers are doing their best to improve the performance and efficiency.`,
+ 'The request has failed. The server has closed the connection without sending any headers.',
)
+ this.setContextCode(GRPC_REQUEST_FAILED)
}
}
}
diff --git a/packages/exceptions/src/exceptions/OkxWalletException.ts b/packages/exceptions/src/exceptions/OkxWalletException.ts
new file mode 100644
index 000000000..470434000
--- /dev/null
+++ b/packages/exceptions/src/exceptions/OkxWalletException.ts
@@ -0,0 +1,25 @@
+import { ConcreteException } from '../exception'
+import { ErrorContext, ErrorType } from '../types'
+import { mapMetamaskMessage } from '../utils/maps'
+
+const removeOkxWalletFromErrorString = (message: string): string =>
+ message
+ .replaceAll('OkxWallet', '')
+ .replaceAll('Okx', '')
+ .replaceAll('OkxWallet:', '')
+
+export class OkxWalletException extends ConcreteException {
+ public errorClass: string = 'OkxWalletException'
+
+ constructor(error: Error, context?: ErrorContext) {
+ super(error, context)
+
+ this.type = ErrorType.WalletError
+ }
+
+ public parse(): void {
+ const { message } = this
+
+ this.setMessage(mapMetamaskMessage(removeOkxWalletFromErrorString(message)))
+ }
+}
diff --git a/packages/exceptions/src/exceptions/TransactionException.ts b/packages/exceptions/src/exceptions/TransactionException.ts
index 2455b791e..3720d4542 100644
--- a/packages/exceptions/src/exceptions/TransactionException.ts
+++ b/packages/exceptions/src/exceptions/TransactionException.ts
@@ -12,7 +12,7 @@ export class TransactionException extends ConcreteException {
}
public parse(): void {
- const { message, contextModule, contextCode } = this
+ const { message, context, contextModule, contextCode } = this
const {
code,
@@ -20,6 +20,7 @@ export class TransactionException extends ConcreteException {
contextModule: parsedContextModule,
} = mapFailedTransactionMessage(message, { contextCode, contextModule })
+ this.setContext(context || 'Unknown')
this.setMessage(parsedMessage)
this.setContextCode(code)
this.setOriginalMessage(parseErrorMessage(message))
diff --git a/packages/exceptions/src/exceptions/index.ts b/packages/exceptions/src/exceptions/index.ts
index c9ded5d2d..be8d6fb0c 100644
--- a/packages/exceptions/src/exceptions/index.ts
+++ b/packages/exceptions/src/exceptions/index.ts
@@ -6,12 +6,14 @@ import { LedgerException } from './LedgerException'
import { LedgerCosmosException } from './LedgerCosmosException'
import { MetamaskException } from './MetamaskException'
import { TrustWalletException } from './TrustWalletException'
+import { OkxWalletException } from './OkxWalletException'
import { TrezorException } from './TrezorException'
import { CosmosWalletException } from './CosmosWalletException'
import { TransactionException } from './TransactionException'
import { WalletException } from './WalletException'
import { Exception } from '../types'
import { ConcreteException } from '../exception'
+import { BitGetException } from './BitGetException'
export type ThrownException =
| GrpcUnaryRequestException
@@ -21,11 +23,13 @@ export type ThrownException =
| LedgerException
| MetamaskException
| TrustWalletException
+ | OkxWalletException
| TrezorException
| CosmosWalletException
| TransactionException
| WalletException
| LedgerCosmosException
+ | BitGetException
export const isThrownException = (exception: Error | Exception): boolean => {
if (exception instanceof ConcreteException) {
@@ -46,6 +50,8 @@ export const isThrownException = (exception: Error | Exception): boolean => {
'TransactionException',
'WalletException',
'TrustWalletException',
+ 'OkxWalletException',
+ 'BitGetException',
].includes(exception.constructor.name)
) {
return true
@@ -60,9 +66,11 @@ export {
TrezorException,
WalletException,
GeneralException,
+ BitGetException,
MetamaskException,
TransactionException,
TrustWalletException,
+ OkxWalletException,
HttpRequestException,
LedgerCosmosException,
CosmosWalletException,
diff --git a/packages/exceptions/src/messages.ts b/packages/exceptions/src/messages.ts
index 4ec9d0b76..7f2a1bdc7 100644
--- a/packages/exceptions/src/messages.ts
+++ b/packages/exceptions/src/messages.ts
@@ -79,7 +79,8 @@ const cosmosErrorMap = {
'The transaction is already in the mempool',
[ChainCosmosErrorCode.ErrMempoolIsFull]: 'The mempool is full',
[ChainCosmosErrorCode.ErrTxTooLarge]: 'The transaction is too large',
- [ChainCosmosErrorCode.ErrKeyNotFound]: 'The key has not been found',
+ [ChainCosmosErrorCode.ErrKeyNotFound]:
+ 'Account does not exist on chain. To create an account, send some tokens to it',
[ChainCosmosErrorCode.ErrWrongPassword]: 'invalid account password',
[ChainCosmosErrorCode.ErrorInvalidSigner]:
'tx intended signer does not match the given signer',
@@ -522,7 +523,7 @@ const govErrorMap = {
[ChainGovErrorCodes.ErrNoProposalHandlerExists]:
'no handler exists for proposal type',
[ChainGovErrorCodes.ErrUnroutableProposalMsg]:
- 'proposal message not recogized by router',
+ 'proposal message not recognized by router',
[ChainGovErrorCodes.ErrNoProposalMsgs]: 'no messages proposed',
[ChainGovErrorCodes.ErrInvalidProposalMsg]: 'invalid proposal message',
[ChainGovErrorCodes.ErrInvalidSigner]:
@@ -762,7 +763,8 @@ export const chainErrorMessagesMap: Record<
},
'key not found': {
- message: 'The key has not been found',
+ message:
+ 'Account does not exist on chain. To create an account, send some tokens to it',
code: ChainCosmosErrorCode.ErrKeyNotFound,
module: TransactionChainErrorModule.CosmosSdk,
},
@@ -1813,8 +1815,8 @@ export const chainErrorMessagesMap: Record<
module: TransactionChainErrorModule.Gov,
},
- 'proposal message not recogized by router': {
- message: 'proposal message not recogized by router',
+ 'proposal message not recognized by router': {
+ message: 'proposal message not recognized by router',
code: ChainGovErrorCodes.ErrUnroutableProposalMsg,
module: TransactionChainErrorModule.Gov,
},
@@ -2047,4 +2049,10 @@ export const chainErrorMessagesMap: Record<
code: ChainCosmosErrorCode.ErrNotFound,
module: TransactionChainErrorModule.CosmosSdk,
},
+
+ 'failed to fetch account num/seq': {
+ message: 'Account does not exist on chain. Create it by send funds.',
+ code: ChainCosmosErrorCode.ErrKeyNotFound,
+ module: TransactionChainErrorModule.CosmosSdk,
+ },
}
diff --git a/packages/exceptions/src/types/codes.ts b/packages/exceptions/src/types/codes.ts
index f2733f3e7..f226c8581 100644
--- a/packages/exceptions/src/types/codes.ts
+++ b/packages/exceptions/src/types/codes.ts
@@ -1,4 +1,4 @@
-import type { grpc } from '@injectivelabs/grpc-web'
+import { grpc } from '@injectivelabs/grpc-web'
import { StatusCodes } from 'http-status-codes'
export enum TransactionChainErrorModule {
@@ -648,7 +648,7 @@ export enum ChainGovErrorCodes {
ErrInvalidGenesis = 8,
// "no handler exists for proosal type")
ErrNoProposalHandlerExists = 9,
- // "proposal message not recogized by router")
+ // "proposal message not recognized by router")
ErrUnroutableProposalMsg = 10,
// "no messages proposed"
ErrNoProposalMsgs = 11,
@@ -768,6 +768,7 @@ export type IndexerApiErrorCode = number
export const UnspecifiedErrorCode = -1
export type ErrorCode = StatusCodes | typeof UnspecifiedErrorCode | grpc.Code
+export const GRPC_REQUEST_FAILED = grpc.Code.Unavailable;
export type ErrorContextCode =
| ChainAuctionErrorCodes
@@ -785,4 +786,5 @@ export type ErrorContextCode =
| ChainGovErrorCodes
| ChainStakingErrorCodes
| ChainWasmErrorCodes
+ | ErrorCode
| typeof UnspecifiedErrorCode
diff --git a/packages/exceptions/src/types/modules.ts b/packages/exceptions/src/types/modules.ts
index f5c5cb6db..12e703fde 100644
--- a/packages/exceptions/src/types/modules.ts
+++ b/packages/exceptions/src/types/modules.ts
@@ -26,12 +26,14 @@ export enum ChainErrorModule {
export enum IndexerErrorModule {
Account = 'indexer-account',
Auction = 'indexer-auction',
+ Archiver = 'indexer-archiver',
Derivatives = 'indexer-derivatives',
Explorer = 'indexer-explorer',
InsuranceFund = 'indexer-insurance-fund',
Meta = 'indexer-meta',
Mito = 'indexer-mito',
Dmm = 'dmm',
+ OLP = 'olp',
Oracle = 'indexer-oracle',
Portfolio = 'indexer-portfolio',
Spot = 'indexer-spot',
diff --git a/packages/exceptions/src/utils/helpers.ts b/packages/exceptions/src/utils/helpers.ts
index b460bf405..40a657d05 100644
--- a/packages/exceptions/src/utils/helpers.ts
+++ b/packages/exceptions/src/utils/helpers.ts
@@ -3,12 +3,15 @@ export const isCommonLockedError = (error: string) => {
'Ledger device: Incorrect length',
'Ledger device: INS_NOT_SUPPORTED',
'Ledger device: CLA_NOT_SUPPORTED',
+ 'Unknown',
+ 'Ledger device',
'CLA_NOT_SUPPORTED',
'CLA',
'Locked',
'Failed to open the device',
'Failed to open the device',
'Ledger Device is busy',
+ 'Ledger device',
'UNKNOWN_ERROR',
]
diff --git a/packages/exceptions/src/utils/maps.ts b/packages/exceptions/src/utils/maps.ts
index a6805724b..cc733d480 100644
--- a/packages/exceptions/src/utils/maps.ts
+++ b/packages/exceptions/src/utils/maps.ts
@@ -55,6 +55,28 @@ export const mapFailedTransactionMessage = (
message: string,
context?: ErrorContext,
): { message: string; code: ErrorContextCode; contextModule?: string } => {
+ const getWasmErrorFromMessage = (message: string) => {
+ if (!message.includes('execute wasm contract failed')) {
+ return
+ }
+
+ const ReasonPattern = /(.*?)execute wasm contract failed(.*?)/g
+ const reason = ReasonPattern.exec(message)
+
+ if (!reason) {
+ return
+ }
+
+ if (reason.length < 2) {
+ return
+ }
+
+ return reason[1].replace(
+ 'failed to execute message; message index: 0: ',
+ '',
+ )
+ }
+
const getABCICode = (message: string): number | undefined => {
const ABCICodePattern = /{key:"ABCICode"[ \t]+value:"(.*?)"}/g
@@ -85,6 +107,10 @@ export const mapFailedTransactionMessage = (
const codespace = ReasonPattern.exec(message)
if (!codespace || codespace.length < 2) {
+ if (message.includes('execute wasm contract failed')) {
+ return getWasmErrorFromMessage(message)
+ }
+
return
}
@@ -149,5 +175,21 @@ export const mapMetamaskMessage = (message: string): string => {
return 'Your Metamask selected network is incorrect'
}
- return message
+ if (
+ parsedMessage
+ .toLowerCase()
+ .includes('missing or invalid parameters'.toLowerCase())
+ ) {
+ return 'Please make sure you are using Metamask'
+ }
+
+ if (
+ parsedMessage
+ .toLowerCase()
+ .includes('Keyring Controller signTypedMessage'.toLowerCase())
+ ) {
+ return 'Please ensure your Ledger is connected, unlocked and your Ethereum app is open.'
+ }
+
+ return message.replaceAll('Keyring Controller signTypedMessage:', '')
}
diff --git a/packages/networks/CHANGELOG.md b/packages/networks/CHANGELOG.md
index 56cf1ab3f..b4d787c6d 100644
--- a/packages/networks/CHANGELOG.md
+++ b/packages/networks/CHANGELOG.md
@@ -3,46 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.5-beta.9...@injectivelabs/networks@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.11-beta.13...@injectivelabs/networks@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/networks
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.7...@injectivelabs/networks@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/networks
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.6...@injectivelabs/networks@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/networks
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.4-beta.0...@injectivelabs/networks@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.6-beta.13...@injectivelabs/networks@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/networks
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.5-beta.9...@injectivelabs/networks@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/networks
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.4-beta.0...@injectivelabs/networks@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/networks
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.3-beta.4...@injectivelabs/networks@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/networks
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.2-beta.2...@injectivelabs/networks@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/networks
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.1-beta.8...@injectivelabs/networks@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/networks
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/networks@1.14.0-beta.1...@injectivelabs/networks@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/networks
diff --git a/packages/networks/package.json b/packages/networks/package.json
index 94631c188..72fa80d90 100644
--- a/packages/networks/package.json
+++ b/packages/networks/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/networks",
"description": "Endpoints, networks, etc. Can be reused throughout Injective's projects.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"license": "Apache-2.0",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,13 +28,13 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"link-module-alias": "^1.2.0",
"shx": "^0.3.2"
},
diff --git a/packages/networks/src/chainInfos.ts b/packages/networks/src/chainInfos.ts
index 1553abc20..e0772799c 100644
--- a/packages/networks/src/chainInfos.ts
+++ b/packages/networks/src/chainInfos.ts
@@ -12,20 +12,20 @@ export const mainnetChainInfo: ChainInfo = {
export const testnetChainInfo: ChainInfo = {
feeDenom: INJ_DENOM,
chainId: ChainId.Testnet,
- ethereumChainId: EthereumChainId.Goerli,
+ ethereumChainId: EthereumChainId.Sepolia,
env: 'testnet',
}
export const devnetChainInfo: ChainInfo = {
feeDenom: INJ_DENOM,
chainId: ChainId.Devnet,
- ethereumChainId: EthereumChainId.Goerli,
+ ethereumChainId: EthereumChainId.Sepolia,
env: 'devnet',
}
export const localChainInfo: ChainInfo = {
feeDenom: INJ_DENOM,
- chainId: ChainId.Devnet,
- ethereumChainId: EthereumChainId.Goerli,
+ chainId: ChainId.Mainnet,
+ ethereumChainId: EthereumChainId.Mainnet,
env: 'local',
}
diff --git a/packages/networks/src/constants.ts b/packages/networks/src/constants.ts
index 657ced2ee..27fbf3bfa 100644
--- a/packages/networks/src/constants.ts
+++ b/packages/networks/src/constants.ts
@@ -3,9 +3,9 @@ import { Network } from './types'
export const CW20_ADAPTER_CONTRACT_BY_NETWORK = {
[Network.Mainnet]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.MainnetLB]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
+ [Network.MainnetOld]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.MainnetK8s]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.MainnetSentry]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.Public]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.Staging]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.Internal]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
[Network.Testnet]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
@@ -21,10 +21,10 @@ export const CW20_ADAPTER_CONTRACT_BY_NETWORK = {
export const CW20_SWAP_CONTRACT_BY_NETWORK = {
[Network.Mainnet]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
[Network.MainnetLB]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
+ [Network.MainnetOld]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
[Network.MainnetK8s]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
[Network.MainnetSentry]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Public]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Staging]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
+ [Network.Staging]: 'inj12yj3mtjarujkhcp6lg3klxjjfrx2v7v8yswgp9',
[Network.Internal]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
[Network.Testnet]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
[Network.TestnetK8s]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
@@ -39,9 +39,9 @@ export const CW20_SWAP_CONTRACT_BY_NETWORK = {
export const INCENTIVES_CONTRACT_BY_NETWORK = {
[Network.Mainnet]: '',
[Network.MainnetLB]: '',
+ [Network.MainnetOld]: '',
[Network.MainnetK8s]: '',
[Network.MainnetSentry]: '',
- [Network.Public]: '',
[Network.Staging]: '',
[Network.Internal]: '',
[Network.Testnet]: 'inj16twru668nsl7tqzahxd9q033swhr6a5xuslpkt',
@@ -59,7 +59,7 @@ export const INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK = {
[Network.MainnetLB]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
[Network.MainnetK8s]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
[Network.MainnetSentry]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.Public]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
+ [Network.MainnetOld]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
[Network.Staging]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
[Network.Internal]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
[Network.Testnet]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
@@ -77,7 +77,7 @@ export const INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK = {
[Network.MainnetLB]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
[Network.MainnetK8s]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
[Network.MainnetSentry]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.Public]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
+ [Network.MainnetOld]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
[Network.Staging]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
[Network.Internal]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
[Network.Testnet]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
@@ -99,7 +99,7 @@ export const PEGGY_GRAPH_URL_BY_NETWORK = {
'https://api.thegraph.com/subgraphs/name/injectivelabs/injective-peggo-mainnet',
[Network.MainnetSentry]:
'https://api.thegraph.com/subgraphs/name/injectivelabs/injective-peggo-mainnet',
- [Network.Public]:
+ [Network.MainnetOld]:
'https://api.thegraph.com/subgraphs/name/injectivelabs/injective-peggo-mainnet',
[Network.Staging]:
'https://api.thegraph.com/subgraphs/name/injectivelabs/injective-peggo-mainnet',
@@ -132,7 +132,7 @@ export const ASSET_PRICE_URL_BY_NETWORK = {
'https://k8s.mainnet.asset.injective.network/asset-price/v1',
[Network.MainnetSentry]:
'https://k8s.mainnet.asset.injective.network/asset-price/v1',
- [Network.Public]:
+ [Network.MainnetOld]:
'https://k8s.mainnet.asset.injective.network/asset-price/v1',
[Network.Staging]:
'https://k8s.mainnet.asset.injective.network/asset-price/v1',
@@ -146,7 +146,7 @@ export const ASSET_PRICE_URL_BY_NETWORK = {
'https://k8s.testnet.asset.injective.network/asset-price/v1',
[Network.TestnetOld]:
'https://k8s.testnet.asset.injective.network/asset-price/v1',
- [Network.Devnet]: 'https://devnet.api.injective.dev/asset-price/v1',
+ [Network.Devnet]: 'https://devnet.asset.injective.dev/asset-price/v1',
[Network.Devnet1]: 'https://devnet.api.injective.dev/asset-price/v1',
[Network.Devnet2]: 'https://devnet.api.injective.dev/asset-price/v1',
[Network.Local]: 'https://devnet.api.injective.dev/asset-price/v1',
diff --git a/packages/networks/src/endpoints.ts b/packages/networks/src/endpoints.ts
index 7c676ce4e..c83628593 100644
--- a/packages/networks/src/endpoints.ts
+++ b/packages/networks/src/endpoints.ts
@@ -6,42 +6,14 @@ export const endpointsMainnetSentry: NetworkEndpoints = {
rpc: 'https://sentry.tm.injective.network',
rest: 'https://sentry.lcd.injective.network',
chronos: 'https://sentry.exchange.grpc-web.injective.network',
- explorer: 'https://sentry.exchange.grpc-web.injective.network',
- cache: 'https://staging.gateway.grpc-web.injective.network',
+ explorer: 'https://sentry.explorer.grpc-web.injective.network',
+ cacheGrpc: 'https://sentry.chain.grpc-web.injective.network',
+ cacheRest: 'https://staging.gateway.grpc-web.injective.network',
web3gw: 'https://sentry.exchange.grpc-web.injective.network',
}
-export const endpointsMainnetK8s: NetworkEndpoints = {
- indexer: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
- grpc: 'https://k8s.mainnet.chain.grpc-web.injective.network',
- rpc: 'https://k8s.mainnet.tm.injective.network',
- rest: 'https://k8s.mainnet.lcd.injective.network',
- chronos: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
- explorer: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
- cache: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
- web3gw: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
-}
-
-export const endpointsMainnetLB: NetworkEndpoints = {
- indexer: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
- grpc: 'https://k8s.global.mainnet.chain.grpc-web.injective.network',
- rpc: 'https://k8s.global.mainnet.tm.injective.network',
- rest: 'https://k8s.global.mainnet.lcd.injective.network',
- chronos: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
- explorer: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
- cache: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
- web3gw: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
-}
-
export const endpointsMainnet: NetworkEndpoints = {
- indexer: 'https://api.injective.network',
- grpc: 'https://grpc.injective.network',
- rpc: 'https://tm.injective.network',
- rest: 'https://lcd.injective.network',
- chronos: 'https://api.injective.network',
- explorer: 'https://api.injective.network',
- cache: 'https://api.injective.network',
- web3gw: 'https://api.injective.network',
+ ...endpointsMainnetSentry,
}
export const endpointsStaging: NetworkEndpoints = {
@@ -51,14 +23,11 @@ export const endpointsStaging: NetworkEndpoints = {
rest: 'https://staging.lcd.injective.network',
chronos: 'https://staging.api.injective.network',
explorer: 'https://staging.api.injective.network',
- cache: 'https://staging.api.injective.network',
+ cacheGrpc: 'https://staging.grpc.injective.network',
+ cacheRest: 'https://staging.gateway.grpc-web.injective.network',
web3gw: 'https://staging.api.injective.network',
}
-export const endpointsPublic: NetworkEndpoints = {
- ...endpointsStaging,
-}
-
export const endpointsInternal: NetworkEndpoints = {
indexer: 'https://products.exchange.grpc-web.injective.network',
grpc: 'https://products.chain.grpc-web.injective.network',
@@ -66,7 +35,8 @@ export const endpointsInternal: NetworkEndpoints = {
rest: 'https://products.lcd.injective.network',
chronos: 'https://products.chronos.grpc-web.injective.network',
explorer: 'https://products.explorer.grpc-web.injective.network',
- cache: 'https://staging.gateway.grpc-web.injective.network',
+ cacheGrpc: 'https://products.chain.grpc-web.injective.network',
+ cacheRest: 'https://staging.gateway.grpc-web.injective.network',
web3gw: 'https://products.web3-gateway.injective.network',
}
@@ -77,41 +47,13 @@ export const endpointsTestnetSentry: NetworkEndpoints = {
rest: 'https://testnet.sentry.lcd.injective.network',
chronos: 'https://testnet.sentry.exchange.grpc-web.injective.network',
explorer: 'https://testnet.sentry.exchange.grpc-web.injective.network',
- cache: 'https://testnet.sentry.exchange.grpc-web.injective.network',
+ cacheGrpc: 'https://testnet.sentry.chain.grpc-web.injective.network',
+ cacheRest: 'https://testnet.sentry.exchange.grpc-web.injective.network',
web3gw: 'https://testnet.sentry.exchange.grpc-web.injective.network',
}
-export const endpointsTestnetK8s: NetworkEndpoints = {
- indexer: 'https://k8s.testnet.exchange.grpc-web.injective.network',
- grpc: 'https://k8s.testnet.chain.grpc-web.injective.network',
- rpc: 'https://k8s.testnet.tm.injective.network',
- rest: 'https://k8s.testnet.lcd.injective.network',
- chronos: 'https://k8s.testnet.exchange.grpc-web.injective.network',
- explorer: 'https://k8s.testnet.explorer.grpc-web.injective.network',
- cache: 'https://k8s.testnet.gateway.grpc-web.injective.network',
- web3gw: 'https://k8s.testnet.exchange.grpc-web.injective.network',
-}
-
export const endpointsTestnet: NetworkEndpoints = {
- indexer: 'https://testnet.exchange.grpc-web.injective.network',
- grpc: 'https://testnet.chain.grpc-web.injective.network',
- rpc: 'https://testnet.tm.injective.network',
- rest: 'https://testnet.lcd.injective.network',
- chronos: 'https://testnet.exchange.grpc-web.injective.network',
- explorer: 'https://testnet.exchange.grpc-web.injective.network',
- web3gw: 'https://testnet.exchange.grpc-web.injective.network',
- cache: 'https://testnet.exchange.grpc-web.injective.network',
-}
-
-export const endpointsTestnetOld: NetworkEndpoints = {
- indexer: 'https://testnet.exchange.grpc-web.injective.dev',
- grpc: 'https://testnet.chain.grpc-web.injective.dev',
- rpc: 'https://testnet.tm.injective.dev',
- rest: 'https://testnet.lcd.injective.dev',
- chronos: 'https://testnet.exchange.grpc-web.injective.dev',
- explorer: 'https://testnet.exchange.grpc-web.injective.dev',
- cache: 'https://testnet.exchange.grpc-web.injective.dev',
- web3gw: 'https://testnet.exchange.grpc-web.injective.dev',
+ ...endpointsTestnetSentry,
}
export const endpointsDevnet: NetworkEndpoints = {
@@ -121,7 +63,8 @@ export const endpointsDevnet: NetworkEndpoints = {
rest: 'https://devnet.lcd.injective.dev',
chronos: 'https://devnet.api.injective.dev',
explorer: 'https://devnet.api.injective.dev',
- cache: 'https://devnet.api.injective.dev',
+ cacheGrpc: 'https://devnet.grpc.injective.dev',
+ cacheRest: 'https://devnet.api.injective.dev',
web3gw: 'https://devnet.api.injective.dev',
}
@@ -132,7 +75,8 @@ export const endpointsDevnet1: NetworkEndpoints = {
rest: 'https://devnet-1.lcd.injective.dev',
chronos: 'https://devnet-1.api.injective.dev',
explorer: 'https://devnet-1.api.injective.dev',
- cache: 'https://devnet-1.api.injective.dev',
+ cacheGrpc: 'https://devnet-1.grpc.injective.dev',
+ cacheRest: 'https://devnet-1.api.injective.dev',
web3gw: 'https://devnet-1.api.injective.dev',
}
@@ -143,7 +87,8 @@ export const endpointsDevnet2: NetworkEndpoints = {
rest: 'https://devnet-2.lcd.injective.dev',
chronos: 'https://devnet-2.api.injective.dev',
explorer: 'https://devnet-2.api.injective.dev',
- cache: 'https://devnet-2.api.injective.dev',
+ cacheGrpc: 'https://devnet-2.grpc.injective.dev',
+ cacheRest: 'https://devnet-2.api.injective.dev',
web3gw: 'https://devnet-2.api.injective.dev',
}
@@ -153,7 +98,83 @@ export const endpointsLocal: NetworkEndpoints = {
rpc: 'http://localhost:9091',
rest: 'http://localhost:9091',
chronos: 'https://localhost:4445',
- explorer: 'https://localhost:4446',
- cache: 'https://localhost:4444',
+ explorer: 'http://localhost:4446',
+ cacheGrpc: 'http://localhost:9091',
+ cacheRest: 'https://localhost:4444',
web3gw: 'https://localhost:4444',
}
+
+/**
+ * @deprecated use TestnetSentry instead
+ */
+export const endpointsTestnetOld: NetworkEndpoints = {
+ indexer: 'https://testnet.exchange.grpc-web.injective.network',
+ grpc: 'https://testnet.chain.grpc-web.injective.network',
+ rpc: 'https://testnet.tm.injective.network',
+ rest: 'https://testnet.lcd.injective.network',
+ chronos: 'https://testnet.exchange.grpc-web.injective.network',
+ explorer: 'https://testnet.exchange.grpc-web.injective.network',
+ web3gw: 'https://testnet.exchange.grpc-web.injective.network',
+ cacheGrpc: 'https://testnet.exchange.grpc-web.injective.network/',
+ cacheRest: 'https://testnet.exchange.grpc-web.injective.network',
+}
+
+/**
+ * @deprecated use TestnetSentry instead
+ */
+export const endpointsTestnetK8s: NetworkEndpoints = {
+ indexer: 'https://k8s.testnet.exchange.grpc-web.injective.network',
+ grpc: 'https://k8s.testnet.chain.grpc-web.injective.network',
+ rpc: 'https://k8s.testnet.tm.injective.network',
+ rest: 'https://k8s.testnet.lcd.injective.network',
+ chronos: 'https://k8s.testnet.exchange.grpc-web.injective.network',
+ explorer: 'https://k8s.testnet.explorer.grpc-web.injective.network',
+ cacheGrpc: 'https://k8s.testnet.gateway.grpc.injective.network',
+ cacheRest: 'https://k8s.testnet.gateway.grpc-web.injective.network',
+ web3gw: 'https://k8s.testnet.exchange.grpc-web.injective.network',
+}
+
+/**
+ * @deprecated use MainnetSentry instead
+ */
+export const endpointsMainnetLB: NetworkEndpoints = {
+ indexer: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
+ grpc: 'https://k8s.global.mainnet.chain.grpc-web.injective.network',
+ rpc: 'https://k8s.global.mainnet.tm.injective.network',
+ rest: 'https://k8s.global.mainnet.lcd.injective.network',
+ chronos: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
+ explorer: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
+ cacheGrpc: 'https://k8s.global.mainnet.chain.grpc-web.injective.network',
+ cacheRest: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
+ web3gw: 'https://k8s.global.mainnet.exchange.grpc-web.injective.network',
+}
+
+/**
+ * @deprecated use MainnetSentry instead
+ */
+export const endpointsMainnetOld: NetworkEndpoints = {
+ indexer: 'https://api.injective.network',
+ grpc: 'https://grpc.injective.network',
+ cacheGrpc: 'https://grpc.injective.network',
+ rpc: 'https://tm.injective.network',
+ rest: 'https://lcd.injective.network',
+ cacheRest: 'https://api.injective.network',
+ chronos: 'https://api.injective.network',
+ explorer: 'https://api.injective.network',
+ web3gw: 'https://api.injective.network',
+}
+
+/**
+ * @deprecated use MainnetSentry instead
+ */
+export const endpointsMainnetK8s: NetworkEndpoints = {
+ indexer: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
+ grpc: 'https://k8s.mainnet.chain.grpc-web.injective.network',
+ rpc: 'https://k8s.mainnet.tm.injective.network',
+ rest: 'https://k8s.mainnet.lcd.injective.network',
+ chronos: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
+ explorer: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
+ cacheGrpc: 'https://k8s.mainnet.chain.grpc-web.injective.network',
+ cacheRest: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
+ web3gw: 'https://k8s.mainnet.exchange.grpc-web.injective.network',
+}
diff --git a/packages/networks/src/network.ts b/packages/networks/src/network.ts
index 7d4a3fc34..b7d78a623 100644
--- a/packages/networks/src/network.ts
+++ b/packages/networks/src/network.ts
@@ -6,7 +6,6 @@ import {
} from './chainInfos'
import {
endpointsLocal,
- endpointsPublic,
endpointsDevnet,
endpointsTestnet,
endpointsMainnet,
@@ -18,6 +17,7 @@ import {
endpointsTestnetK8s,
endpointsTestnetOld,
endpointsMainnetK8s,
+ endpointsMainnetOld,
endpointsMainnetSentry,
endpointsTestnetSentry,
} from './endpoints'
@@ -27,9 +27,9 @@ export const networkEndpoints: Record = {
[Network.MainnetLB]: endpointsMainnetLB,
[Network.MainnetK8s]: endpointsMainnetK8s,
[Network.MainnetSentry]: endpointsMainnetSentry,
+ [Network.MainnetOld]: endpointsMainnetOld,
[Network.Staging]: endpointsStaging,
[Network.Mainnet]: endpointsMainnet,
- [Network.Public]: endpointsPublic,
[Network.Internal]: endpointsInternal,
[Network.Devnet]: endpointsDevnet,
[Network.Devnet1]: endpointsDevnet1,
@@ -45,9 +45,9 @@ export const chainInfos: Record = {
[Network.MainnetLB]: mainnetChainInfo,
[Network.MainnetK8s]: mainnetChainInfo,
[Network.MainnetSentry]: mainnetChainInfo,
+ [Network.MainnetOld]: mainnetChainInfo,
[Network.Staging]: mainnetChainInfo,
[Network.Mainnet]: mainnetChainInfo,
- [Network.Public]: mainnetChainInfo,
[Network.Internal]: mainnetChainInfo,
[Network.Devnet]: devnetChainInfo,
[Network.Devnet1]: devnetChainInfo,
@@ -82,9 +82,9 @@ export const getNetworkInfo = (
export const isMainnet = (network: Network) =>
[
- Network.Public,
Network.Staging,
Network.Mainnet,
+ Network.MainnetOld,
Network.MainnetK8s,
Network.MainnetSentry,
Network.Internal,
diff --git a/packages/networks/src/types.ts b/packages/networks/src/types.ts
index 619c7979f..f6e4cbbc7 100644
--- a/packages/networks/src/types.ts
+++ b/packages/networks/src/types.ts
@@ -5,8 +5,8 @@ export enum Network {
MainnetLB = 'mainnetLB',
Mainnet = 'mainnet',
MainnetSentry = 'mainnetSentry',
+ MainnetOld = 'mainnetOld',
Staging = 'staging',
- Public = 'public',
Internal = 'internal', // @deprecated
TestnetK8s = 'testnetK8s',
TestnetOld = 'testnetOld',
@@ -23,7 +23,8 @@ export type NetworkEndpoints = {
grpc: string // Sentry gRPC
rest: string // LCD
rpc?: string // Tendermint
- cache?: string // Cache Service
+ cacheGrpc?: string // Cache gRPC service
+ cacheRest?: string // Cache LCD service
chronos?: string // Chronos Service
web3gw?: string // Web3Gateway Service
explorer?: string // Explorer Service
diff --git a/packages/sdk-ts/CHANGELOG.md b/packages/sdk-ts/CHANGELOG.md
index cbf723ef3..8c244ce0f 100644
--- a/packages/sdk-ts/CHANGELOG.md
+++ b/packages/sdk-ts/CHANGELOG.md
@@ -3,52 +3,54 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.5-beta.67...@injectivelabs/sdk-ts@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.11-beta.88...@injectivelabs/sdk-ts@1.14.11) (2024-06-10)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
-### Features
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.8...@injectivelabs/sdk-ts@1.14.10) (2024-03-03)
-* cid ([b286316](https://github.com/InjectiveLabs/injective-ts/commit/b286316549a80ba64af9ba946d9166e1cd638fd7))
+**Note:** Version bump only for package @injectivelabs/sdk-ts
+## [1.14.8](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.7...@injectivelabs/sdk-ts@1.14.8) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.7-beta.2...@injectivelabs/sdk-ts@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.4-beta.3...@injectivelabs/sdk-ts@1.14.4) (2023-11-20)
+## [1.14.7-beta.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.7-beta.0...@injectivelabs/sdk-ts@1.14.7-beta.1) (2024-03-02)
**Note:** Version bump only for package @injectivelabs/sdk-ts
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.6-beta.58...@injectivelabs/sdk-ts@1.14.6) (2024-03-01)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.5-beta.67...@injectivelabs/sdk-ts@1.14.5) (2024-01-11)
+### Features
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.3-beta.22...@injectivelabs/sdk-ts@1.14.3) (2023-11-17)
-
-**Note:** Version bump only for package @injectivelabs/sdk-ts
+- cid ([b286316](https://github.com/InjectiveLabs/injective-ts/commit/b286316549a80ba64af9ba946d9166e1cd638fd7))
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.4-beta.3...@injectivelabs/sdk-ts@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.3-beta.22...@injectivelabs/sdk-ts@1.14.3) (2023-11-17)
+**Note:** Version bump only for package @injectivelabs/sdk-ts
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.2-beta.13...@injectivelabs/sdk-ts@1.14.2) (2023-11-07)
-
### Reverts
-* faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
-
-
-
-
+- faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.1-beta.24...@injectivelabs/sdk-ts@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/sdk-ts
-
-
-
-
## [1.14.1-beta.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/sdk-ts@1.14.1-beta.1...@injectivelabs/sdk-ts@1.14.1-beta.2) (2023-09-24)
**Note:** Version bump only for package @injectivelabs/sdk-ts
diff --git a/packages/sdk-ts/package.json b/packages/sdk-ts/package.json
index b76493925..e83c3e7aa 100644
--- a/packages/sdk-ts/package.json
+++ b/packages/sdk-ts/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/sdk-ts",
"description": "SDK in TypeScript for building Injective applications in a browser, node, and react native environment.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.7",
"sideEffects": false,
"license": "Apache-2.0",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,35 +28,33 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
"@apollo/client": "^3.5.8",
- "@cosmjs/amino": "^0.31.3",
- "@cosmjs/proto-signing": "^0.31.3",
- "@cosmjs/stargate": "^0.31.3",
- "@ensdomains/ens-validation": "^0.1.0",
- "@ensdomains/eth-ens-namehash": "^2.0.15",
+ "@cosmjs/amino": "^0.32.3",
+ "@cosmjs/proto-signing": "^0.32.3",
+ "@cosmjs/stargate": "^0.32.3",
"@ethersproject/bytes": "^5.7.0",
"@injectivelabs/core-proto-ts": "^0.0.21",
- "@injectivelabs/dmm-proto-ts": "1.0.19",
- "@injectivelabs/exceptions": "^1.14.5",
+ "@injectivelabs/dmm-proto-ts": "1.0.20",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
"@injectivelabs/grpc-web": "^0.0.1",
"@injectivelabs/grpc-web-node-http-transport": "^0.0.2",
"@injectivelabs/grpc-web-react-native-transport": "^0.0.2",
- "@injectivelabs/indexer-proto-ts": "1.11.32",
- "@injectivelabs/mito-proto-ts": "1.0.55",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/test-utils": "^1.14.3",
- "@injectivelabs/token-metadata": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
+ "@injectivelabs/indexer-proto-ts": "1.11.42",
+ "@injectivelabs/mito-proto-ts": "1.0.65",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/test-utils": "^1.14.6-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
"@metamask/eth-sig-util": "^4.0.0",
- "axios": "^0.27.2",
+ "@noble/curves": "^1.4.0",
+ "axios": "^1.6.4",
"bech32": "^2.0.0",
"bip39": "^3.0.4",
- "cosmjs-types": "^0.7.1",
+ "cosmjs-types": "^0.9.0",
"ethereumjs-util": "^7.1.4",
"ethers": "^5.7.2",
"google-protobuf": "^3.21.0",
diff --git a/packages/sdk-ts/src/client/base/BaseGrpcConsumer.ts b/packages/sdk-ts/src/client/base/BaseGrpcConsumer.ts
index 1ccc80750..4f7e21e9d 100644
--- a/packages/sdk-ts/src/client/base/BaseGrpcConsumer.ts
+++ b/packages/sdk-ts/src/client/base/BaseGrpcConsumer.ts
@@ -1,15 +1,29 @@
+import { grpc } from '@injectivelabs/grpc-web'
import { getGrpcTransport } from '../../utils/grpc'
import { GrpcWebImpl } from './GrpcWebImpl'
export default class BaseGrpcConsumer extends GrpcWebImpl {
protected module: string = ''
+ protected metadata?: grpc.Metadata
+
constructor(endpoint: string) {
super(endpoint, {
transport: getGrpcTransport(),
})
}
+ public setMetadata(map: Record) {
+ const metadata = new grpc.Metadata()
+ Object.keys(map).forEach((key) => metadata.set(key, map[key]))
+
+ this.metadata = metadata
+ }
+
+ public clearMetadata() {
+ this.metadata = undefined
+ }
+
public getGrpcWebImpl(endpoint: string) {
return new BaseGrpcConsumer(endpoint)
}
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuctionApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuctionApi.ts
index 9f730487e..92183035c 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuctionApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuctionApi.ts
@@ -30,7 +30,7 @@ export class ChainGrpcAuctionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.AuctionParams(request),
+ () => this.client.AuctionParams(request, this.metadata),
)
return ChainGrpcAuctionTransformer.moduleParamsResponseToModuleParams(
@@ -60,7 +60,7 @@ export class ChainGrpcAuctionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.AuctionModuleState(request),
+ () => this.client.AuctionModuleState(request, this.metadata),
)
return ChainGrpcAuctionTransformer.auctionModuleStateResponseToAuctionModuleState(
@@ -90,7 +90,7 @@ export class ChainGrpcAuctionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.CurrentAuctionBasket(request),
+ () => this.client.CurrentAuctionBasket(request, this.metadata),
)
return ChainGrpcAuctionTransformer.currentBasketResponseToCurrentBasket(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthApi.ts
index fa52dee55..9c0ea5c92 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthApi.ts
@@ -31,7 +31,7 @@ export class ChainGrpcAuthApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return ChainGrpcAuthTransformer.moduleParamsResponseToModuleParams(
@@ -62,7 +62,7 @@ export class ChainGrpcAuthApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Account(request),
+ this.client.Account(request, this.metadata),
)
return ChainGrpcAuthTransformer.accountResponseToAccount(response)
@@ -94,7 +94,7 @@ export class ChainGrpcAuthApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Accounts(request),
+ this.client.Accounts(request, this.metadata),
)
return ChainGrpcAuthTransformer.accountsResponseToAccounts(response)
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthZApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthZApi.ts
index 6ff6f2ab8..ede22c025 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthZApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcAuthZApi.ts
@@ -59,7 +59,7 @@ export class ChainGrpcAuthZApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Grants(request),
+ this.client.Grants(request, this.metadata),
)
return ChainGrpcAuthZTransformer.grpcGrantsToGrants(response)
@@ -96,7 +96,7 @@ export class ChainGrpcAuthZApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.GranterGrants(request),
+ () => this.client.GranterGrants(request, this.metadata),
)
return ChainGrpcAuthZTransformer.grpcGranterGrantsToGranterGrants(
@@ -135,7 +135,7 @@ export class ChainGrpcAuthZApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.GranteeGrants(request),
+ () => this.client.GranteeGrants(request, this.metadata),
)
return ChainGrpcAuthZTransformer.grpcGranteeGrantsToGranteeGrants(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcBankApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcBankApi.ts
index 5aec5c3ad..3eef91376 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcBankApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcBankApi.ts
@@ -36,7 +36,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return ChainGrpcBankTransformer.moduleParamsResponseToModuleParams(
@@ -74,7 +74,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Balance(request),
+ this.client.Balance(request, this.metadata),
)
return ChainGrpcBankTransformer.balanceResponseToBalance(response)
@@ -109,7 +109,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.AllBalances(request),
+ this.client.AllBalances(request, this.metadata),
)
return ChainGrpcBankTransformer.balancesResponseToBalances(response)
@@ -141,7 +141,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.TotalSupply(request),
+ this.client.TotalSupply(request, this.metadata),
)
return ChainGrpcBankTransformer.totalSupplyResponseToTotalSupply(response)
@@ -177,7 +177,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.SupplyOf(request),
+ this.client.SupplyOf(request, this.metadata),
)
return ChainGrpcBankTransformer.grpcCoinToCoin(response.amount!)
@@ -209,7 +209,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomsMetadata(request),
+ () => this.client.DenomsMetadata(request, this.metadata),
)
return ChainGrpcBankTransformer.denomsMetadataResponseToDenomsMetadata(
@@ -240,7 +240,7 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomMetadata(request),
+ () => this.client.DenomMetadata(request, this.metadata),
)
return ChainGrpcBankTransformer.metadataToMetadata(response.metadata!)
@@ -260,4 +260,41 @@ export class ChainGrpcBankApi extends BaseGrpcConsumer {
})
}
}
+
+ async fetchDenomOwners(denom: string, pagination?: PaginationOption) {
+ const request = CosmosBankV1Beta1Query.QueryDenomOwnersRequest.create()
+
+ request.denom = denom
+
+ const paginationForRequest = paginationRequestFromPagination(pagination)
+
+ if (paginationForRequest) {
+ request.pagination = paginationForRequest
+ }
+
+ try {
+ const response =
+ await this.retry(() =>
+ this.client.DenomOwners(request, this.metadata),
+ )
+
+ return ChainGrpcBankTransformer.denomOwnersResponseToDenomOwners(
+ response,
+ )
+ } catch (e: unknown) {
+ if (e instanceof CosmosBankV1Beta1Query.GrpcWebError) {
+ throw new GrpcUnaryRequestException(new Error(e.toString()), {
+ code: e.code,
+ context: 'DenomOwners',
+ contextModule: this.module,
+ })
+ }
+
+ throw new GrpcUnaryRequestException(e as Error, {
+ code: UnspecifiedErrorCode,
+ context: 'DenomOwners',
+ contextModule: this.module,
+ })
+ }
+ }
}
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcDistributionApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcDistributionApi.ts
index 8119f4cb2..c7dd1cfc7 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcDistributionApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcDistributionApi.ts
@@ -30,7 +30,7 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Params(request),
+ () => this.client.Params(request, this.metadata),
)
return ChainGrpcDistributionTransformer.moduleParamsResponseToModuleParams(
@@ -69,7 +69,7 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegationRewards(request),
+ () => this.client.DelegationRewards(request, this.metadata),
)
return ChainGrpcDistributionTransformer.delegationRewardResponseToReward(
@@ -108,7 +108,7 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegationRewards(request),
+ () => this.client.DelegationRewards(request, this.metadata),
)
return ChainGrpcDistributionTransformer.delegationRewardResponseToReward(
@@ -144,7 +144,7 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegationTotalRewards(request),
+ () => this.client.DelegationTotalRewards(request, this.metadata),
)
return ChainGrpcDistributionTransformer.totalDelegationRewardResponseToTotalReward(
@@ -176,7 +176,7 @@ export class ChainGrpcDistributionApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegationTotalRewards(request),
+ () => this.client.DelegationTotalRewards(request, this.metadata),
)
return ChainGrpcDistributionTransformer.totalDelegationRewardResponseToTotalReward(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcExchangeApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcExchangeApi.ts
index 50da66fe1..ef2ddb79a 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcExchangeApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcExchangeApi.ts
@@ -32,7 +32,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.QueryExchangeParams(request),
+ () => this.client.QueryExchangeParams(request, this.metadata),
)
return ChainGrpcExchangeTransformer.moduleParamsResponseToParams(response)
@@ -60,7 +60,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ExchangeModuleState(request),
+ () => this.client.ExchangeModuleState(request, this.metadata),
)
return response.state!
@@ -88,7 +88,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.FeeDiscountSchedule(request),
+ () => this.client.FeeDiscountSchedule(request, this.metadata),
)
return ChainGrpcExchangeTransformer.feeDiscountScheduleResponseToFeeDiscountSchedule(
@@ -121,7 +121,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.FeeDiscountAccountInfo(request),
+ () => this.client.FeeDiscountAccountInfo(request, this.metadata),
)
return ChainGrpcExchangeTransformer.feeDiscountAccountInfoResponseToFeeDiscountAccountInfo(
@@ -151,7 +151,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.TradeRewardCampaign(request),
+ () => this.client.TradeRewardCampaign(request, this.metadata),
)
return ChainGrpcExchangeTransformer.tradingRewardsCampaignResponseToTradingRewardsCampaign(
@@ -183,7 +183,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.TradeRewardPoints(request),
+ () => this.client.TradeRewardPoints(request, this.metadata),
)
return response.accountTradeRewardPoints
@@ -220,7 +220,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.PendingTradeRewardPoints(request),
+ () => this.client.PendingTradeRewardPoints(request, this.metadata),
)
return response.accountTradeRewardPoints
@@ -247,7 +247,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Positions(request),
+ () => this.client.Positions(request, this.metadata),
)
return ChainGrpcExchangeTransformer.positionsResponseToPositions(response)
@@ -277,7 +277,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.SubaccountTradeNonce(request),
+ () => this.client.SubaccountTradeNonce(request, this.metadata),
)
return response
@@ -307,7 +307,7 @@ export class ChainGrpcExchangeApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.IsOptedOutOfRewards(request),
+ () => this.client.IsOptedOutOfRewards(request, this.metadata),
)
return ChainGrpcExchangeTransformer.isOptedOutOfRewardsResponseToIsOptedOutOfRewards(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcGovApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcGovApi.ts
index ce175757c..ef87b089a 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcGovApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcGovApi.ts
@@ -36,7 +36,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
try {
const responses = await Promise.all(
- requests.map((request) => this.client.Params(request)),
+ requests.map((request) => this.client.Params(request, this.metadata)),
)
const [votingParams, depositParams, tallyParams] = responses
@@ -82,7 +82,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Proposals(request),
+ this.client.Proposals(request, this.metadata),
)
return ChainGrpcGovTransformer.proposalsResponseToProposals(response)
@@ -110,7 +110,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
try {
const response = await this.retry(
- () => this.client.Proposal(request),
+ () => this.client.Proposal(request, this.metadata),
)
return ChainGrpcGovTransformer.proposalResponseToProposal(response)
@@ -150,7 +150,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
try {
const response = await this.retry(
- () => this.client.Deposits(request),
+ () => this.client.Deposits(request, this.metadata),
)
return ChainGrpcGovTransformer.depositsResponseToDeposits(response)
@@ -189,7 +189,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
}
try {
const response = await this.retry(
- () => this.client.Votes(request),
+ () => this.client.Votes(request, this.metadata),
)
return ChainGrpcGovTransformer.votesResponseToVotes(response)
@@ -217,7 +217,7 @@ export class ChainGrpcGovApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.TallyResult(request),
+ this.client.TallyResult(request, this.metadata),
)
return ChainGrpcGovTransformer.tallyResultResponseToTallyResult(response)
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcIbcApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcIbcApi.ts
index 3dc64c4d6..677a332ba 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcIbcApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcIbcApi.ts
@@ -33,7 +33,7 @@ export class ChainGrpcIbcApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomTrace(request),
+ () => this.client.DenomTrace(request, this.metadata),
)
return response.denomTrace!
@@ -67,7 +67,7 @@ export class ChainGrpcIbcApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomTraces(request),
+ () => this.client.DenomTraces(request, this.metadata),
)
return response.denomTraces
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcInsuranceFundApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcInsuranceFundApi.ts
index 19fb99450..ee427c656 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcInsuranceFundApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcInsuranceFundApi.ts
@@ -30,7 +30,7 @@ export class ChainGrpcInsuranceFundApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.InsuranceParams(request),
+ () => this.client.InsuranceParams(request, this.metadata),
)
return ChainGrpcInsuranceFundTransformer.moduleParamsResponseToModuleParams(
@@ -60,7 +60,7 @@ export class ChainGrpcInsuranceFundApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.InsuranceFunds(request),
+ () => this.client.InsuranceFunds(request, this.metadata),
)
return ChainGrpcInsuranceFundTransformer.insuranceFundsResponseToInsuranceFunds(
@@ -92,7 +92,7 @@ export class ChainGrpcInsuranceFundApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.InsuranceFund(request),
+ () => this.client.InsuranceFund(request, this.metadata),
)
return ChainGrpcInsuranceFundTransformer.insuranceFundResponseToInsuranceFund(
@@ -131,7 +131,7 @@ export class ChainGrpcInsuranceFundApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.EstimatedRedemptions(request),
+ () => this.client.EstimatedRedemptions(request, this.metadata),
)
return ChainGrpcInsuranceFundTransformer.estimatedRedemptionsResponseToEstimatedRedemptions(
@@ -170,7 +170,7 @@ export class ChainGrpcInsuranceFundApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.PendingRedemptions(request),
+ () => this.client.PendingRedemptions(request, this.metadata),
)
return ChainGrpcInsuranceFundTransformer.redemptionsResponseToRedemptions(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcMintApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcMintApi.ts
index 2e3fbfb91..31e8a8366 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcMintApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcMintApi.ts
@@ -32,7 +32,7 @@ export class ChainGrpcMintApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return ChainGrpcMintTransformer.moduleParamsResponseToModuleParams(
@@ -61,7 +61,7 @@ export class ChainGrpcMintApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Inflation(request),
+ this.client.Inflation(request, this.metadata),
)
return {
@@ -92,7 +92,7 @@ export class ChainGrpcMintApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.AnnualProvisions(request),
+ () => this.client.AnnualProvisions(request, this.metadata),
)
return {
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcOracleApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcOracleApi.ts
index dcd80c972..59a1d9e25 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcOracleApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcOracleApi.ts
@@ -28,7 +28,7 @@ export class ChainGrpcOracleApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return response.params as OracleModuleParams
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcPeggyApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcPeggyApi.ts
index 43208810a..2e7791fdf 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcPeggyApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcPeggyApi.ts
@@ -29,7 +29,7 @@ export class ChainGrpcPeggyApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return ChainGrpcPeggyTransformer.moduleParamsResponseToModuleParams(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcStakingApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcStakingApi.ts
index 0ef2369c5..3732a0215 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcStakingApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcStakingApi.ts
@@ -31,7 +31,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Params(request),
+ this.client.Params(request, this.metadata),
)
return ChainGrpcStakingTransformer.moduleParamsResponseToModuleParams(
@@ -60,7 +60,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Pool(request),
+ this.client.Pool(request, this.metadata),
)
return ChainGrpcStakingTransformer.poolResponseToPool(response)
@@ -93,7 +93,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Validators(request),
+ () => this.client.Validators(request, this.metadata),
)
return ChainGrpcStakingTransformer.validatorsResponseToValidators(
@@ -124,7 +124,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.Validator(request),
+ this.client.Validator(request, this.metadata),
)
return ChainGrpcStakingTransformer.validatorResponseToValidator(response)
@@ -166,7 +166,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorDelegations(request),
+ () => this.client.ValidatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -210,7 +210,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorDelegations(request),
+ () => this.client.ValidatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -258,7 +258,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorUnbondingDelegations(request),
+ () => this.client.ValidatorUnbondingDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.unBondingDelegationsResponseToUnBondingDelegations(
@@ -302,7 +302,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorUnbondingDelegations(request),
+ () => this.client.ValidatorUnbondingDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.unBondingDelegationsResponseToUnBondingDelegations(
@@ -344,7 +344,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Delegation(request),
+ () => this.client.Delegation(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationResponseToDelegation(
@@ -388,7 +388,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegatorDelegations(request),
+ () => this.client.DelegatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -432,7 +432,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegatorDelegations(request),
+ () => this.client.DelegatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -480,7 +480,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorDelegations(request),
+ () => this.client.ValidatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -524,7 +524,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.ValidatorDelegations(request),
+ () => this.client.ValidatorDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.delegationsResponseToDelegations(
@@ -572,7 +572,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegatorUnbondingDelegations(request),
+ () => this.client.DelegatorUnbondingDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.unBondingDelegationsResponseToUnBondingDelegations(
@@ -616,7 +616,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DelegatorUnbondingDelegations(request),
+ () => this.client.DelegatorUnbondingDelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.unBondingDelegationsResponseToUnBondingDelegations(
@@ -663,7 +663,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Redelegations(request),
+ () => this.client.Redelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.reDelegationsResponseToReDelegations(
@@ -706,7 +706,7 @@ export class ChainGrpcStakingApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Redelegations(request),
+ () => this.client.Redelegations(request, this.metadata),
)
return ChainGrpcStakingTransformer.reDelegationsResponseToReDelegations(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTendermintApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTendermintApi.ts
index 64b1c31cf..269a2236d 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTendermintApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTendermintApi.ts
@@ -28,7 +28,7 @@ export class ChainGrpcTendermintApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.GetLatestBlock(request),
+ () => this.client.GetLatestBlock(request, this.metadata),
)
return response.block || response.sdkBlock
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTokenFactoryApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTokenFactoryApi.ts
index f62cb5663..aa7e94ec6 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTokenFactoryApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcTokenFactoryApi.ts
@@ -32,7 +32,7 @@ export class ChainGrpcTokenFactoryApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomsFromCreator(request),
+ () => this.client.DenomsFromCreator(request, this.metadata),
)
return ChainGrpcTokenFactoryTransformer.denomsCreatorResponseToDenomsString(
@@ -65,7 +65,7 @@ export class ChainGrpcTokenFactoryApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.DenomAuthorityMetadata(request),
+ () => this.client.DenomAuthorityMetadata(request, this.metadata),
)
return ChainGrpcTokenFactoryTransformer.authorityMetadataResponseToAuthorityMetadata(
@@ -95,7 +95,7 @@ export class ChainGrpcTokenFactoryApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.Params(request),
+ () => this.client.Params(request, this.metadata),
)
return ChainGrpcTokenFactoryTransformer.moduleParamsResponseToModuleParams(
@@ -125,7 +125,7 @@ export class ChainGrpcTokenFactoryApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.TokenfactoryModuleState(request),
+ () => this.client.TokenfactoryModuleState(request, this.metadata),
)
return ChainGrpcTokenFactoryTransformer.moduleStateResponseToModuleState(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmApi.ts
index 3cd614907..011d14f2d 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmApi.ts
@@ -46,7 +46,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.AllContractState(request),
+ () => this.client.AllContractState(request, this.metadata),
)
return ChainGrpcWasmTransformer.allContractStateResponseToContractAccountsBalanceWithPagination(
@@ -89,7 +89,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.AllContractState(request),
+ () => this.client.AllContractState(request, this.metadata),
)
return ChainGrpcWasmTransformer.allContractStateResponseToContractState(
@@ -120,7 +120,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.ContractInfo(request),
+ this.client.ContractInfo(request, this.metadata),
)
const contractInfo = response.contractInfo
@@ -157,7 +157,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.ContractHistory(request),
+ this.client.ContractHistory(request, this.metadata),
)
return ChainGrpcWasmTransformer.contactHistoryResponseToContractHistory(
@@ -198,7 +198,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.SmartContractState(request),
+ () => this.client.SmartContractState(request, this.metadata),
)
return response
@@ -231,7 +231,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.RawContractState(request),
+ () => this.client.RawContractState(request, this.metadata),
)
return response
@@ -263,7 +263,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response = await this.retry(
- () => this.client.Codes(request),
+ () => this.client.Codes(request, this.metadata),
)
return ChainGrpcWasmTransformer.contractCodesResponseToContractCodes(
@@ -293,7 +293,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response = await this.retry(
- () => this.client.Code(request),
+ () => this.client.Code(request, this.metadata),
)
return ChainGrpcWasmTransformer.contractCodeResponseToContractCode(
@@ -333,7 +333,7 @@ export class ChainGrpcWasmApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(() =>
- this.client.ContractsByCode(request),
+ this.client.ContractsByCode(request, this.metadata),
)
return ChainGrpcWasmTransformer.contractByCodeResponseToContractByCode(
diff --git a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmXApi.ts b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmXApi.ts
index 1464d0426..aa14872e5 100644
--- a/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmXApi.ts
+++ b/packages/sdk-ts/src/client/chain/grpc/ChainGrpcWasmXApi.ts
@@ -28,7 +28,7 @@ export class ChainGrpcWasmXApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.WasmxParams(request),
+ () => this.client.WasmxParams(request, this.metadata),
)
return response
@@ -55,7 +55,7 @@ export class ChainGrpcWasmXApi extends BaseGrpcConsumer {
try {
const response =
await this.retry(
- () => this.client.WasmxModuleState(request),
+ () => this.client.WasmxModuleState(request, this.metadata),
)
return response.state /* TODO */
diff --git a/packages/sdk-ts/src/client/chain/rest/ChainRestBankApi.ts b/packages/sdk-ts/src/client/chain/rest/ChainRestBankApi.ts
index e54e7a4ba..a32933999 100644
--- a/packages/sdk-ts/src/client/chain/rest/ChainRestBankApi.ts
+++ b/packages/sdk-ts/src/client/chain/rest/ChainRestBankApi.ts
@@ -7,7 +7,11 @@ import {
} from '@injectivelabs/exceptions'
import BaseRestConsumer from '../../base/BaseRestConsumer'
import { ChainModule, RestApiResponse } from '../types'
-import { BalancesResponse, DenomBalance } from './../types/bank-rest'
+import {
+ BalancesResponse,
+ DenomBalance,
+ DenomOwnersResponse,
+} from './../types/bank-rest'
/**
* @category Chain Rest API
@@ -91,4 +95,33 @@ export class ChainRestBankApi extends BaseRestConsumer {
})
}
}
+
+ public async fetchDenomOwners(
+ denom: string,
+ params: Record = {},
+ ): Promise {
+ const endpoint = `cosmos/bank/v1beta1/denom_owners/${denom}`
+
+ try {
+ const response = await this.retry>(
+ () => this.get(endpoint, params),
+ )
+
+ return response.data.denom_owners
+ } catch (e) {
+ if (e instanceof HttpRequestException) {
+ throw e
+ }
+
+ if (e instanceof GeneralException) {
+ throw e
+ }
+
+ throw new HttpRequestException(new Error((e as any).message), {
+ code: UnspecifiedErrorCode,
+ context: `${this.endpoint}/${endpoint}`,
+ contextModule: ChainModule.Bank,
+ })
+ }
+ }
}
diff --git a/packages/sdk-ts/src/client/chain/rest/ChainRestWasmApi.ts b/packages/sdk-ts/src/client/chain/rest/ChainRestWasmApi.ts
new file mode 100644
index 000000000..ced25e6a1
--- /dev/null
+++ b/packages/sdk-ts/src/client/chain/rest/ChainRestWasmApi.ts
@@ -0,0 +1,39 @@
+import {
+ HttpRequestException,
+ UnspecifiedErrorCode,
+} from '@injectivelabs/exceptions'
+import BaseRestConsumer from '../../base/BaseRestConsumer'
+import { ChainModule, RestApiResponse } from '../types'
+
+export type SmartContractStateResponse = unknown
+
+/**
+ * @category Chain Wasm API
+ */
+export class ChainRestWasmApi extends BaseRestConsumer {
+ public async fetchSmartContractState(
+ contractAddress: string,
+ query: string,
+ params: Record = {},
+ ): Promise {
+ const endpoint = `cosmwasm/wasm/v1/contract/${contractAddress}/smart/${query}`
+
+ try {
+ const response = await this.retry<
+ RestApiResponse
+ >(() => this.get(endpoint, params))
+
+ return response.data
+ } catch (e) {
+ if (e instanceof HttpRequestException) {
+ throw e
+ }
+
+ throw new HttpRequestException(new Error((e as any).message), {
+ code: UnspecifiedErrorCode,
+ context: `${this.endpoint}/${endpoint}`,
+ contextModule: ChainModule.Bank,
+ })
+ }
+ }
+}
diff --git a/packages/sdk-ts/src/client/chain/rest/index.ts b/packages/sdk-ts/src/client/chain/rest/index.ts
index 350a48e4c..677c3d2ae 100644
--- a/packages/sdk-ts/src/client/chain/rest/index.ts
+++ b/packages/sdk-ts/src/client/chain/rest/index.ts
@@ -1,3 +1,4 @@
export { ChainRestBankApi } from './ChainRestBankApi'
export { ChainRestAuthApi } from './ChainRestAuthApi'
+export { ChainRestWasmApi } from './ChainRestWasmApi'
export { ChainRestTendermintApi } from './ChainRestTendermintApi'
diff --git a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthTransformer.ts b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthTransformer.ts
index d58d32c7d..1a6a7c092 100644
--- a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthTransformer.ts
+++ b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthTransformer.ts
@@ -2,9 +2,10 @@ import { grpcPaginationToPagination } from '../../../utils/pagination'
import { uint8ArrayToString } from '../../../utils'
import { Account, AuthModuleParams } from '../types/auth'
import {
- CosmosAuthV1Beta1Query,
GoogleProtobufAny,
+ CosmosAuthV1Beta1Query,
InjectiveTypesV1Beta1Account,
+ InjectiveCryptoV1Beta1Ethsecp256k1Keys,
} from '@injectivelabs/core-proto-ts'
/**
@@ -38,7 +39,11 @@ export class ChainGrpcAuthTransformer {
address: baseAccount.address,
pubKey: pubKey
? {
- key: uint8ArrayToString(pubKey.value),
+ key: Buffer.from(
+ InjectiveCryptoV1Beta1Ethsecp256k1Keys.PubKey.decode(
+ pubKey.value,
+ ).key,
+ ).toString('base64'),
typeUrl: pubKey.typeUrl,
}
: undefined,
diff --git a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthZTransformer.ts b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthZTransformer.ts
index 2b7f45c2d..0943075ea 100644
--- a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthZTransformer.ts
+++ b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcAuthZTransformer.ts
@@ -1,28 +1,41 @@
+import { GeneralException } from '@injectivelabs/exceptions'
import { grpcPaginationToPagination } from '../../../utils/pagination'
import {
GoogleProtobufAny,
CosmosAuthzV1Beta1Authz,
CosmosAuthzV1Beta1Query,
} from '@injectivelabs/core-proto-ts'
+import {
+ GrantAuthorizationWithDecodedAuthorization,
+ GrantWithDecodedAuthorization,
+} from '../types'
/**
* @category Chain Grpc Transformer
*/
export class ChainGrpcAuthZTransformer {
- static grpcGrantToGrant(grant: CosmosAuthzV1Beta1Authz.Grant) {
+ static grpcGrantToGrant(
+ grant: CosmosAuthzV1Beta1Authz.Grant,
+ ): GrantWithDecodedAuthorization {
+ const authorization = decodeAuthorizationNoThrow(grant.authorization)
+
return {
- authorization: decodeAuthorization(grant.authorization),
+ authorization: authorization?.authorization,
+ authorizationType: authorization?.authorizationType || '',
expiration: grant.expiration,
}
}
static grpcGrantAuthorizationToGrantAuthorization(
grant: CosmosAuthzV1Beta1Authz.GrantAuthorization,
- ) {
+ ): GrantAuthorizationWithDecodedAuthorization {
+ const authorization = decodeAuthorizationNoThrow(grant.authorization)
+
return {
granter: grant.granter,
grantee: grant.grantee,
- authorization: decodeAuthorization(grant.authorization),
+ authorization: authorization?.authorization,
+ authorizationType: authorization?.authorizationType || '',
expiration: grant.expiration,
}
}
@@ -59,15 +72,28 @@ export class ChainGrpcAuthZTransformer {
}
}
-const decodeAuthorization = (authorization?: GoogleProtobufAny.Any) => {
- if (!authorization) {
- return ''
- }
-
+const decodeAuthorization = (authorization: GoogleProtobufAny.Any) => {
switch (authorization.typeUrl) {
case '/cosmos.authz.v1beta1.GenericAuthorization':
- return Buffer.from(authorization.value).toString('utf-8')
+ return {
+ authorization: CosmosAuthzV1Beta1Authz.GenericAuthorization.decode(
+ authorization.value,
+ ),
+ authorizationType: '/cosmos.authz.v1beta1.GenericAuthorization',
+ }
default:
- return Buffer.from(authorization.value).toString('utf-8')
+ throw new GeneralException(new Error('Unsupported authorization type'))
+ }
+}
+
+const decodeAuthorizationNoThrow = (authorization?: GoogleProtobufAny.Any) => {
+ if (!authorization) {
+ return undefined
+ }
+
+ try {
+ return decodeAuthorization(authorization)
+ } catch {
+ return undefined
}
}
diff --git a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcBankTransformer.ts b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcBankTransformer.ts
index 0751d23b0..bf5747b2e 100644
--- a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcBankTransformer.ts
+++ b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcBankTransformer.ts
@@ -37,6 +37,21 @@ export class ChainGrpcBankTransformer {
}
}
+ static denomOwnersResponseToDenomOwners(
+ response: CosmosBankV1Beta1Query.QueryDenomOwnersResponse,
+ ): {
+ denomOwners: { address: string; balance: Coin | undefined }[]
+ pagination: Pagination
+ } {
+ const denomOwners = response.denomOwners
+ const pagination = response.pagination
+
+ return {
+ denomOwners,
+ pagination: grpcPaginationToPagination(pagination),
+ }
+ }
+
static totalSupplyResponseToTotalSupply(
response: CosmosBankV1Beta1Query.QueryTotalSupplyResponse,
): {
diff --git a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcWasmTransformer.ts b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcWasmTransformer.ts
index 19baac833..0ecac2b81 100644
--- a/packages/sdk-ts/src/client/chain/transformers/ChainGrpcWasmTransformer.ts
+++ b/packages/sdk-ts/src/client/chain/transformers/ChainGrpcWasmTransformer.ts
@@ -1,14 +1,15 @@
import {
- ContractAccountBalance,
- ContractAccountsBalanceWithPagination,
- ContractCodeHistoryEntry,
+ TokenInfo,
ContractInfo,
- GrpcContractCodeHistoryEntry,
- grpcContractInfo,
+ MarketingInfo,
CodeInfoResponse,
+ grpcContractInfo,
GrpcCodeInfoResponse,
- TokenInfo,
+ ContractAccountBalance,
+ ContractCodeHistoryEntry,
ContractStateWithPagination,
+ GrpcContractCodeHistoryEntry,
+ ContractAccountsBalanceWithPagination,
} from '../types/wasm'
import { fromUtf8 } from '../../../utils'
import { grpcPaginationToPagination } from './../../../utils/pagination'
@@ -51,10 +52,18 @@ export class ChainGrpcWasmTransformer {
tokenInfoModel?.value || new Uint8Array(),
).toString('utf-8')
+ const marketingInfoModel = response.models.find((model) => {
+ return Buffer.from(model.key).toString('utf-8') === 'marketing_info'
+ })
+ const marketingInfoValue = Buffer.from(
+ marketingInfoModel?.value || new Uint8Array(),
+ ).toString('utf-8')
+
return {
contractAccountsBalance,
tokenInfo: JSON.parse(tokenInfoValue || '{}') as TokenInfo,
contractInfo: JSON.parse(contractInfoValue || '{}') as ContractInfo,
+ marketingInfo: JSON.parse(marketingInfoValue || '{}') as MarketingInfo,
pagination: grpcPaginationToPagination(response.pagination),
}
}
@@ -92,10 +101,18 @@ export class ChainGrpcWasmTransformer {
tokenInfoModel?.value || new Uint8Array(),
).toString('utf-8')
+ const marketingInfoModel = response.models.find((model) => {
+ return Buffer.from(model.key).toString('utf-8') === 'marketing_info'
+ })
+ const marketingInfoValue = Buffer.from(
+ marketingInfoModel?.value || new Uint8Array(),
+ ).toString('utf-8')
+
return {
contractAccountsBalance,
tokenInfo: JSON.parse(tokenInfoValue || '{}') as TokenInfo,
contractInfo: JSON.parse(contractInfoValue || '{}') as ContractInfo,
+ marketingInfo: JSON.parse(marketingInfoValue || '{}') as MarketingInfo,
pagination: grpcPaginationToPagination(response.pagination),
}
}
diff --git a/packages/sdk-ts/src/client/chain/types/authZ.ts b/packages/sdk-ts/src/client/chain/types/authZ.ts
index a34f5b573..397994aa6 100644
--- a/packages/sdk-ts/src/client/chain/types/authZ.ts
+++ b/packages/sdk-ts/src/client/chain/types/authZ.ts
@@ -5,6 +5,7 @@ import {
export type Grant = CosmosAuthzV1Beta1Authz.Grant
export type GrantAuthorization = CosmosAuthzV1Beta1Authz.GrantAuthorization
+export type GenericAuthorization = CosmosAuthzV1Beta1Authz.GenericAuthorization
export type CreateSpotLimitOrderAuthz =
InjectiveExchangeV1Beta1Authz.CreateSpotLimitOrderAuthz
@@ -27,3 +28,19 @@ export type CancelDerivativeOrderAuthz =
InjectiveExchangeV1Beta1Authz.CancelDerivativeOrderAuthz
export type BatchCancelDerivativeOrdersAuthz =
InjectiveExchangeV1Beta1Authz.BatchCancelDerivativeOrdersAuthz
+
+export interface GrantWithDecodedAuthorization
+ extends Omit {
+ authorization:
+ | GenericAuthorization
+ | undefined /** Todo: add more authorizations */
+ authorizationType: string
+}
+
+export interface GrantAuthorizationWithDecodedAuthorization
+ extends Omit {
+ authorization:
+ | GenericAuthorization
+ | undefined /** Todo: add more authorizations */
+ authorizationType: string
+}
diff --git a/packages/sdk-ts/src/client/chain/types/bank-rest.ts b/packages/sdk-ts/src/client/chain/types/bank-rest.ts
index 3a8737a1b..ebd75366b 100644
--- a/packages/sdk-ts/src/client/chain/types/bank-rest.ts
+++ b/packages/sdk-ts/src/client/chain/types/bank-rest.ts
@@ -6,3 +6,13 @@ export interface DenomBalance {
export interface BalancesResponse {
balances: DenomBalance[]
}
+
+export interface DenomOwnersResponse {
+ denom_owners: {
+ address: string
+ balance: {
+ denom: string
+ amount: string
+ }
+ }[]
+}
diff --git a/packages/sdk-ts/src/client/chain/types/wasm.ts b/packages/sdk-ts/src/client/chain/types/wasm.ts
index bc9ef6b10..43260e161 100644
--- a/packages/sdk-ts/src/client/chain/types/wasm.ts
+++ b/packages/sdk-ts/src/client/chain/types/wasm.ts
@@ -37,9 +37,17 @@ export interface TokenInfo {
mint: string
}
+export interface MarketingInfo {
+ project: string
+ description: string
+ logo: { url: string }
+ marketing: string
+}
+
export interface ContractAccountsBalanceWithPagination {
tokenInfo: TokenInfo
contractInfo: ContractInfo
+ marketingInfo: MarketingInfo
contractAccountsBalance: ContractAccountBalance[]
pagination?: Pagination
}
@@ -47,6 +55,7 @@ export interface ContractAccountsBalanceWithPagination {
export interface ContractStateWithPagination {
tokenInfo: TokenInfo
contractInfo: ContractInfo
+ marketingInfo: MarketingInfo
contractAccountsBalance: ContractAccountBalance[]
pagination?: Pagination
}
diff --git a/packages/sdk-ts/src/client/dmm/grpc/index.ts b/packages/sdk-ts/src/client/dmm/grpc/index.ts
deleted file mode 100644
index e376fc501..000000000
--- a/packages/sdk-ts/src/client/dmm/grpc/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './DmmGrpcApi'
-export * from './types'
diff --git a/packages/sdk-ts/src/client/index.ts b/packages/sdk-ts/src/client/index.ts
index 13c580fc5..93fc21686 100644
--- a/packages/sdk-ts/src/client/index.ts
+++ b/packages/sdk-ts/src/client/index.ts
@@ -2,4 +2,4 @@ export * from './chain'
export * from './indexer'
export * from './gql'
export * from './wasm'
-export * from './dmm'
+export * from './olp'
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts
new file mode 100644
index 000000000..d3fbf9079
--- /dev/null
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts
@@ -0,0 +1,79 @@
+import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
+import { mockFactory } from '@injectivelabs/test-utils'
+import { IndexerGrpcArchiverTransformer } from '../transformers'
+import { IndexerGrpcArchiverApi } from './IndexerGrpcArchiverApi'
+
+const account = mockFactory.injectiveAddress
+const resolution = '1D'
+const endpoints = getNetworkEndpoints(Network.MainnetSentry)
+const indexerGrpcArchiverApi = new IndexerGrpcArchiverApi(endpoints.indexer)
+
+describe('IndexerGrpcArchiverApi', () => {
+ test('fetchHistoricalBalance', async () => {
+ try {
+ const response = await indexerGrpcArchiverApi.fetchHistoricalBalance({
+ account,
+ resolution,
+ })
+
+ expect(response).toBeDefined()
+ expect(response).toEqual(
+ expect.objectContaining<
+ ReturnType<
+ typeof IndexerGrpcArchiverTransformer.grpcHistoricalBalanceResponseToHistoricalBalances
+ >
+ >(response),
+ )
+ } catch (e) {
+ console.error(
+ 'IndexerGrpcArchiverApi.fetchHistoricalBalance => ' +
+ (e as any).message,
+ )
+ }
+ })
+
+ test('fetchHistoricalRpnl', async () => {
+ try {
+ const response = await indexerGrpcArchiverApi.fetchHistoricalRpnl({
+ account,
+ resolution,
+ })
+
+ expect(response).toBeDefined()
+ expect(response).toEqual(
+ expect.objectContaining<
+ ReturnType<
+ typeof IndexerGrpcArchiverTransformer.grpcHistoricalRPNLResponseToHistoricalRPNL
+ >
+ >(response),
+ )
+ } catch (e) {
+ console.error(
+ 'IndexerGrpcArchiverApi.fetchHistoricalRpnl => ' + (e as any).message,
+ )
+ }
+ })
+
+ test('fetchHistoricalVolumes', async () => {
+ try {
+ const response = await indexerGrpcArchiverApi.fetchHistoricalVolumes({
+ account,
+ resolution,
+ })
+
+ expect(response).toBeDefined()
+ expect(response).toEqual(
+ expect.objectContaining<
+ ReturnType<
+ typeof IndexerGrpcArchiverTransformer.grpcHistoricalVolumesResponseToHistoricalVolumes
+ >
+ >(response),
+ )
+ } catch (e) {
+ console.error(
+ 'IndexerGrpcArchiverApi.fetchHistoricalVolumes => ' +
+ (e as any).message,
+ )
+ }
+ })
+})
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts
new file mode 100644
index 000000000..cad0c872f
--- /dev/null
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts
@@ -0,0 +1,136 @@
+import {
+ UnspecifiedErrorCode,
+ GrpcUnaryRequestException,
+} from '@injectivelabs/exceptions'
+import { InjectiveArchiverRPC } from '@injectivelabs/indexer-proto-ts'
+import BaseGrpcConsumer from '../../base/BaseIndexerGrpcConsumer'
+import { IndexerModule } from '../types'
+import { IndexerGrpcArchiverTransformer } from '../transformers'
+
+/**
+ * @category Indexer Grpc API
+ */
+export class IndexerGrpcArchiverApi extends BaseGrpcConsumer {
+ protected module: string = IndexerModule.Archiver
+
+ protected client: InjectiveArchiverRPC.InjectiveArchiverRPCClientImpl
+
+ constructor(endpoint: string) {
+ super(endpoint)
+
+ this.client = new InjectiveArchiverRPC.InjectiveArchiverRPCClientImpl(
+ this.getGrpcWebImpl(endpoint),
+ )
+ }
+
+ async fetchHistoricalBalance({
+ account,
+ resolution,
+ }: {
+ account: string
+ resolution: string
+ }) {
+ const request = InjectiveArchiverRPC.BalanceRequest.create()
+
+ request.account = account
+ request.resolution = resolution
+
+ try {
+ const response = await this.retry(
+ () => this.client.Balance(request),
+ )
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalBalanceResponseToHistoricalBalances(
+ response,
+ )
+ } catch (e: unknown) {
+ if (e instanceof InjectiveArchiverRPC.GrpcWebError) {
+ throw new GrpcUnaryRequestException(new Error(e.toString()), {
+ code: e.code,
+ context: 'Historical Balance',
+ contextModule: this.module,
+ })
+ }
+
+ throw new GrpcUnaryRequestException(e as Error, {
+ code: UnspecifiedErrorCode,
+ context: 'Historical Balance',
+ contextModule: this.module,
+ })
+ }
+ }
+
+ async fetchHistoricalRpnl({
+ account,
+ resolution,
+ }: {
+ account: string
+ resolution: string
+ }) {
+ const request = InjectiveArchiverRPC.RpnlRequest.create()
+
+ request.account = account
+ request.resolution = resolution
+
+ try {
+ const response = await this.retry(() =>
+ this.client.Rpnl(request),
+ )
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalRPNLResponseToHistoricalRPNL(
+ response,
+ )
+ } catch (e: unknown) {
+ if (e instanceof InjectiveArchiverRPC.GrpcWebError) {
+ throw new GrpcUnaryRequestException(new Error(e.toString()), {
+ code: e.code,
+ context: 'Historical Rpnl',
+ contextModule: this.module,
+ })
+ }
+
+ throw new GrpcUnaryRequestException(e as Error, {
+ code: UnspecifiedErrorCode,
+ context: 'Historical Rpnl',
+ contextModule: this.module,
+ })
+ }
+ }
+
+ async fetchHistoricalVolumes({
+ account,
+ resolution,
+ }: {
+ account: string
+ resolution: string
+ }) {
+ const request = InjectiveArchiverRPC.VolumesRequest.create()
+
+ request.account = account
+ request.resolution = resolution
+
+ try {
+ const response = await this.retry(
+ () => this.client.Volumes(request),
+ )
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalVolumesResponseToHistoricalVolumes(
+ response,
+ )
+ } catch (e: unknown) {
+ if (e instanceof InjectiveArchiverRPC.GrpcWebError) {
+ throw new GrpcUnaryRequestException(new Error(e.toString()), {
+ code: e.code,
+ context: 'Historical Volumes',
+ contextModule: this.module,
+ })
+ }
+
+ throw new GrpcUnaryRequestException(e as Error, {
+ code: UnspecifiedErrorCode,
+ context: 'Historical Volumes',
+ contextModule: this.module,
+ })
+ }
+ }
+}
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.spec.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.spec.ts
index 5551a36ab..3ea6b968f 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.spec.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.spec.ts
@@ -11,7 +11,7 @@ const CAMPAIGN_CONTRACT = 'inj1yum4v0v5l92jkxn8xpn9mjg7wuldk784ysdn0w'
const endpoints = getNetworkEndpoints(Network.MainnetSentry)
const indexerGrpcCampaignApi = new IndexerGrpcCampaignApi(endpoints.indexer)
-describe('IndexerGrpcCampaignApi', () => {
+describe.skip('IndexerGrpcCampaignApi', () => {
test('fetchCampaign', async () => {
try {
const response = await indexerGrpcCampaignApi.fetchCampaign({
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.ts
index 77654fa75..76b31a04d 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcCampaignApi.ts
@@ -30,17 +30,18 @@ export class IndexerGrpcCampaignApi extends BaseGrpcConsumer {
marketId,
campaignId,
accountAddress,
+ contractAddress,
}: {
skip?: string
limit?: number
marketId?: string
campaignId: string
accountAddress?: string
+ contractAddress?: string
}) {
const request = InjectiveCampaignRpc.RankingRequest.create()
request.campaignId = campaignId
-
if (skip) {
request.skip = skip
}
@@ -57,6 +58,10 @@ export class IndexerGrpcCampaignApi extends BaseGrpcConsumer {
request.accountAddress = accountAddress
}
+ if (contractAddress) {
+ request.contractAddress = contractAddress
+ }
+
try {
const response = await this.retry(
() => this.client.Ranking(request),
@@ -82,10 +87,14 @@ export class IndexerGrpcCampaignApi extends BaseGrpcConsumer {
async fetchRound({
roundId,
+ toRoundId,
accountAddress,
+ contractAddress,
}: {
roundId?: string
+ toRoundId?: number
accountAddress?: string
+ contractAddress?: string
}) {
const request = InjectiveCampaignRpc.CampaignsRequest.create()
@@ -97,12 +106,20 @@ export class IndexerGrpcCampaignApi extends BaseGrpcConsumer {
request.accountAddress = accountAddress
}
+ if (toRoundId) {
+ request.toRoundId = toRoundId
+ }
+
+ if (contractAddress) {
+ request.contractAddress = contractAddress
+ }
+
try {
const response = await this.retry(
() => this.client.Campaigns(request),
)
- return response
+ return IndexerCampaignTransformer.RoundsResponseToRounds(response)
} catch (e: unknown) {
if (e instanceof InjectiveCampaignRpc.GrpcWebError) {
throw new GrpcUnaryRequestException(new Error(e.toString()), {
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts
index c9bfee46d..bf3feb4a6 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts
@@ -272,10 +272,14 @@ export class IndexerGrpcExplorerApi extends BaseGrpcConsumer {
before,
after,
limit,
+ from,
+ to,
}: {
before?: number
after?: number
limit?: number
+ from?: number
+ to?: number
}) {
const request = InjectiveExplorerRpc.GetBlocksRequest.create()
@@ -287,6 +291,14 @@ export class IndexerGrpcExplorerApi extends BaseGrpcConsumer {
request.after = after.toString()
}
+ if (from) {
+ request.from = from.toString()
+ }
+
+ if (to) {
+ request.to = to.toString()
+ }
+
if (limit) {
request.limit = limit
}
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.spec.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.spec.ts
index 98c103414..d043e2043 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.spec.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.spec.ts
@@ -1,4 +1,3 @@
-import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import { mockFactory } from '@injectivelabs/test-utils'
import { IndexerGrpcMitoTransformer } from '../transformers'
import { IndexerGrpcMitoApi } from './IndexerGrpcMitoApi'
@@ -7,8 +6,9 @@ const injectiveAddress = mockFactory.injectiveAddress
const vaultAddress = 'inj1zwv6feuzhy6a9wekh96cd57lsarmqlwxvdl4nk'
const stakingContractAddress = 'inj1pxzykc8qry3ytxwxr3ua72tn6e4wvusj40yy2w'
const idoAddress = 'inj1zwv6feuzhy6a9wekh96cd57lsarmqlwxvdl4nk'
-const endpoints = getNetworkEndpoints(Network.Devnet)
-const indexerGrpcMitoApi = new IndexerGrpcMitoApi(endpoints.indexer)
+const indexerGrpcMitoApi = new IndexerGrpcMitoApi(
+ 'https://devnet.api.ninja.injective.dev',
+)
describe('IndexerGrpcMitoApi', () => {
test('fetchVault', async () => {
@@ -462,4 +462,30 @@ describe('IndexerGrpcMitoApi', () => {
)
}
})
+
+ test('fetchClaimReferences', async () => {
+ try {
+ const response = await indexerGrpcMitoApi.fetchClaimReferences({
+ idoAddress,
+ accountAddress: injectiveAddress,
+ })
+
+ if (response.claimReferences.length === 0) {
+ console.warn('fetchClaimReferences.responseIsEmptyArray')
+ }
+
+ expect(response).toBeDefined()
+ expect(response).toEqual(
+ expect.objectContaining<
+ ReturnType<
+ typeof IndexerGrpcMitoTransformer.claimReferencesResponseToClaimReferences
+ >
+ >(response),
+ )
+ } catch (e) {
+ console.error(
+ 'IndexerGrpcMitoApi.fetchClaimReferences => ' + (e as any).message,
+ )
+ }
+ })
})
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.ts
index ab2fe923c..b3adc8295 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcMitoApi.ts
@@ -949,4 +949,53 @@ export class IndexerGrpcMitoApi extends BaseGrpcConsumer {
})
}
}
+
+ async fetchClaimReferences({
+ skip,
+ limit,
+ idoAddress,
+ accountAddress,
+ }: {
+ skip?: number
+ limit?: number
+ idoAddress: string
+ accountAddress: string
+ }) {
+ const request = MitoApi.GetClaimReferencesRequest.create()
+
+ request.idoAddress = idoAddress
+ request.accountAddress = accountAddress
+
+ if (skip) {
+ request.skip = skip
+ }
+
+ if (limit) {
+ request.limit = limit
+ }
+
+ try {
+ const response = await this.retry(
+ () => this.client.GetClaimReferences(request),
+ )
+
+ return IndexerGrpcMitoTransformer.claimReferencesResponseToClaimReferences(
+ response,
+ )
+ } catch (e: unknown) {
+ if (e instanceof InjectiveMetaRpc.GrpcWebError) {
+ throw new GrpcUnaryRequestException(new Error(e.toString()), {
+ code: e.code,
+ context: 'GetClaimReferences',
+ contextModule: this.module,
+ })
+ }
+
+ throw new GrpcUnaryRequestException(e as Error, {
+ code: UnspecifiedErrorCode,
+ context: 'GetClaimReferences',
+ contextModule: this.module,
+ })
+ }
+ }
}
diff --git a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcTradingApi.ts b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcTradingApi.ts
index 807ae5fed..7e9bf7239 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcTradingApi.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcTradingApi.ts
@@ -4,7 +4,7 @@ import {
} from '@injectivelabs/exceptions'
import { InjectiveTradingRpc } from '@injectivelabs/indexer-proto-ts'
import BaseGrpcConsumer from '../../base/BaseIndexerGrpcConsumer'
-import { IndexerModule } from '../types'
+import { IndexerModule, MarketType, GridStrategyType } from '../types'
/**
* @category Indexer Grpc API
@@ -27,11 +27,19 @@ export class IndexerGrpcTradingApi extends BaseGrpcConsumer {
subaccountId,
state,
marketId,
+ limit,
+ skip,
+ marketType,
+ strategyType,
}: {
accountAddress?: string
subaccountId?: string
state?: string
marketId?: string
+ limit?: number
+ skip?: number
+ marketType?: MarketType
+ strategyType?: GridStrategyType[]
}) {
const request = InjectiveTradingRpc.ListTradingStrategiesRequest.create()
@@ -43,10 +51,26 @@ export class IndexerGrpcTradingApi extends BaseGrpcConsumer {
request.subaccountId = subaccountId
}
+ if (strategyType) {
+ request.strategyType = strategyType
+ }
+
+ if (marketType) {
+ request.marketType = marketType
+ }
+
if (state) {
request.state = state
}
+ if (limit) {
+ request.limit = limit
+ }
+
+ if (skip) {
+ request.skip = skip.toString()
+ }
+
if (marketId) {
request.marketId = marketId
}
diff --git a/packages/sdk-ts/src/client/indexer/grpc/index.ts b/packages/sdk-ts/src/client/indexer/grpc/index.ts
index 7f6ef93b6..cf67a0fb0 100644
--- a/packages/sdk-ts/src/client/indexer/grpc/index.ts
+++ b/packages/sdk-ts/src/client/indexer/grpc/index.ts
@@ -7,6 +7,7 @@ export { IndexerGrpcAuctionApi } from './IndexerGrpcAuctionApi'
export { IndexerGrpcTradingApi } from './IndexerGrpcTradingApi'
export { IndexerGrpcExplorerApi } from './IndexerGrpcExplorerApi'
export { IndexerGrpcCampaignApi } from './IndexerGrpcCampaignApi'
+export { IndexerGrpcArchiverApi } from './IndexerGrpcArchiverApi'
export { IndexerGrpcDerivativesApi } from './IndexerGrpcDerivativesApi'
export { IndexerGrpcTransactionApi } from './IndexerGrpcTransactionApi'
export { IndexerGrpcAccountPortfolioApi } from './IndexerGrpcPortfolioApi'
diff --git a/packages/sdk-ts/src/client/indexer/rest/IndexerRestExplorerApi.ts b/packages/sdk-ts/src/client/indexer/rest/IndexerRestExplorerApi.ts
index 030ffa154..c778ebb35 100644
--- a/packages/sdk-ts/src/client/indexer/rest/IndexerRestExplorerApi.ts
+++ b/packages/sdk-ts/src/client/indexer/rest/IndexerRestExplorerApi.ts
@@ -73,11 +73,13 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
async fetchBlocks(params?: {
before?: number
limit?: number
+ from?: number
+ to?: number
}): Promise<{ paging: Paging; blocks: Block[] }> {
const endpoint = 'blocks'
try {
- const { before, limit } = params || { limit: 12 }
+ const { before, limit, from, to } = params || { limit: 12 }
const response = await this.retry<
ExplorerApiResponseWithPagination
@@ -85,6 +87,8 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
this.get(endpoint, {
before,
limit,
+ from,
+ to,
}),
)
@@ -110,11 +114,13 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
async fetchBlocksWithTx(params?: {
before?: number
limit?: number
+ from?: number
+ to?: number
}): Promise<{ paging: Paging; blocks: ExplorerBlockWithTxs[] }> {
const endpoint = 'blocks'
try {
- const { before, limit } = params || { limit: 12 }
+ const { before, limit, from, to } = params || { limit: 12 }
const response = await this.retry<
ExplorerApiResponseWithPagination
@@ -122,6 +128,8 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
this.get(endpoint, {
before,
limit,
+ from,
+ to,
}),
)
@@ -658,7 +666,7 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
async fetchCW20BalancesNoThrow(
address: string,
- ): Promise {
+ ): Promise {
const endpoint = `/wasm/${address}/cw20-balance`
try {
@@ -670,9 +678,7 @@ export class IndexerRestExplorerApi extends BaseRestConsumer {
return []
}
- return response.data.map(
- IndexerRestExplorerTransformer.CW20BalanceToExplorerCW20Balance,
- )
+ return response.data
} catch (e: unknown) {
const error = e as any
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerCampaignTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerCampaignTransformer.ts
index f6dc45262..503ad7cae 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/IndexerCampaignTransformer.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerCampaignTransformer.ts
@@ -45,6 +45,12 @@ export class IndexerCampaignTransformer {
startDate: parseInt(campaign.startDate, 10),
endDate: parseInt(campaign.endDate, 10),
isClaimable: campaign.isClaimable,
+ rewards: campaign.rewards,
+ roundId: campaign.roundId,
+ userClaimed: campaign.userClaimed,
+ userScore: campaign.userScore,
+ rewardContract: campaign.rewardContract,
+ version: campaign.version,
}
}
@@ -121,6 +127,18 @@ export class IndexerCampaignTransformer {
}
}
+ static RoundsResponseToRounds(
+ response: InjectiveCampaignRpc.CampaignsResponse,
+ ) {
+ return {
+ campaigns: response.campaigns.map((campaign) =>
+ IndexerCampaignTransformer.GrpcCampaignToCampaign(campaign),
+ ),
+ accumulatedRewards: response.accumulatedRewards,
+ rewardCount: response.rewardCount,
+ }
+ }
+
static GuildsResponseToGuilds(
response: InjectiveCampaignRpc.ListGuildsResponse,
) {
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts
new file mode 100644
index 000000000..dfbecc95c
--- /dev/null
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts
@@ -0,0 +1,74 @@
+import {
+ HistoricalRPNL,
+ HistoricalBalance,
+ HistoricalVolumes,
+} from '../types/archiver'
+import { InjectiveArchiverRPC } from '@injectivelabs/indexer-proto-ts'
+
+/**
+ * @category Indexer Grpc Transformer
+ */
+export class IndexerGrpcArchiverTransformer {
+ static grpcHistoricalBalanceToHistoricalBalance(
+ historicalBalance: InjectiveArchiverRPC.HistoricalBalance,
+ ): HistoricalBalance {
+ return {
+ t: historicalBalance.t,
+ v: historicalBalance.v,
+ }
+ }
+
+ static grpcHistoricalRPNLToHistoricalRPNL(
+ historicalRPNL: InjectiveArchiverRPC.HistoricalRPNL,
+ ): HistoricalRPNL {
+ return {
+ t: historicalRPNL.t,
+ v: historicalRPNL.v,
+ }
+ }
+
+ static grpcHistoricalVolumesToHistoricalVolumes(
+ historicalVolumes: InjectiveArchiverRPC.HistoricalVolumes,
+ ): HistoricalVolumes {
+ return {
+ t: historicalVolumes.t,
+ v: historicalVolumes.v,
+ }
+ }
+
+ static grpcHistoricalBalanceResponseToHistoricalBalances(
+ response: InjectiveArchiverRPC.BalanceResponse,
+ ): HistoricalBalance {
+ if (!response.historicalBalance) {
+ return { t: [], v: [] }
+ }
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalBalanceToHistoricalBalance(
+ response.historicalBalance,
+ )
+ }
+
+ static grpcHistoricalRPNLResponseToHistoricalRPNL(
+ response: InjectiveArchiverRPC.RpnlResponse,
+ ): HistoricalRPNL {
+ if (!response.historicalRpnl) {
+ return { t: [], v: [] }
+ }
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalRPNLToHistoricalRPNL(
+ response.historicalRpnl,
+ )
+ }
+
+ static grpcHistoricalVolumesResponseToHistoricalVolumes(
+ response: InjectiveArchiverRPC.VolumesResponse,
+ ): HistoricalVolumes {
+ if (!response.historicalVolumes) {
+ return { t: [], v: [] }
+ }
+
+ return IndexerGrpcArchiverTransformer.grpcHistoricalVolumesToHistoricalVolumes(
+ response.historicalVolumes,
+ )
+ }
+}
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcDerivativeTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcDerivativeTransformer.ts
index d6e356b90..898177d02 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcDerivativeTransformer.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcDerivativeTransformer.ts
@@ -42,6 +42,7 @@ import {
IndexerTokenMeta,
OrderbookWithSequence,
} from '../types/exchange'
+import { TokenType } from '../../../types/token'
import { grpcPagingToPaging } from '../../../utils/pagination'
import { InjectiveDerivativeExchangeRpc } from '@injectivelabs/indexer-proto-ts'
@@ -71,6 +72,7 @@ export class IndexerGrpcDerivativeTransformer {
decimals: tokenMeta.decimals,
updatedAt: tokenMeta.updatedAt,
coinGeckoId: '',
+ tokenType: TokenType.Unknown,
}
}
@@ -455,6 +457,7 @@ export class IndexerGrpcDerivativeTransformer {
orderHash: order.orderHash,
orderSide: order.orderSide as OrderSide,
marketId: order.marketId,
+ cid: order.cid,
subaccountId: order.subaccountId,
isReduceOnly: order.isReduceOnly,
margin: order.margin,
@@ -489,6 +492,7 @@ export class IndexerGrpcDerivativeTransformer {
return {
orderHash: orderHistory.orderHash,
marketId: orderHistory.marketId,
+ cid: orderHistory.cid,
isActive: orderHistory.isActive,
subaccountId: orderHistory.subaccountId,
executionType: orderHistory.executionType,
@@ -580,6 +584,7 @@ export class IndexerGrpcDerivativeTransformer {
return {
orderHash: trade.orderHash,
tradeId: trade.tradeId,
+ cid: trade.cid,
subaccountId: trade.subaccountId,
marketId: trade.marketId,
executedAt: parseInt(trade.executedAt, 10),
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcMitoTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcMitoTransformer.ts
index 6bc8c22b9..1cdd70c60 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcMitoTransformer.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcMitoTransformer.ts
@@ -2,6 +2,7 @@ import { Coin } from '@injectivelabs/ts-types'
import { MitoApi } from '@injectivelabs/mito-proto-ts'
import {
MitoIDO,
+ MitoGauge,
MitoVault,
MitoHolders,
MitoChanges,
@@ -11,12 +12,17 @@ import {
MitoPortfolio,
MitoPagination,
MitoIDOProgress,
+ MitoStakingPool,
+ MitoGaugeStatus,
MitoLeaderboard,
+ MitoVestingConfig,
MitoDenomBalance,
MitoSubscription,
MitoIDOSubscriber,
MitoPriceSnapshot,
+ MitoClaimReference,
MitoIDOSubscription,
+ MitoVestingConfigMap,
MitoWhitelistAccount,
MitoLeaderboardEpoch,
MitoSubaccountBalance,
@@ -24,6 +30,7 @@ import {
MitoStakeToSubscription,
MitoIDOSubscriptionActivity,
MitoMissionLeaderboardEntry,
+ MitoIDOClaimedCoins,
} from '../types/mito'
import { GrpcCoin } from '../../../types'
@@ -119,6 +126,11 @@ export class IndexerGrpcMitoTransformer {
updatedAt: parseInt(vault.updatedAt, 10),
createdAt: parseInt(vault.createdAt, 10),
apy: vault.apy,
+ apyue: vault.apyue,
+ apy7D: vault.apy7D,
+ apy7DFq: vault.apy7DFq,
+ apyV3: vault.apyV3,
+ registrationMode: vault.registrationMode,
profits: IndexerGrpcMitoTransformer.changesResponseToChanges(
vault.profits,
),
@@ -219,10 +231,11 @@ export class IndexerGrpcMitoTransformer {
}
}
- static mitoGaugeToGauge(gauge: MitoApi.Gauge) {
+ static mitoGaugeToGauge(gauge: MitoApi.Gauge): MitoGauge {
return {
id: gauge.id,
owner: gauge.owner,
+ status: gauge.status as MitoGaugeStatus,
lastDistribution: gauge.lastDistribution,
endTimestamp: parseInt(gauge.endTimestamp, 10),
startTimestamp: parseInt(gauge.startTimestamp, 10),
@@ -232,7 +245,9 @@ export class IndexerGrpcMitoTransformer {
}
}
- static mitoStakingPoolToStakingPool(stakingPool: MitoApi.StakingPool) {
+ static mitoStakingPoolToStakingPool(
+ stakingPool: MitoApi.StakingPool,
+ ): MitoStakingPool {
return {
apr: stakingPool.apr,
vaultName: stakingPool.vaultName,
@@ -345,9 +360,11 @@ export class IndexerGrpcMitoTransformer {
capPerAddress: IDO.capPerAddress,
contractAddress: IDO.contractAddress,
subscribedAmount: IDO.subscribedAmount,
+ isLaunchWithVault: IDO.isLaunchWithVault,
targetAmountInUsd: IDO.targetAmountInUsd,
projectTokenAmount: IDO.projectTokenAmount,
isAccountWhiteListed: IDO.isAccountWhiteListed,
+ isVestingScheduleEnabled: IDO.isVestingScheduleEnabled,
targetAmountInQuoteDenom: IDO.targetAmountInQuoteDenom,
endTime: parseInt(IDO.endTime, 10),
startTime: parseInt(IDO.startTime, 10),
@@ -364,6 +381,10 @@ export class IndexerGrpcMitoTransformer {
stakeToSubscription: IDO.stakeToSubscription.map(
IndexerGrpcMitoTransformer.mitoStakedToSubscriptionToStakedToSubscription,
),
+ vestingConfig:
+ IndexerGrpcMitoTransformer.mitoIDOInitParamsToIDOVestingConfig(
+ IDO.initParams,
+ ),
}
}
@@ -397,6 +418,17 @@ export class IndexerGrpcMitoTransformer {
}
}
+ static mitoIDOClaimedCoinsToIDOClaimedCoins(
+ claimedCoins: MitoApi.IDOClaimedCoins,
+ ): MitoIDOClaimedCoins {
+ return {
+ claimedCoins: claimedCoins.claimedCoins.map(
+ IndexerGrpcMitoTransformer.grpcCoinToCoin,
+ ),
+ updatedAt: parseInt(claimedCoins.updatedAt, 10),
+ }
+ }
+
static mitoIDOSubscriptionToIDOSubscription(
subscription: MitoApi.IDOSubscription,
): MitoIDOSubscription {
@@ -425,6 +457,11 @@ export class IndexerGrpcMitoTransformer {
subscription.tokenInfo,
)
: undefined,
+ claimedCoins: subscription.claimedCoins
+ ? IndexerGrpcMitoTransformer.mitoIDOClaimedCoinsToIDOClaimedCoins(
+ subscription.claimedCoins,
+ )
+ : undefined,
}
}
@@ -448,11 +485,66 @@ export class IndexerGrpcMitoTransformer {
account: MitoApi.WhitelistAccount,
): MitoWhitelistAccount {
return {
+ weight: account.weight,
accountAddress: account.accountAddress,
updatedAt: parseInt(account.updatedAt, 10),
}
}
+ static mitoClaimReferenceToClaimReference(
+ claimReference: MitoApi.ClaimReference,
+ ): MitoClaimReference {
+ return {
+ denom: claimReference.denom,
+ claimedAmount: claimReference.claimedAmount,
+ accountAddress: claimReference.accountAddress,
+ claimableAmount: claimReference.claimableAmount,
+ cwContractAddress: claimReference.cwContractAddress,
+ idoContractAddress: claimReference.idoContractAddress,
+ vestingDurationSeconds: parseInt(
+ claimReference.vestingDurationSeconds,
+ 10,
+ ),
+ updatedAt: parseInt(claimReference.updatedAt, 10),
+ startVestingTime: parseInt(claimReference.startVestingTime, 10),
+ }
+ }
+
+ static mitoVestingCOonfigToVestingConfig(
+ config?: MitoApi.VestingConfig,
+ ): MitoVestingConfig {
+ return {
+ schedule: config?.schedule || '',
+ vestingDurationSeconds: parseInt(
+ config?.vestingDurationSeconds || '0',
+ 10,
+ ),
+ vestingStartDelaySeconds: parseInt(
+ config?.vestingDurationSeconds || '0',
+ 10,
+ ),
+ }
+ }
+
+ static mitoIDOInitParamsToIDOVestingConfig(
+ initParams?: MitoApi.InitParams,
+ ): MitoVestingConfigMap | undefined {
+ if (!initParams || !initParams.vestingConfig) {
+ return
+ }
+
+ return {
+ projectOwnerQuote:
+ IndexerGrpcMitoTransformer.mitoVestingCOonfigToVestingConfig(
+ initParams.vestingConfig.projectOwnerQuote,
+ ),
+ usersProjectToken:
+ IndexerGrpcMitoTransformer.mitoVestingCOonfigToVestingConfig(
+ initParams.vestingConfig.usersProjectToken,
+ ),
+ }
+ }
+
static vaultResponseToVault(response: MitoApi.GetVaultResponse): MitoVault {
const [vault] = response.vault
@@ -659,4 +751,22 @@ export class IndexerGrpcMitoTransformer {
),
}
}
+
+ static claimReferencesResponseToClaimReferences(
+ response: MitoApi.GetClaimReferencesResponse,
+ ): {
+ claimReferences: MitoClaimReference[]
+ pagination?: MitoPagination
+ } {
+ return {
+ claimReferences: response.claimReferences
+ ? response.claimReferences.map(
+ IndexerGrpcMitoTransformer.mitoClaimReferenceToClaimReference,
+ )
+ : [],
+ pagination: IndexerGrpcMitoTransformer.mitoPaginationToPagination(
+ response.pagination,
+ ),
+ }
+ }
}
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcSpotTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcSpotTransformer.ts
index 52ed5738f..830cd9254 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcSpotTransformer.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcSpotTransformer.ts
@@ -26,6 +26,7 @@ import {
IndexerTokenMeta,
OrderbookWithSequence,
} from '../types/exchange'
+import { TokenType } from '../../../types/token'
import { grpcPagingToPaging } from '../../../utils/pagination'
import { InjectiveSpotExchangeRpc } from '@injectivelabs/indexer-proto-ts'
@@ -54,6 +55,7 @@ export class IndexerGrpcSpotTransformer {
decimals: tokenMeta.decimals,
updatedAt: tokenMeta.updatedAt,
coinGeckoId: '',
+ tokenType: TokenType.Unknown,
}
}
@@ -228,6 +230,7 @@ export class IndexerGrpcSpotTransformer {
orderHash: order.orderHash,
orderSide: order.orderSide as OrderSide,
marketId: order.marketId,
+ cid: order.cid,
subaccountId: order.subaccountId,
price: order.price,
state: order.state as OrderState,
@@ -252,6 +255,7 @@ export class IndexerGrpcSpotTransformer {
return {
orderHash: orderHistory.orderHash,
marketId: orderHistory.marketId,
+ cid: orderHistory.cid,
active: orderHistory.isActive,
subaccountId: orderHistory.subaccountId,
executionType: orderHistory.executionType,
@@ -286,6 +290,7 @@ export class IndexerGrpcSpotTransformer {
subaccountId: trade.subaccountId,
marketId: trade.marketId,
tradeId: trade.tradeId,
+ cid: trade.cid,
executedAt: parseInt(trade.executedAt, 10),
feeRecipient: trade.feeRecipient,
tradeExecutionType: trade.tradeExecutionType as TradeExecutionType,
diff --git a/packages/sdk-ts/src/client/indexer/transformers/IndexerRestExplorerTransformer.ts b/packages/sdk-ts/src/client/indexer/transformers/IndexerRestExplorerTransformer.ts
index 5f23cb046..731f28d67 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/IndexerRestExplorerTransformer.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/IndexerRestExplorerTransformer.ts
@@ -4,7 +4,7 @@ import {
ContractTransactionWithMessages,
ExplorerValidator,
} from '../types/explorer'
-import { TokenType } from '@injectivelabs/token-metadata'
+import { TokenType, TokenVerification } from '../../../types/token'
import {
BaseTransaction,
BlockFromExplorerApiResponse,
@@ -112,7 +112,7 @@ export class IndexerRestExplorerTransformer {
})),
logs: transaction.logs,
errorLog: transaction.error_log,
- claimIds: transaction.claim_id || []
+ claimIds: transaction.claim_id || [],
}
}
@@ -285,18 +285,15 @@ export class IndexerRestExplorerTransformer {
balance: balance.balance,
updatedAt: balance.updated_at,
token: {
+ address: balance.contract_address,
+ denom: balance.contract_address,
decimals,
name,
symbol,
- logo: marketing_info ? marketing_info.logo || '' : '',
- cw20: {
- decimals,
- address: balance.contract_address,
- tokenType: TokenType.Cw20,
- },
+ tokenVerification: TokenVerification.Internal,
+ logo: marketing_info?.logo || '',
coinGeckoId: name,
tokenType: TokenType.Cw20,
- denom: '',
},
}
}
diff --git a/packages/sdk-ts/src/client/indexer/transformers/index.ts b/packages/sdk-ts/src/client/indexer/transformers/index.ts
index d253026fd..e5336a25f 100644
--- a/packages/sdk-ts/src/client/indexer/transformers/index.ts
+++ b/packages/sdk-ts/src/client/indexer/transformers/index.ts
@@ -5,6 +5,7 @@ export * from './IndexerGrpcOracleTransformer'
export * from './IndexerSpotStreamTransformer'
export * from './IndexerGrpcAccountTransformer'
export * from './IndexerGrpcAuctionTransformer'
+export * from './IndexerGrpcArchiverTransformer'
export * from './IndexerGrpcExplorerTransformer'
export * from './IndexerOracleStreamTransformer'
export * from './IndexerRestExplorerTransformer'
diff --git a/packages/sdk-ts/src/client/indexer/types/archiver.ts b/packages/sdk-ts/src/client/indexer/types/archiver.ts
new file mode 100644
index 000000000..77a9f1c83
--- /dev/null
+++ b/packages/sdk-ts/src/client/indexer/types/archiver.ts
@@ -0,0 +1,20 @@
+import { InjectiveArchiverRPC } from '@injectivelabs/indexer-proto-ts'
+
+export interface HistoricalBalance {
+ t: number[]
+ v: number[]
+}
+
+export interface HistoricalRPNL {
+ t: number[]
+ v: number[]
+}
+
+export interface HistoricalVolumes {
+ t: number[]
+ v: number[]
+}
+
+export type GrpcHistoricalRPNL = InjectiveArchiverRPC.HistoricalRPNL
+export type GrpcHistoricalBalance = InjectiveArchiverRPC.HistoricalBalance
+export type GrpcHistoricalVolumes = InjectiveArchiverRPC.HistoricalVolumes
diff --git a/packages/sdk-ts/src/client/indexer/types/campaign.ts b/packages/sdk-ts/src/client/indexer/types/campaign.ts
index 488e0c734..f36e1cbe5 100644
--- a/packages/sdk-ts/src/client/indexer/types/campaign.ts
+++ b/packages/sdk-ts/src/client/indexer/types/campaign.ts
@@ -9,6 +9,12 @@ export interface Campaign {
startDate: number
endDate: number
isClaimable: boolean
+ rewards: Coin[]
+ roundId: number
+ userClaimed: boolean
+ userScore: string
+ rewardContract: string
+ version: string
}
export interface CampaignUser {
diff --git a/packages/sdk-ts/src/client/indexer/types/derivatives.ts b/packages/sdk-ts/src/client/indexer/types/derivatives.ts
index e0f50dcb2..3d1411f31 100644
--- a/packages/sdk-ts/src/client/indexer/types/derivatives.ts
+++ b/packages/sdk-ts/src/client/indexer/types/derivatives.ts
@@ -6,7 +6,7 @@ import {
TradeExecutionSide,
} from '@injectivelabs/ts-types'
import { GrpcOrderType } from '../../chain/types/exchange'
-import { TokenMeta } from '@injectivelabs/token-metadata'
+import { TokenMeta } from './../../../types/token'
import { InjectiveDerivativeExchangeRpc } from '@injectivelabs/indexer-proto-ts'
export interface PositionDelta {
@@ -117,6 +117,7 @@ export interface DerivativeLimitOrder {
orderHash: string
orderSide: OrderSide
marketId: string
+ cid: string
subaccountId: string
isReduceOnly: boolean
margin: string
@@ -139,6 +140,7 @@ export interface DerivativeLimitOrder {
export interface DerivativeOrderHistory {
orderHash: string
marketId: string
+ cid: string
isActive: boolean
subaccountId: string
executionType: string
@@ -162,6 +164,7 @@ export interface DerivativeTrade extends PositionDelta {
orderHash: string
subaccountId: string
tradeId: string
+ cid: string
marketId: string
executedAt: number
tradeExecutionType: TradeExecutionType
diff --git a/packages/sdk-ts/src/client/indexer/types/exchange.ts b/packages/sdk-ts/src/client/indexer/types/exchange.ts
index 6d41fdc8d..bad08ba8a 100644
--- a/packages/sdk-ts/src/client/indexer/types/exchange.ts
+++ b/packages/sdk-ts/src/client/indexer/types/exchange.ts
@@ -1,4 +1,5 @@
import { InjectiveSpotExchangeRpc } from '@injectivelabs/indexer-proto-ts'
+import { TokenType } from './../../../types/token'
export interface PriceLevel {
price: string
@@ -17,9 +18,10 @@ export interface OrderbookWithSequence {
sells: PriceLevel[]
}
+export type GrpcTokenMeta = InjectiveSpotExchangeRpc.TokenMeta
+export type GrpcPriceLevel = InjectiveSpotExchangeRpc.PriceLevel
+
export interface IndexerTokenMeta extends GrpcTokenMeta {
coinGeckoId: string
+ tokenType: TokenType
}
-
-export type GrpcTokenMeta = InjectiveSpotExchangeRpc.TokenMeta
-export type GrpcPriceLevel = InjectiveSpotExchangeRpc.PriceLevel
diff --git a/packages/sdk-ts/src/client/indexer/types/explorer.ts b/packages/sdk-ts/src/client/indexer/types/explorer.ts
index cd870a657..fd13cec80 100644
--- a/packages/sdk-ts/src/client/indexer/types/explorer.ts
+++ b/packages/sdk-ts/src/client/indexer/types/explorer.ts
@@ -1,8 +1,8 @@
-import { Token } from '@injectivelabs/token-metadata'
import { BigNumberInBase } from '@injectivelabs/utils'
import type { CosmWasmChecksum, CosmWasmPermission } from './explorer-rest'
import { InjectiveExplorerRpc } from '@injectivelabs/indexer-proto-ts'
import { Coin } from '@injectivelabs/ts-types'
+import { TokenStatic } from '../../../types/token'
export interface IBCTransferTx {
sender: string
@@ -229,7 +229,7 @@ export interface ExplorerCW20BalanceWithToken {
account: string
balance: string
updatedAt: number
- token: Token
+ token: TokenStatic
}
export interface Contract {
diff --git a/packages/sdk-ts/src/client/indexer/types/index.ts b/packages/sdk-ts/src/client/indexer/types/index.ts
index e19f2fc9d..e4b9aad72 100644
--- a/packages/sdk-ts/src/client/indexer/types/index.ts
+++ b/packages/sdk-ts/src/client/indexer/types/index.ts
@@ -7,6 +7,7 @@ export * from './oracle'
export * from './account'
export * from './auction'
export * from './trading'
+export * from './archiver'
export * from './exchange'
export * from './explorer'
export * from './campaign'
diff --git a/packages/sdk-ts/src/client/indexer/types/mito.ts b/packages/sdk-ts/src/client/indexer/types/mito.ts
index 4b6418930..845710824 100644
--- a/packages/sdk-ts/src/client/indexer/types/mito.ts
+++ b/packages/sdk-ts/src/client/indexer/types/mito.ts
@@ -1,6 +1,11 @@
import { Coin } from '@injectivelabs/ts-types'
import { MitoApi } from '@injectivelabs/mito-proto-ts'
+export enum MitoGaugeStatus {
+ Active = 'active',
+ Live = 'live',
+}
+
export interface MitoHolders {
holderAddress: string
vaultAddress: string
@@ -55,6 +60,11 @@ export interface MitoVault {
notionalValueCap: string
tvlChanges?: MitoChanges
apy: number
+ apy7D: number
+ apy7DFq: number
+ apyue: number
+ apyV3: number
+ registrationMode: string
}
export interface MitoSubscription {
@@ -115,6 +125,7 @@ export interface MitoGauge {
endTimestamp: number
rewardTokens: Coin[]
lastDistribution: number
+ status: MitoGaugeStatus
}
export interface MitoStakingPool {
@@ -188,6 +199,22 @@ export interface MitoStakeToSubscription {
subscribableAmount: string
}
+export interface MitoVestingConfig {
+ vestingDurationSeconds?: number
+ vestingStartDelaySeconds?: number
+ schedule?: string
+}
+
+export interface MitoVestingConfigMap {
+ projectOwnerQuote?: MitoVestingConfig
+ projectOwnerLpTokens?: MitoVestingConfig
+ usersProjectToken?: MitoVestingConfig
+}
+
+export interface MitoIDOInitParams {
+ vestingConfig?: MitoVestingConfigMap
+}
+
export interface MitoIDO {
startTime: number
endTime: number
@@ -203,6 +230,8 @@ export interface MitoIDO {
targetAmountInUsd: string
tokenPrice: number
isAccountWhiteListed: boolean
+ isLaunchWithVault: boolean
+ isVestingScheduleEnabled: boolean
name: string
progress: MitoIDOProgress[]
quoteDenom: string
@@ -210,6 +239,7 @@ export interface MitoIDO {
useWhitelist: boolean
marketId: string
vaultAddress: string
+ vestingConfig?: MitoVestingConfigMap
}
export interface MitoIDOSubscriber {
@@ -230,6 +260,11 @@ export interface MitoIDOSubscriptionActivity {
txHash: string
}
+export interface MitoIDOClaimedCoins {
+ claimedCoins: Coin[]
+ updatedAt: number
+}
+
export interface MitoIDOSubscription {
maxSubscriptionCoin?: Coin
committedAmount: string
@@ -243,11 +278,25 @@ export interface MitoIDOSubscription {
claimTxHash?: string
ownerClaimableCoins: Coin[]
marketId: string
+ claimedCoins?: MitoIDOClaimedCoins
}
export interface MitoWhitelistAccount {
accountAddress: string
updatedAt: number
+ weight: string
+}
+
+export interface MitoClaimReference {
+ denom: string
+ updatedAt: number
+ claimedAmount: string
+ claimableAmount: string
+ accountAddress: string
+ cwContractAddress: string
+ idoContractAddress: string
+ startVestingTime: number
+ vestingDurationSeconds: number
}
export type GrpcMitoIDO = MitoApi.IDO
@@ -264,6 +313,8 @@ export type GrpcMitoDenomBalance = MitoApi.DenomBalance
export type GrpcMitoSubscription = MitoApi.Subscription
export type GrpcMitoPriceSnapshot = MitoApi.PriceSnapshot
export type GrpcMitoIDOSubscriber = MitoApi.IDOSubscriber
+export type GrpcMitoClaimReference = MitoApi.ClaimReference
+export type GrpcMitoIDOClaimedCoins = MitoApi.IDOClaimedCoins
export type GrpcMitoIDOSubscription = MitoApi.IDOSubscription
export type GrpcMitoLeaderboardEntry = MitoApi.LeaderboardEntry
export type GrpcMitoLeaderboardEpoch = MitoApi.LeaderboardEpoch
diff --git a/packages/sdk-ts/src/client/indexer/types/spot.ts b/packages/sdk-ts/src/client/indexer/types/spot.ts
index dcd29dc6f..523cd3b06 100644
--- a/packages/sdk-ts/src/client/indexer/types/spot.ts
+++ b/packages/sdk-ts/src/client/indexer/types/spot.ts
@@ -7,7 +7,7 @@ import {
} from '@injectivelabs/ts-types'
import { GrpcOrderType } from '../../chain/types/exchange'
import { PriceLevel } from './exchange'
-import { TokenMeta } from '@injectivelabs/token-metadata'
+import { TokenMeta } from './../../../types/token'
import { InjectiveSpotExchangeRpc } from '@injectivelabs/indexer-proto-ts'
import { Coin } from '@injectivelabs//ts-types'
@@ -27,6 +27,7 @@ export interface SpotMarket {
}
export interface SpotLimitOrder {
+ cid: string
orderHash: string
orderSide: OrderSide
marketId: string
@@ -44,6 +45,7 @@ export interface SpotLimitOrder {
export interface SpotOrderHistory {
orderHash: string
marketId: string
+ cid: string
active: boolean
subaccountId: string
executionType: string
@@ -62,6 +64,7 @@ export interface SpotTrade extends PriceLevel {
orderHash: string
subaccountId: string
marketId: string
+ cid: string
tradeId: string
executedAt: number
tradeExecutionType: TradeExecutionType
diff --git a/packages/sdk-ts/src/client/indexer/types/token b/packages/sdk-ts/src/client/indexer/types/token
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/sdk-ts/src/client/indexer/types/trading.ts b/packages/sdk-ts/src/client/indexer/types/trading.ts
index c3d9545d3..bcd88432a 100644
--- a/packages/sdk-ts/src/client/indexer/types/trading.ts
+++ b/packages/sdk-ts/src/client/indexer/types/trading.ts
@@ -4,3 +4,15 @@ export type ListTradingStrategiesResponse =
InjectiveTradingRpc.ListTradingStrategiesResponse
export type TradingStrategy = InjectiveTradingRpc.TradingStrategy
+
+export enum MarketType {
+ Spot = 'spot',
+ Derivative = 'derivative',
+}
+
+export enum GridStrategyType {
+ Geometric = 'geometric',
+ Arithmetic = 'arithmetic',
+ Perpetual = 'perpetual',
+ // Trailing Arithmetic
+}
diff --git a/packages/sdk-ts/src/client/dmm/grpc/DMMGrpcApi.spec.ts b/packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.spec.ts
similarity index 85%
rename from packages/sdk-ts/src/client/dmm/grpc/DMMGrpcApi.spec.ts
rename to packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.spec.ts
index 451278771..572b63f10 100644
--- a/packages/sdk-ts/src/client/dmm/grpc/DMMGrpcApi.spec.ts
+++ b/packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.spec.ts
@@ -1,13 +1,13 @@
import { mockFactory } from '@injectivelabs/test-utils'
-import { DmmGrpcApi } from './DmmGrpcApi'
+import { OLPGrpcApi } from './OLPGrpcApi'
import { DmmGrpcTransformer } from './transformers'
const epochId = 'epoch_230418_230515'
const accountAddress = mockFactory.injectiveAddress
const marketId = mockFactory.injUsdtSpotMarket.marketId
-const dmmGrpcApi = new DmmGrpcApi('https://dmm.staging.injective.network')
+const dmmGrpcApi = new OLPGrpcApi('https://glp.injective.network')
-describe('DmmGrpcApi', () => {
+describe('OLPGrpcApi', () => {
test('fetchEpochs', async () => {
try {
const response = await dmmGrpcApi.fetchEpochs()
@@ -19,7 +19,7 @@ describe('DmmGrpcApi', () => {
>(response),
)
} catch (e) {
- console.error('DmmGrpcApi.fetchEpochs => ' + (e as any).message)
+ console.error('OLPGrpcApi.fetchEpochs => ' + (e as any).message)
}
})
@@ -36,7 +36,7 @@ describe('DmmGrpcApi', () => {
>(response),
)
} catch (e) {
- console.error('DmmGrpcApi.fetchMarketRewards => ' + (e as any).message)
+ console.error('OLPGrpcApi.fetchMarketRewards => ' + (e as any).message)
}
})
@@ -54,7 +54,7 @@ describe('DmmGrpcApi', () => {
)
} catch (e) {
console.error(
- 'DmmGrpcApi.fetchEligibleAddresses => ' + (e as any).message,
+ 'OLPGrpcApi.fetchEligibleAddresses => ' + (e as any).message,
)
}
})
@@ -70,7 +70,7 @@ describe('DmmGrpcApi', () => {
>(response),
)
} catch (e) {
- console.error('DmmGrpcApi.fetchEpochScores => ' + (e as any).message)
+ console.error('OLPGrpcApi.fetchEpochScores => ' + (e as any).message)
}
})
@@ -91,7 +91,7 @@ describe('DmmGrpcApi', () => {
)
} catch (e) {
console.error(
- 'DmmGrpcApi.fetchEpochScoresHistory => ' + (e as any).message,
+ 'OLPGrpcApi.fetchEpochScoresHistory => ' + (e as any).message,
)
}
})
@@ -110,7 +110,7 @@ describe('DmmGrpcApi', () => {
>(response),
)
} catch (e) {
- console.error('DmmGrpcApi.fetchTotalScores => ' + (e as any).message)
+ console.error('OLPGrpcApi.fetchTotalScores => ' + (e as any).message)
}
})
@@ -132,7 +132,7 @@ describe('DmmGrpcApi', () => {
)
} catch (e) {
console.error(
- 'DmmGrpcApi.fetchTotalScoresHistory => ' + (e as any).message,
+ 'OLPGrpcApi.fetchTotalScoresHistory => ' + (e as any).message,
)
}
})
@@ -153,7 +153,7 @@ describe('DmmGrpcApi', () => {
)
} catch (e) {
console.error(
- 'DmmGrpcApi.fetchRewardsDistribution => ' + (e as any).message,
+ 'OLPGrpcApi.fetchRewardsDistribution => ' + (e as any).message,
)
}
})
@@ -174,7 +174,7 @@ describe('DmmGrpcApi', () => {
>(response),
)
} catch (e) {
- console.error('DmmGrpcApi.fetchAccountVolumes => ' + (e as any).message)
+ console.error('OLPGrpcApi.fetchAccountVolumes => ' + (e as any).message)
}
})
@@ -195,7 +195,7 @@ describe('DmmGrpcApi', () => {
)
} catch (e) {
console.error(
- 'DmmGrpcApi.fetchRewardsEligibility => ' + (e as any).message,
+ 'OLPGrpcApi.fetchRewardsEligibility => ' + (e as any).message,
)
}
})
diff --git a/packages/sdk-ts/src/client/dmm/grpc/DmmGrpcApi.ts b/packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.ts
similarity index 99%
rename from packages/sdk-ts/src/client/dmm/grpc/DmmGrpcApi.ts
rename to packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.ts
index d7b6c7795..55821c270 100644
--- a/packages/sdk-ts/src/client/dmm/grpc/DmmGrpcApi.ts
+++ b/packages/sdk-ts/src/client/olp/grpc/OLPGrpcApi.ts
@@ -7,8 +7,8 @@ import { InjectiveDmmRpc } from '@injectivelabs/dmm-proto-ts'
import BaseGrpcConsumer from '../../base/BaseGrpcConsumer'
import { DmmGrpcTransformer } from './transformers'
-export class DmmGrpcApi extends BaseGrpcConsumer {
- protected module: string = IndexerErrorModule.Dmm
+export class OLPGrpcApi extends BaseGrpcConsumer {
+ protected module: string = IndexerErrorModule.OLP
protected client: InjectiveDmmRpc.InjectiveDmmV2RPCClientImpl
diff --git a/packages/sdk-ts/src/client/olp/grpc/index.ts b/packages/sdk-ts/src/client/olp/grpc/index.ts
new file mode 100644
index 000000000..2cfac5007
--- /dev/null
+++ b/packages/sdk-ts/src/client/olp/grpc/index.ts
@@ -0,0 +1,4 @@
+import { OLPGrpcApi } from './OLPGrpcApi'
+
+export { OLPGrpcApi, OLPGrpcApi as DmmGrpcApi }
+export * from './types'
diff --git a/packages/sdk-ts/src/client/dmm/grpc/transformers/index.ts b/packages/sdk-ts/src/client/olp/grpc/transformers/index.ts
similarity index 100%
rename from packages/sdk-ts/src/client/dmm/grpc/transformers/index.ts
rename to packages/sdk-ts/src/client/olp/grpc/transformers/index.ts
diff --git a/packages/sdk-ts/src/client/dmm/grpc/types/index.ts b/packages/sdk-ts/src/client/olp/grpc/types/index.ts
similarity index 100%
rename from packages/sdk-ts/src/client/dmm/grpc/types/index.ts
rename to packages/sdk-ts/src/client/olp/grpc/types/index.ts
diff --git a/packages/sdk-ts/src/client/dmm/index.ts b/packages/sdk-ts/src/client/olp/index.ts
similarity index 100%
rename from packages/sdk-ts/src/client/dmm/index.ts
rename to packages/sdk-ts/src/client/olp/index.ts
diff --git a/packages/sdk-ts/src/client/wasm/index.ts b/packages/sdk-ts/src/client/wasm/index.ts
index cedc2a149..ee5d1a42e 100644
--- a/packages/sdk-ts/src/client/wasm/index.ts
+++ b/packages/sdk-ts/src/client/wasm/index.ts
@@ -2,3 +2,4 @@ export * from './swap'
export * from './types'
export * from './incentives'
export * from './nameservice'
+export * from './trading_strategies'
diff --git a/packages/sdk-ts/src/client/wasm/nameservice/index.ts b/packages/sdk-ts/src/client/wasm/nameservice/index.ts
index c8f74e3ad..803571eb8 100644
--- a/packages/sdk-ts/src/client/wasm/nameservice/index.ts
+++ b/packages/sdk-ts/src/client/wasm/nameservice/index.ts
@@ -1,3 +1,2 @@
export * from './queries'
export * from './transformer'
-export * from './utils'
diff --git a/packages/sdk-ts/src/client/wasm/nameservice/utils.spec.ts b/packages/sdk-ts/src/client/wasm/nameservice/utils.spec.ts
deleted file mode 100644
index e6c941939..000000000
--- a/packages/sdk-ts/src/client/wasm/nameservice/utils.spec.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { nameToNode, normalizeName } from './utils'
-
-describe('inj name utils', () => {
- it('name to node', () => {
- expect(nameToNode('999.inj')).toStrictEqual([
- 243, 87, 103, 48, 162, 32, 198, 33, 34, 235, 164, 156, 23, 95, 45, 165,
- 30, 194, 109, 244, 116, 237, 31, 55, 196, 73, 11, 45, 153, 172, 64, 40,
- ])
- expect(nameToNode('')).toStrictEqual([])
- })
- it('normalize name', () => {
- expect(normalizeName('999.inj')).toBe('999.inj')
- expect(normalizeName('AAA.INJ')).toBe('aaa.inj')
- })
- it('normalize illegal length name', () => {
- expect(() => normalizeName('99.inj')).toThrow('Invalid Domain')
- expect(() => normalizeName('')).toThrow('Invalid Domain')
- expect(() => normalizeName(' ')).toThrow('Invalid Domain')
- expect(() => normalizeName('.inj')).toThrow(
- 'Domain cannot have empty labels',
- )
- })
- it('normalize unsupported characters', () => {
- expect(() => normalizeName('aaa甲.inj')).toThrow('Invalid Domain')
- expect(() => normalizeName('99 9.inj')).toThrow('Invalid Domain')
- expect(() => normalizeName('99_9.inj')).toThrow('Invalid Domain')
- expect(() => normalizeName('99*9.inj')).toThrow('Invalid Domain')
- expect(() => normalizeName('999.999.inj')).toThrow('Invalid Domain')
- })
-})
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/index.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/index.ts
new file mode 100644
index 000000000..1fa837263
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/index.ts
@@ -0,0 +1 @@
+export * from './queries'
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractAllStrategies.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractAllStrategies.ts
new file mode 100644
index 000000000..44b3adbd7
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractAllStrategies.ts
@@ -0,0 +1,22 @@
+import { BaseWasmQuery } from '../../BaseWasmQuery'
+import { toBase64 } from '../../../../utils'
+
+export declare namespace QueryTradingStrategyContractAllStrategies {
+ export interface Params {
+ startAfter?: string
+ limit?: number
+ }
+}
+
+export class QueryTradingStrategyContractAllStrategies extends BaseWasmQuery {
+ toPayload() {
+ const payload = toBase64({
+ all_strategies: {
+ start_after: this.params.startAfter,
+ limit: this.params.limit,
+ },
+ })
+
+ return payload
+ }
+}
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractConfig.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractConfig.ts
new file mode 100644
index 000000000..9d6417377
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractConfig.ts
@@ -0,0 +1,16 @@
+import { BaseWasmQuery } from '../../BaseWasmQuery'
+import { toBase64 } from '../../../../utils'
+
+export declare namespace QueryTradingStrategyContractConfig {
+ export interface Params {}
+}
+
+export class QueryTradingStrategyContractConfig extends BaseWasmQuery {
+ toPayload() {
+ const payload = toBase64({
+ config: {},
+ })
+
+ return payload
+ }
+}
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractTotalStrategies.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractTotalStrategies.ts
new file mode 100644
index 000000000..8f3d46540
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractTotalStrategies.ts
@@ -0,0 +1,16 @@
+import { BaseWasmQuery } from '../../BaseWasmQuery'
+import { toBase64 } from '../../../../utils'
+
+export declare namespace QueryTradingStrategyContractTotalStrategies {
+ export interface Params {}
+}
+
+export class QueryTradingStrategyContractTotalStrategies extends BaseWasmQuery {
+ toPayload() {
+ const payload = toBase64({
+ total_strategies: {},
+ })
+
+ return payload
+ }
+}
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractUserStrategies.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractUserStrategies.ts
new file mode 100644
index 000000000..14723638e
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/QueryTradingStrategyContractUserStrategies.ts
@@ -0,0 +1,20 @@
+import { BaseWasmQuery } from '../../BaseWasmQuery'
+import { toBase64 } from '../../../../utils'
+
+export declare namespace QueryTradingStrategyContractUserStrategies {
+ export interface Params {
+ user: string
+ }
+}
+
+export class QueryTradingStrategyContractUserStrategies extends BaseWasmQuery {
+ toPayload() {
+ const payload = toBase64({
+ user_strategy: {
+ user: this.params.user,
+ },
+ })
+
+ return payload
+ }
+}
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/queries/index.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/index.ts
new file mode 100644
index 000000000..135aba4a8
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/queries/index.ts
@@ -0,0 +1,4 @@
+export { QueryTradingStrategyContractConfig } from './QueryTradingStrategyContractConfig'
+export { QueryTradingStrategyContractAllStrategies } from './QueryTradingStrategyContractAllStrategies'
+export { QueryTradingStrategyContractUserStrategies } from './QueryTradingStrategyContractUserStrategies'
+export { QueryTradingStrategyContractTotalStrategies } from './QueryTradingStrategyContractTotalStrategies'
diff --git a/packages/sdk-ts/src/client/wasm/trading_strategies/types.ts b/packages/sdk-ts/src/client/wasm/trading_strategies/types.ts
new file mode 100644
index 000000000..39996231d
--- /dev/null
+++ b/packages/sdk-ts/src/client/wasm/trading_strategies/types.ts
@@ -0,0 +1,40 @@
+import {
+ ExitConfig,
+ ExitType,
+ StrategyType,
+ TrailingArithmetic,
+} from '../../../core/modules/wasm/types'
+
+export type QueryTradingStrategyContractSrategyResponse = {
+ user: string
+ subaccount_id: string
+ info: {
+ lower_bound: string
+ upper_bound: string
+ levels: number
+ prices: string[]
+ }
+ stop_loss?: ExitConfig
+ take_profit?: ExitConfig
+ target_value_per_order: string
+ exit_type: ExitType
+ order_state: {
+ buy_orders: number
+ sell_orders: number
+ omit_order: 'buy' | 'sell'
+ }
+ retry_count: number
+ strategy_type: StrategyType | TrailingArithmetic
+}
+
+export type QueryTradingStrategyContractConfigResponse = {
+ owner: string
+ base_decimals: number
+ quote_decimals: number
+ market_id: string
+ small_order_threshold: string
+ maximum_order_value_deviation: string
+ maximum_rebalance_retries: number
+ default_slippage: string
+ version: string
+}
diff --git a/packages/sdk-ts/src/core/accounts/PrivateKey.spec.ts b/packages/sdk-ts/src/core/accounts/PrivateKey.spec.ts
index 4c6860796..5b5f32c3e 100644
--- a/packages/sdk-ts/src/core/accounts/PrivateKey.spec.ts
+++ b/packages/sdk-ts/src/core/accounts/PrivateKey.spec.ts
@@ -1,3 +1,4 @@
+import { generateArbitrarySignDoc } from '../modules'
import { PrivateKey } from './PrivateKey'
const privateKey =
@@ -19,4 +20,67 @@ describe('PrivateKey', () => {
'A13cTVZCuTg+Lwh7LuiLcgf2KG68nzEOnfFAbszCwxgT',
)
})
+
+ it('returns true when verifying signature for a public key and eip712', () => {
+ const signature =
+ '0xe75db7f206927afd916b1423ed04fca37d2ac19662b220edc7d14f164b3af8f4727bb0f5b1f1372fd25675aebed92a5467cc55d2f38774a794a14bc59212c7d41c'
+ const publicKey =
+ '035ddc4d5642b9383e2f087b2ee88b7207f6286ebc9f310e9df1406eccc2c318'
+ const eip712 = {
+ types: {
+ EIP712Domain: [
+ { name: 'name', type: 'string' },
+ { name: 'version', type: 'string' },
+ { name: 'chainId', type: 'uint256' },
+ { name: 'verifyingContract', type: 'address' },
+ { name: 'salt', type: 'string' },
+ ],
+ Tx: [
+ { name: 'context', type: 'string' },
+ { name: 'msgs', type: 'string' },
+ ],
+ },
+ primaryType: 'Tx',
+ domain: {
+ name: 'Injective Web3',
+ version: '1.0.0',
+ chainId: '0xaa36a7',
+ verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ salt: '0',
+ },
+ message: {
+ context:
+ '{"account_number":17,"chain_id":"injective-888","fee":{"amount":[{"denom":"inj","amount":"71101500000000"}],"gas":142203,"payer":"inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z"},"memo":"","sequence":21979,"timeout_height":30038262}',
+ msgs: '[{"@type":"/injective.exchange.v1beta1.MsgCreateSpotMarketOrder","sender":"inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r","order":{"market_id":"0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe","order_info":{"subaccount_id":"0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000","fee_recipient":"inj1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8dkncm8","price":"0.000000000024039000","quantity":"41000000000000000.000000000000000000","cid":""},"order_type":"BUY","trigger_price":"0.000000000000000000"}}]',
+ },
+ }
+
+ expect(
+ PrivateKey.verifySignature({
+ eip712,
+ signature,
+ publicKey: publicKey,
+ }),
+ ).toBe(true)
+ })
+
+ it('returns true when verifying signature for a public key and a cosmos message', () => {
+ //
+ })
+
+ it('returns true when verifying arbitrary message', async () => {
+ const pk = PrivateKey.fromHex(privateKey)
+
+ const message = 'testing ADR-36'
+ const { signDocBuff } = generateArbitrarySignDoc(message, pk.toBech32())
+ const signature = await pk.sign(signDocBuff)
+
+ expect(
+ PrivateKey.verifyArbitrarySignature({
+ signature: Buffer.from(signature).toString('hex'),
+ signDoc: signDocBuff,
+ publicKey: pk.toPublicKey().toHex(),
+ }),
+ ).toBe(true)
+ })
})
diff --git a/packages/sdk-ts/src/core/accounts/PrivateKey.ts b/packages/sdk-ts/src/core/accounts/PrivateKey.ts
index ccd733207..7419e728d 100644
--- a/packages/sdk-ts/src/core/accounts/PrivateKey.ts
+++ b/packages/sdk-ts/src/core/accounts/PrivateKey.ts
@@ -1,4 +1,4 @@
-import bip39 from 'bip39'
+import { generateMnemonic } from 'bip39'
import { Wallet } from 'ethers'
import secp256k1 from 'secp256k1'
import keccak256 from 'keccak256'
@@ -7,6 +7,15 @@ import { PublicKey } from './PublicKey'
import { Address } from './Address'
import * as BytesUtils from '@ethersproject/bytes'
import { signTypedData, SignTypedDataVersion } from '@metamask/eth-sig-util'
+import { recoverTypedSignaturePubKey } from '../../utils'
+import {
+ CosmosTxV1Beta1Tx,
+ InjectiveTypesV1TxExt,
+} from '@injectivelabs/core-proto-ts'
+import { getTransactionPartsFromTxRaw } from '../modules/tx/utils/tx'
+import { getEip712TypedData, MsgDecoder } from '../modules/tx/eip712'
+import { GeneralException } from '@injectivelabs/exceptions'
+import { ChainId, EthereumChainId } from '@injectivelabs/ts-types'
/**
* Class for wrapping SigningKey that is used for signature creation and public key derivation.
@@ -25,7 +34,7 @@ export class PrivateKey {
* @returns { privateKey: PrivateKey, mnemonic: string }
*/
static generate(): { privateKey: PrivateKey; mnemonic: string } {
- const mnemonic = bip39.generateMnemonic()
+ const mnemonic = generateMnemonic()
const privateKey = PrivateKey.fromMnemonic(mnemonic)
return {
@@ -225,4 +234,201 @@ export class PrivateKey {
return signature
}
+
+ /**
+ * Verify signature using EIP712 typed data
+ * and the publicKey
+ *
+ * (params are passed as an object)
+ *
+ * @param {string} signature: the signature to verify in hex
+ * @param {any} eip712: the EIP712 typed data to verify against
+ * @param {string} publicKey: the public key to verify against in hex
+ * */
+ public static verifySignature({
+ signature,
+ eip712,
+ publicKey,
+ }: {
+ signature: string /* in hex */
+ eip712: any
+ publicKey: string /* in hex */
+ }): boolean {
+ const publicKeyInHex = publicKey.startsWith('0x')
+ ? publicKey
+ : `0x${publicKey}`
+
+ const recoveredPubKey = recoverTypedSignaturePubKey(eip712, signature)
+ const recoveredPubKeyInHex = recoveredPubKey.startsWith('0x')
+ ? recoveredPubKey
+ : `0x${recoveredPubKey}`
+
+ /** uncompressed/compressed key */
+ if (publicKeyInHex.length !== recoveredPubKeyInHex.length) {
+ return (
+ recoveredPubKeyInHex.substring(0, publicKeyInHex.length) ===
+ publicKeyInHex
+ )
+ }
+
+ return publicKeyInHex === recoveredPubKeyInHex
+ }
+
+ /**
+ * Verify signature using EIP712 typed data
+ * and the publicKey
+ *
+ * (params are passed as an object)
+ *
+ * @param {string} signature: the signature to verify in hex
+ * @param {any} eip712: the EIP712 typed data to verify against
+ * @param {string} publicKey: the public key to verify against in hex
+ * */
+ public verifyThisPkSignature({
+ signature,
+ eip712,
+ }: {
+ signature: string /* in hex */
+ eip712: any
+ }): boolean {
+ const publicKeyInHex = `0x${this.toPublicKey().toHex()}`
+ const recoveredPubKey = recoverTypedSignaturePubKey(eip712, signature)
+ const recoveredPubKeyInHex = recoveredPubKey.startsWith('0x')
+ ? recoveredPubKey
+ : `0x${recoveredPubKey}`
+
+ /** uncompressed/compressed key */
+ if (publicKeyInHex.length !== recoveredPubKeyInHex.length) {
+ return (
+ recoveredPubKeyInHex.substring(0, publicKeyInHex.length) ===
+ publicKeyInHex
+ )
+ }
+
+ return publicKeyInHex === recoveredPubKeyInHex
+ }
+
+ /**
+ * Verify cosmos signature EIP712 typed
+ * data from the TxRaw and verify the signature
+ * that's included in the TxRaw
+ *
+ * (params are passed as an object)
+ *
+ * @param {CosmosTxV1Beta1Tx.TxRaw} txRaw: the signature to verify in hex
+ * @param {object} signer: the public key and the account number to verify against
+ **/
+ public static verifyCosmosSignature({
+ txRaw,
+ signer,
+ }: {
+ txRaw: CosmosTxV1Beta1Tx.TxRaw
+ signer: {
+ accountNumber: number | string
+ publicKey: string /* in base64 */
+ }
+ }): boolean {
+ const { body, authInfo, signatures } = getTransactionPartsFromTxRaw(txRaw)
+
+ if (authInfo.signerInfos.length > 1 || signatures.length > 1) {
+ throw new GeneralException(
+ new Error('Validation of multiple signers is not supported'),
+ )
+ }
+
+ if (body.messages.length > 1) {
+ throw new GeneralException(
+ new Error('Validation of multiple messages is not supported'),
+ )
+ }
+
+ const getChainIds = () => {
+ if (!body.extensionOptions.length) {
+ return {
+ ethereumChainId: EthereumChainId.Mainnet,
+ chainId: ChainId.Mainnet,
+ }
+ }
+
+ const extension = body.extensionOptions.find((extension) =>
+ extension.typeUrl.includes('ExtensionOptionsWeb3Tx'),
+ )
+
+ if (!extension) {
+ return {
+ ethereumChainId: EthereumChainId.Mainnet,
+ chainId: ChainId.Mainnet,
+ }
+ }
+
+ const decodedExtension =
+ InjectiveTypesV1TxExt.ExtensionOptionsWeb3Tx.decode(extension.value)
+
+ const ethereumChainId = Number(
+ decodedExtension.typedDataChainID,
+ ) as EthereumChainId
+
+ return {
+ ethereumChainId: ethereumChainId,
+ chainId: [
+ EthereumChainId.Goerli,
+ EthereumChainId.Kovan,
+ EthereumChainId.Sepolia,
+ ].includes(ethereumChainId)
+ ? ChainId.Testnet
+ : ChainId.Mainnet,
+ }
+ }
+
+ const { ethereumChainId, chainId } = getChainIds()
+ const [signerInfo] = authInfo.signerInfos
+ const [signature] = signatures
+ const [msg] = body.messages
+ const decodedMsg = MsgDecoder.decode(msg)
+
+ const eip712TypedData = getEip712TypedData({
+ msgs: [decodedMsg],
+ fee: authInfo.fee,
+ tx: {
+ memo: body.memo,
+ accountNumber: signer.accountNumber.toString(),
+ sequence: signerInfo.sequence.toString(),
+ timeoutHeight: body.timeoutHeight.toString(),
+ chainId,
+ },
+ ethereumChainId,
+ })
+
+ return this.verifySignature({
+ eip712: eip712TypedData,
+ signature: Buffer.from(signature).toString('hex'),
+ publicKey: Buffer.from(signer.publicKey, 'base64').toString('hex'),
+ })
+ }
+
+ /**
+ * Verify signature using ADR-36 sign doc
+ * and the publicKey
+ *
+ * (params are passed as an object)
+ *
+ * @param {string} signature: the signature to verify in hex
+ * @param {any} signDoc: the signDoc to verify against
+ * @param {string} publicKey:the public key to verify against in hex
+ * */
+ public static verifyArbitrarySignature({
+ signature,
+ signDoc,
+ publicKey,
+ }: {
+ signature: string /* in hex */
+ signDoc: Buffer
+ publicKey: string /* in hex */
+ }): boolean {
+ return secp256k1.ecdsaVerify(
+ Buffer.from(signature, 'hex'),
+ keccak256(signDoc),
+ Buffer.from(publicKey, 'hex'),
+ )
+ }
}
diff --git a/packages/sdk-ts/src/core/accounts/PublicKey.ts b/packages/sdk-ts/src/core/accounts/PublicKey.ts
index e7b57aef5..c30aa86fd 100644
--- a/packages/sdk-ts/src/core/accounts/PublicKey.ts
+++ b/packages/sdk-ts/src/core/accounts/PublicKey.ts
@@ -54,7 +54,10 @@ export class PublicKey {
}
public toBech32(): string {
- return bech32.encode(BECH32_PUBKEY_ACC_PREFIX, this.key)
+ return bech32.encode(
+ BECH32_PUBKEY_ACC_PREFIX,
+ bech32.toWords(Buffer.from(this.toHex(), 'hex')),
+ )
}
public toAddress(): Address {
diff --git a/packages/sdk-ts/src/core/accounts/index.ts b/packages/sdk-ts/src/core/accounts/index.ts
index 98c2eaf83..4d200301e 100644
--- a/packages/sdk-ts/src/core/accounts/index.ts
+++ b/packages/sdk-ts/src/core/accounts/index.ts
@@ -2,5 +2,3 @@ export * from './PrivateKey'
export * from './PublicKey'
export * from './Address'
export * from './BaseAccount'
-export * from './signers'
-export { accountParser as injectiveAccountParser } from './AccountParser'
diff --git a/packages/sdk-ts/src/core/accounts/signers/DirectEthSecp256k1Wallet.ts b/packages/sdk-ts/src/core/accounts/signers/DirectEthSecp256k1Wallet.ts
index 601cb10c2..747c1ed20 100644
--- a/packages/sdk-ts/src/core/accounts/signers/DirectEthSecp256k1Wallet.ts
+++ b/packages/sdk-ts/src/core/accounts/signers/DirectEthSecp256k1Wallet.ts
@@ -3,7 +3,6 @@ import { PrivateKey } from '../PrivateKey'
import { PublicKey } from '../PublicKey'
import { AccountData, OfflineDirectSigner } from './types/proto-signer'
import { CosmosTxV1Beta1Tx } from '@injectivelabs/core-proto-ts'
-import Long from 'long'
export class DirectEthSecp256k1Wallet implements OfflineDirectSigner {
/**
@@ -52,7 +51,7 @@ export class DirectEthSecp256k1Wallet implements OfflineDirectSigner {
public async signDirect(
address: string,
signDoc: Omit & {
- accountNumber: Long
+ accountNumber: bigint
},
): Promise {
const signBytes = makeSignBytes(signDoc)
diff --git a/packages/sdk-ts/src/core/index.ts b/packages/sdk-ts/src/core/index.ts
index 4bbb4dd67..00a5787e8 100644
--- a/packages/sdk-ts/src/core/index.ts
+++ b/packages/sdk-ts/src/core/index.ts
@@ -1,4 +1,3 @@
export * from './modules'
export * from './accounts'
export * from './utils'
-export * as InjectiveStargate from './stargate'
diff --git a/packages/sdk-ts/src/core/modules/authz/index.ts b/packages/sdk-ts/src/core/modules/authz/index.ts
index 29cecd1ec..6ab977102 100644
--- a/packages/sdk-ts/src/core/modules/authz/index.ts
+++ b/packages/sdk-ts/src/core/modules/authz/index.ts
@@ -4,3 +4,4 @@ import MsgAuthzExec from './msgs/MsgExec'
export { MsgGrant, MsgRevoke, MsgAuthzExec }
export * from './utils'
+export * from './types'
diff --git a/packages/sdk-ts/src/core/modules/authz/msgs/MsgGrant.ts b/packages/sdk-ts/src/core/modules/authz/msgs/MsgGrant.ts
index 3bc28b7a5..2e4b2a472 100644
--- a/packages/sdk-ts/src/core/modules/authz/msgs/MsgGrant.ts
+++ b/packages/sdk-ts/src/core/modules/authz/msgs/MsgGrant.ts
@@ -6,12 +6,19 @@ import {
CosmosAuthzV1Beta1Authz,
GoogleProtobufTimestamp,
} from '@injectivelabs/core-proto-ts'
-
-const genericAuthorizationType = '/cosmos.authz.v1beta1.GenericAuthorization'
+import { GeneralException } from '@injectivelabs/exceptions'
+import { getGenericAuthorizationFromMessageType } from '../utils'
+import { GrantAuthorizationType } from './../types'
export declare namespace MsgGrant {
export interface Params {
- messageType: string
+ /**
+ * @deprecated Use `authorization` instead - for generic authorizations,
+ * use `getGenericAuthorizationFromMessageType` function
+ * to get the authorization object from messageType
+ */
+ messageType?: string
+ authorization?: GoogleProtobufAny.Any
grantee: string
granter: string
expiration?: number
@@ -38,21 +45,20 @@ export default class MsgGrant extends MsgBase {
const { params } = this
const timestamp = this.getTimestamp()
- const genericAuthorization =
- CosmosAuthzV1Beta1Authz.GenericAuthorization.create()
- genericAuthorization.msg = params.messageType
-
- const authorization = GoogleProtobufAny.Any.create()
- authorization.typeUrl = genericAuthorizationType
- authorization.value = Buffer.from(
- CosmosAuthzV1Beta1Authz.GenericAuthorization.encode(
- genericAuthorization,
- ).finish(),
- )
-
const grant = CosmosAuthzV1Beta1Authz.Grant.create()
- grant.expiration = new Date(Number(timestamp.seconds) * 1000)
+
+ if (!params.authorization && !params.messageType) {
+ throw new GeneralException(
+ new Error('Either authorization or messageType must be provided'),
+ )
+ }
+
+ const authorization =
+ params.authorization ||
+ getGenericAuthorizationFromMessageType(params.messageType as string)
+
grant.authorization = authorization
+ grant.expiration = new Date(Number(timestamp.seconds) * 1000)
const message = CosmosAuthzV1Beta1Tx.MsgGrant.create()
message.grantee = params.grantee
@@ -78,13 +84,36 @@ export default class MsgGrant extends MsgBase {
const timestamp = this.getTimestamp()
const message = proto
+ if (!params.authorization && !params.messageType) {
+ throw new GeneralException(
+ new Error('Either authorization or messageType must be provided'),
+ )
+ }
+
+ const authorization =
+ params.authorization ||
+ getGenericAuthorizationFromMessageType(params.messageType as string)
+
+ if (
+ !authorization.typeUrl.includes(
+ GrantAuthorizationType.GenericAuthorization,
+ )
+ ) {
+ throw new GeneralException(
+ new Error('Currently, only GenericAuthorization type is supported'),
+ )
+ }
+
+ const genericAuthorization =
+ CosmosAuthzV1Beta1Authz.GenericAuthorization.decode(authorization.value)
+
const messageWithAuthorizationType = snakecaseKeys({
...message,
grant: {
...message.grant,
authorization: {
type: 'cosmos-sdk/GenericAuthorization',
- value: { msg: params.messageType },
+ value: { msg: genericAuthorization.msg },
},
expiration: new Date(Number(timestamp.seconds) * 1000),
},
@@ -110,13 +139,36 @@ export default class MsgGrant extends MsgBase {
const amino = this.toAmino()
const timestamp = this.getTimestamp()
+ if (!params.authorization && !params.messageType) {
+ throw new GeneralException(
+ new Error('Either authorization or messageType must be provided'),
+ )
+ }
+
+ const authorization =
+ params.authorization ||
+ getGenericAuthorizationFromMessageType(params.messageType as string)
+
+ if (
+ !authorization.typeUrl.includes(
+ GrantAuthorizationType.GenericAuthorization,
+ )
+ ) {
+ throw new GeneralException(
+ new Error('Currently, only GenericAuthorization type is supported'),
+ )
+ }
+
+ const genericAuthorization =
+ CosmosAuthzV1Beta1Authz.GenericAuthorization.decode(authorization.value)
+
const messageWithAuthorizationType = {
granter: amino.value.granter,
grantee: amino.value.grantee,
grant: {
authorization: {
'@type': '/cosmos.authz.v1beta1.GenericAuthorization',
- msg: params.messageType,
+ msg: genericAuthorization.msg,
},
expiration: new Date(Number(timestamp.seconds) * 1000),
},
diff --git a/packages/sdk-ts/src/core/modules/authz/types.ts b/packages/sdk-ts/src/core/modules/authz/types.ts
new file mode 100644
index 000000000..01be34b83
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/authz/types.ts
@@ -0,0 +1,3 @@
+export enum GrantAuthorizationType {
+ GenericAuthorization = 'GenericAuthorization',
+}
diff --git a/packages/sdk-ts/src/core/modules/authz/utils.ts b/packages/sdk-ts/src/core/modules/authz/utils.ts
index 5aa3128a1..b6d732bb8 100644
--- a/packages/sdk-ts/src/core/modules/authz/utils.ts
+++ b/packages/sdk-ts/src/core/modules/authz/utils.ts
@@ -1,5 +1,9 @@
import MsgExec from './msgs/MsgExec'
import { Msgs } from './../msgs'
+import {
+ GoogleProtobufAny,
+ CosmosAuthzV1Beta1Authz,
+} from '@injectivelabs/core-proto-ts'
export const msgsOrMsgExecMsgs = (
msgs: Msgs | Msgs[],
@@ -13,3 +17,25 @@ export const msgsOrMsgExecMsgs = (
return actualMsgs.map((msg) => MsgExec.fromJSON({ grantee, msgs: msg }))
}
+
+export const getGenericAuthorizationFromMessageType = (
+ messageTypeUrl: string,
+) => {
+ const genericAuthorizationType = '/cosmos.authz.v1beta1.GenericAuthorization'
+
+ const genericAuthorization =
+ CosmosAuthzV1Beta1Authz.GenericAuthorization.create()
+ genericAuthorization.msg = messageTypeUrl.startsWith('/')
+ ? messageTypeUrl
+ : `/${messageTypeUrl}`
+
+ const authorization = GoogleProtobufAny.Any.create()
+ authorization.typeUrl = genericAuthorizationType
+ authorization.value = Buffer.from(
+ CosmosAuthzV1Beta1Authz.GenericAuthorization.encode(
+ genericAuthorization,
+ ).finish(),
+ )
+
+ return authorization
+}
diff --git a/packages/sdk-ts/src/core/modules/exchange/index.ts b/packages/sdk-ts/src/core/modules/exchange/index.ts
index 81c38a468..37f5eee40 100644
--- a/packages/sdk-ts/src/core/modules/exchange/index.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/index.ts
@@ -1,8 +1,10 @@
import MsgDeposit from './msgs/MsgDeposit'
+import MsgSignData from './msgs/MsgSignData'
import MsgWithdraw from './msgs/MsgWithdraw'
import MsgRewardsOptOut from './msgs/MsgRewardsOptOut'
import MsgCancelSpotOrder from './msgs/MsgCancelSpotOrder'
import MsgExternalTransfer from './msgs/MsgExternalTransfer'
+import MsgLiquidatePosition from './msgs/MsgLiquidatePosition'
import MsgBatchUpdateOrders from './msgs/MsgBatchUpdateOrders'
import MsgReclaimLockedFunds from './msgs/MsgReclaimLockedFunds'
import MsgCreateSpotLimitOrder from './msgs/MsgCreateSpotLimitOrder'
@@ -19,13 +21,16 @@ import MsgCreateBinaryOptionsLimitOrder from './msgs/MsgCreateBinaryOptionsLimit
import MsgCreateBinaryOptionsMarketOrder from './msgs/MsgCreateBinaryOptionsMarketOrder'
import MsgInstantBinaryOptionsMarketLaunch from './msgs/MsgInstantBinaryOptionsMarketLaunch'
import MsgBatchCancelBinaryOptionsOrders from './msgs/MsgBatchCancelBinaryOptionsOrders'
+import MsgAdminUpdateBinaryOptionsMarket from './msgs/MsgAdminUpdateBinaryOptionsMarket'
export {
MsgDeposit,
MsgWithdraw,
+ MsgSignData,
MsgRewardsOptOut,
MsgCancelSpotOrder,
MsgExternalTransfer,
+ MsgLiquidatePosition,
MsgBatchUpdateOrders,
MsgReclaimLockedFunds,
MsgCreateSpotLimitOrder,
@@ -39,6 +44,7 @@ export {
MsgCreateDerivativeMarketOrder,
MsgBatchCancelDerivativeOrders,
MsgCreateBinaryOptionsLimitOrder,
+ MsgAdminUpdateBinaryOptionsMarket,
MsgCreateBinaryOptionsMarketOrder,
MsgBatchCancelBinaryOptionsOrders,
MsgInstantBinaryOptionsMarketLaunch,
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgAdminUpdateBinaryOptionsMarket.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgAdminUpdateBinaryOptionsMarket.ts
new file mode 100644
index 000000000..351107a3a
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgAdminUpdateBinaryOptionsMarket.ts
@@ -0,0 +1,95 @@
+import { InjectiveExchangeV1Beta1Tx } from '@injectivelabs/core-proto-ts'
+import { MsgBase } from '../../MsgBase'
+import snakecaseKeys from 'snakecase-keys'
+import { GrpcMarketStatus } from '../../../../client/chain/types'
+
+export declare namespace MsgAdminUpdateBinaryOptionsMarket {
+ export interface Params {
+ sender: string
+ marketId: string
+ settlementPrice: string
+ expirationTimestamp: string
+ settlementTimestamp: string
+ status: GrpcMarketStatus
+ }
+
+ export type Proto =
+ InjectiveExchangeV1Beta1Tx.MsgAdminUpdateBinaryOptionsMarket
+}
+
+/**
+ * @category Messages
+ */
+export default class MsgAdminUpdateBinaryOptionsMarket extends MsgBase<
+ MsgAdminUpdateBinaryOptionsMarket.Params,
+ MsgAdminUpdateBinaryOptionsMarket.Proto
+> {
+ static fromJSON(
+ params: MsgAdminUpdateBinaryOptionsMarket.Params,
+ ): MsgAdminUpdateBinaryOptionsMarket {
+ return new MsgAdminUpdateBinaryOptionsMarket(params)
+ }
+
+ public toProto() {
+ const { params } = this
+
+ const message =
+ InjectiveExchangeV1Beta1Tx.MsgAdminUpdateBinaryOptionsMarket.create()
+ message.sender = params.sender
+ message.marketId = params.marketId
+ message.settlementPrice = params.settlementPrice
+ message.settlementTimestamp = params.settlementTimestamp
+ message.expirationTimestamp = params.expirationTimestamp
+ message.status = params.status
+
+ return InjectiveExchangeV1Beta1Tx.MsgAdminUpdateBinaryOptionsMarket.fromPartial(
+ message,
+ )
+ }
+
+ public toData() {
+ const proto = this.toProto()
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket',
+ ...proto,
+ }
+ }
+
+ public toAmino() {
+ const proto = this.toProto()
+ const message = {
+ ...snakecaseKeys(proto),
+ }
+
+ return {
+ type: 'exchange/MsgAdminUpdateBinaryOptionsMarket',
+ value: message,
+ }
+ }
+
+ public toWeb3() {
+ const amino = this.toAmino()
+ const { value } = amino
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket',
+ ...value,
+ }
+ }
+
+ public toDirectSign() {
+ const proto = this.toProto()
+
+ return {
+ type: '/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket',
+ message: proto,
+ }
+ }
+
+ public toBinary(): Uint8Array {
+ return InjectiveExchangeV1Beta1Tx.MsgAdminUpdateBinaryOptionsMarket.encode(
+ this.toProto(),
+ ).finish()
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.spec.ts
index 6e43a1eb5..1e04fabc8 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.spec.ts
@@ -9,13 +9,13 @@ const params: MsgBatchCancelDerivativeOrders['params'] = {
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
},
{
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash2,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-124',
},
],
}
@@ -74,6 +74,7 @@ describe('MsgBatchCancelDerivativeOrders', () => {
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
{ name: 'order_mask', type: 'int32' },
+ { name: 'cid', type: 'string' },
],
MsgValue: [
{ name: 'sender', type: 'string' },
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.ts
index 386e544fb..3322946ce 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelBinaryOptionsOrders.ts
@@ -11,7 +11,7 @@ export declare namespace MsgBatchCancelBinaryOptionsOrders {
orders: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
orderMask?: InjectiveExchangeV1Beta1Exchange.OrderMask
cid?: string
}[]
@@ -40,9 +40,15 @@ export default class MsgBatchCancelBinaryOptionsOrders extends MsgBase<
const orderDataList = params.orders.map((order) => {
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = order.marketId
- orderData.orderHash = order.orderHash
orderData.subaccountId = order.subaccountId
- orderData.cid = order.cid || ''
+
+ if (order.orderHash) {
+ orderData.orderHash = order.orderHash
+ }
+
+ if (order.cid) {
+ orderData.cid = order.cid
+ }
// TODO: Send order.orderMask instead when chain handles order mask properly.
orderData.orderMask = InjectiveExchangeV1Beta1Exchange.OrderMask.ANY
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.spec.ts
index 6e43a1eb5..1e04fabc8 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.spec.ts
@@ -9,13 +9,13 @@ const params: MsgBatchCancelDerivativeOrders['params'] = {
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
},
{
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash2,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-124',
},
],
}
@@ -74,6 +74,7 @@ describe('MsgBatchCancelDerivativeOrders', () => {
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
{ name: 'order_mask', type: 'int32' },
+ { name: 'cid', type: 'string' },
],
MsgValue: [
{ name: 'sender', type: 'string' },
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.ts
index fe6309bb8..92fc887f2 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelDerivativeOrders.ts
@@ -11,7 +11,7 @@ export declare namespace MsgBatchCancelDerivativeOrders {
orders: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
orderMask?: InjectiveExchangeV1Beta1Exchange.OrderMask
cid?: string
}[]
@@ -39,9 +39,15 @@ export default class MsgBatchCancelDerivativeOrders extends MsgBase<
const orderDataList = params.orders.map((order) => {
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = order.marketId
- orderData.orderHash = order.orderHash
orderData.subaccountId = order.subaccountId
- orderData.cid = order.cid || ''
+
+ if (order.cid) {
+ orderData.cid = order.cid
+ }
+
+ if (order.orderHash) {
+ orderData.orderHash = order.orderHash
+ }
// TODO: Send order.orderMask instead when chain handles order mask properly.
orderData.orderMask = InjectiveExchangeV1Beta1Exchange.OrderMask.ANY
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.spec.ts
index 5c1e12681..0b3e0ef97 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.spec.ts
@@ -9,13 +9,13 @@ const params: MsgBatchCancelSpotOrders['params'] = {
marketId: mockFactory.injUsdtSpotMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
},
{
marketId: mockFactory.injUsdtSpotMarket.marketId,
orderHash: mockFactory.orderHash2,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-124',
},
],
}
@@ -74,6 +74,7 @@ describe('MsgBatchCancelSpotOrders', () => {
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
{ name: 'order_mask', type: 'int32' },
+ { name: 'cid', type: 'string' },
],
MsgValue: [
{ name: 'sender', type: 'string' },
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.ts
index 947fd45b4..1f8e6756e 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchCancelSpotOrders.ts
@@ -11,7 +11,7 @@ export declare namespace MsgBatchCancelSpotOrders {
orders: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
orderMask?: InjectiveExchangeV1Beta1Exchange.OrderMask
cid?: string
}[]
@@ -39,9 +39,15 @@ export default class MsgBatchCancelSpotOrders extends MsgBase<
const orderDataList = params.orders.map((order) => {
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = order.marketId
- orderData.orderHash = order.orderHash
orderData.subaccountId = order.subaccountId
- orderData.cid = order.cid || ''
+
+ if (order.orderHash) {
+ orderData.orderHash = order.orderHash
+ }
+
+ if (order.cid) {
+ orderData.cid = order.cid
+ }
// TODO: Send order.orderMask instead when chain handles order mask properly.
orderData.orderMask = InjectiveExchangeV1Beta1Exchange.OrderMask.ANY
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchUpdateOrders.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchUpdateOrders.ts
index b6b2a1622..121e5c1df 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchUpdateOrders.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgBatchUpdateOrders.ts
@@ -15,19 +15,19 @@ export declare namespace MsgBatchUpdateOrders {
spotOrdersToCancel?: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
cid?: string
}[]
derivativeOrdersToCancel?: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
cid?: string
}[]
binaryOptionsOrdersToCancel?: {
marketId: string
subaccountId: string
- orderHash: string
+ orderHash?: string
cid?: string
}[]
spotOrdersToCreate?: {
@@ -114,8 +114,14 @@ export default class MsgBatchUpdateOrders extends MsgBase<
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = marketId
orderData.subaccountId = subaccountId
- orderData.orderHash = orderHash
- orderData.cid = cid || ''
+
+ if (orderHash) {
+ orderData.orderHash = orderHash
+ }
+
+ if (cid) {
+ orderData.cid = cid
+ }
return orderData
},
@@ -133,8 +139,14 @@ export default class MsgBatchUpdateOrders extends MsgBase<
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = marketId
orderData.subaccountId = subaccountId
- orderData.orderHash = orderHash
- orderData.cid = cid || ''
+
+ if (orderHash) {
+ orderData.orderHash = orderHash
+ }
+
+ if (cid) {
+ orderData.cid = cid
+ }
return orderData
},
@@ -151,8 +163,14 @@ export default class MsgBatchUpdateOrders extends MsgBase<
const orderData = InjectiveExchangeV1Beta1Tx.OrderData.create()
orderData.marketId = marketId
orderData.subaccountId = subaccountId
- orderData.orderHash = orderHash
- orderData.cid = cid || ''
+
+ if (orderHash) {
+ orderData.orderHash = orderHash
+ }
+
+ if (cid) {
+ orderData.cid = cid
+ }
return orderData
},
@@ -177,7 +195,10 @@ export default class MsgBatchUpdateOrders extends MsgBase<
orderInfo.feeRecipient = paramsFromArgs.feeRecipient
orderInfo.price = paramsFromArgs.price
orderInfo.quantity = paramsFromArgs.quantity
- orderInfo.cid = orderInfo.cid || ''
+
+ if (paramsFromArgs.cid) {
+ orderInfo.cid = paramsFromArgs.cid
+ }
const order = InjectiveExchangeV1Beta1Exchange.SpotOrder.create()
order.marketId = paramsFromArgs.marketId
@@ -214,7 +235,10 @@ export default class MsgBatchUpdateOrders extends MsgBase<
orderInfo.feeRecipient = paramsFromArgs.feeRecipient
orderInfo.price = paramsFromArgs.price
orderInfo.quantity = paramsFromArgs.quantity
- orderInfo.cid = orderInfo.cid || ''
+
+ if (paramsFromArgs.cid) {
+ orderInfo.cid = paramsFromArgs.cid
+ }
const order = InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
order.marketId = paramsFromArgs.marketId
@@ -250,7 +274,10 @@ export default class MsgBatchUpdateOrders extends MsgBase<
orderInfo.feeRecipient = paramsFromArgs.feeRecipient
orderInfo.price = paramsFromArgs.price
orderInfo.quantity = paramsFromArgs.quantity
- orderInfo.cid = orderInfo.cid || ''
+
+ if (paramsFromArgs.cid) {
+ orderInfo.cid = paramsFromArgs.cid
+ }
const order = InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
order.marketId = paramsFromArgs.marketId
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.spec.ts
index 4596ee182..d4d8bdf56 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.spec.ts
@@ -7,7 +7,7 @@ const params: MsgCancelBinaryOptionsOrder['params'] = {
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
}
const protoType = '/injective.exchange.v1beta1.MsgCancelBinaryOptionsOrder'
@@ -17,8 +17,8 @@ const protoParams = {
marketId: params.marketId,
orderHash: params.orderHash,
subaccountId: params.subaccountId,
- cid: params.cid,
orderMask: 1,
+ cid: params.cid,
}
const protoParamsAmino = snakecaseKeys(protoParams)
@@ -59,6 +59,7 @@ describe('MsgCancelBinaryOptionsOrder', () => {
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
{ name: 'order_mask', type: 'int32' },
+ { name: 'cid', type: 'string' },
],
})
})
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.ts
index 7182dffdd..9fade4ca3 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelBinaryOptionsOrder.ts
@@ -10,7 +10,7 @@ export declare namespace MsgCancelBinaryOptionsOrder {
marketId: string
subaccountId: string
injectiveAddress: string
- orderHash: string
+ orderHash?: string
orderMask?: InjectiveExchangeV1Beta1Exchange.OrderMask
cid?: string
}
@@ -38,9 +38,15 @@ export default class MsgCancelBinaryOptionsOrder extends MsgBase<
InjectiveExchangeV1Beta1Tx.MsgCancelBinaryOptionsOrder.create()
message.sender = params.injectiveAddress
message.marketId = params.marketId
- message.orderHash = params.orderHash
message.subaccountId = params.subaccountId
- message.cid = params.cid || ''
+
+ if (params.orderHash) {
+ message.orderHash = params.orderHash
+ }
+
+ if (params.cid) {
+ message.cid = params.cid
+ }
// TODO: Send order.orderMask instead when chain handles order mask properly.
message.orderMask = InjectiveExchangeV1Beta1Exchange.OrderMask.ANY
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.spec.ts
index 96b7d09b9..d4f2a16d4 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.spec.ts
@@ -7,7 +7,7 @@ const params: MsgCancelDerivativeOrder['params'] = {
marketId: mockFactory.injUsdtDerivativeMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
}
const protoType = '/injective.exchange.v1beta1.MsgCancelDerivativeOrder'
@@ -18,7 +18,7 @@ const protoParams = {
orderHash: params.orderHash,
subaccountId: params.subaccountId,
orderMask: 1,
- cid: params.cid,
+ cid: params.cid
}
const protoParamsAmino = snakecaseKeys(protoParams)
@@ -59,6 +59,7 @@ describe('MsgCancelDerivativeOrder', () => {
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
{ name: 'order_mask', type: 'int32' },
+ { name: 'cid', type: 'string' },
],
})
})
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.ts
index 3092ba310..502e90359 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelDerivativeOrder.ts
@@ -10,7 +10,7 @@ export declare namespace MsgCancelDerivativeOrder {
marketId: string
subaccountId: string
injectiveAddress: string
- orderHash: string
+ orderHash?: string
orderMask?: InjectiveExchangeV1Beta1Exchange.OrderMask
cid?: string
}
@@ -34,9 +34,16 @@ export default class MsgCancelDerivativeOrder extends MsgBase<
const message = InjectiveExchangeV1Beta1Tx.MsgCancelDerivativeOrder.create()
message.sender = params.injectiveAddress
message.marketId = params.marketId
- message.orderHash = params.orderHash
+
message.subaccountId = params.subaccountId
- message.cid = params.cid || ''
+
+ if (params.orderHash) {
+ message.orderHash = params.orderHash
+ }
+
+ if (params.cid) {
+ message.cid = params.cid
+ }
// TODO: Send order.orderMask instead when chain handles order mask properly.
message.orderMask = InjectiveExchangeV1Beta1Exchange.OrderMask.ANY
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.spec.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.spec.ts
index 56c228f5a..43ae6b60b 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.spec.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.spec.ts
@@ -7,7 +7,7 @@ const params: MsgCancelSpotOrder['params'] = {
marketId: mockFactory.injUsdtSpotMarket.marketId,
orderHash: mockFactory.orderHash,
subaccountId: mockFactory.subaccountId,
- cid: '',
+ cid: 'order-123',
}
const protoType = '/injective.exchange.v1beta1.MsgCancelSpotOrder'
@@ -57,6 +57,7 @@ describe('MsgCancelSpotOrder', () => {
{ name: 'market_id', type: 'string' },
{ name: 'subaccount_id', type: 'string' },
{ name: 'order_hash', type: 'string' },
+ { name: 'cid', type: 'string' },
],
})
})
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.ts
index 28aac2f58..8de03e919 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCancelSpotOrder.ts
@@ -7,7 +7,7 @@ export declare namespace MsgCancelSpotOrder {
marketId: string
subaccountId: string
injectiveAddress: string
- orderHash: string
+ orderHash?: string
cid?: string
}
@@ -31,9 +31,15 @@ export default class MsgCancelSpotOrder extends MsgBase<
const message = InjectiveExchangeV1Beta1Tx.MsgCancelSpotOrder.create()
message.sender = params.injectiveAddress
message.marketId = params.marketId
- message.orderHash = params.orderHash
message.subaccountId = params.subaccountId
- message.cid = params.cid || ''
+
+ if (params.orderHash) {
+ message.orderHash = params.orderHash
+ }
+
+ if (params.cid) {
+ message.cid = params.cid
+ }
// TODO: message.setOrderMask does not exist yet, enable this once it does.
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsLimitOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsLimitOrder.ts
index 775182e32..360cdf678 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsLimitOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsLimitOrder.ts
@@ -30,7 +30,10 @@ const createLimitOrder = (params: MsgCreateBinaryOptionsLimitOrder.Params) => {
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const derivativeOrder =
InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsMarketOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsMarketOrder.ts
index befd8fc1e..5a84f40cd 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsMarketOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateBinaryOptionsMarketOrder.ts
@@ -32,7 +32,10 @@ const createMarketOrder = (
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const derivativeOrder =
InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeLimitOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeLimitOrder.ts
index dafc3acd0..92fcfd406 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeLimitOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeLimitOrder.ts
@@ -29,7 +29,10 @@ const createLimitOrder = (params: MsgCreateDerivativeLimitOrder.Params) => {
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const derivativeOrder =
InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeMarketOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeMarketOrder.ts
index abb101c3a..7bdb324fe 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeMarketOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateDerivativeMarketOrder.ts
@@ -29,7 +29,10 @@ const createMarketOrder = (params: MsgCreateDerivativeMarketOrder.Params) => {
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const derivativeOrder =
InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotLimitOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotLimitOrder.ts
index 3c3bdfa3e..b7167f3c2 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotLimitOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotLimitOrder.ts
@@ -28,7 +28,10 @@ const createLimitOrder = (params: MsgCreateSpotLimitOrder.Params) => {
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const spotOrder = InjectiveExchangeV1Beta1Exchange.SpotOrder.create()
spotOrder.marketId = params.marketId
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotMarketOrder.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotMarketOrder.ts
index 3069923c6..9ed367cde 100644
--- a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotMarketOrder.ts
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgCreateSpotMarketOrder.ts
@@ -28,7 +28,10 @@ const createMarketOrder = (params: MsgCreateSpotMarketOrder.Params) => {
orderInfo.feeRecipient = params.feeRecipient
orderInfo.price = params.price
orderInfo.quantity = params.quantity
- orderInfo.cid = params.cid || ''
+
+ if (params.cid) {
+ orderInfo.cid = params.cid
+ }
const spotOrder = InjectiveExchangeV1Beta1Exchange.SpotOrder.create()
spotOrder.marketId = params.marketId
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgLiquidatePosition.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgLiquidatePosition.ts
new file mode 100644
index 000000000..8820d9fb6
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgLiquidatePosition.ts
@@ -0,0 +1,116 @@
+import {
+ InjectiveExchangeV1Beta1Exchange,
+ InjectiveExchangeV1Beta1Tx,
+} from '@injectivelabs/core-proto-ts'
+import { MsgBase } from '../../MsgBase'
+import snakecaseKeys from 'snakecase-keys'
+
+export declare namespace MsgLiquidatePosition {
+ export interface Params {
+ subaccountId: string
+ injectiveAddress: string
+ marketId: string
+
+ /** optional order to provide for liquidation */
+ order?: {
+ marketId: string
+ subaccountId: string
+ orderType: InjectiveExchangeV1Beta1Exchange.OrderType
+ triggerPrice?: string
+ feeRecipient: string
+ price: string
+ margin: string
+ quantity: string
+ cid?: string
+ }
+ }
+
+ export type Proto = InjectiveExchangeV1Beta1Tx.MsgLiquidatePosition
+}
+
+/**
+ * @category Messages
+ */
+export default class MsgLiquidatePosition extends MsgBase<
+ MsgLiquidatePosition.Params,
+ MsgLiquidatePosition.Proto
+> {
+ static fromJSON(params: MsgLiquidatePosition.Params): MsgLiquidatePosition {
+ return new MsgLiquidatePosition(params)
+ }
+
+ public toProto() {
+ const { params } = this
+
+ const message = InjectiveExchangeV1Beta1Tx.MsgLiquidatePosition.create()
+ message.sender = params.injectiveAddress
+ message.subaccountId = params.subaccountId
+ message.marketId = params.marketId
+
+ if (params.order) {
+ const orderInfo = InjectiveExchangeV1Beta1Exchange.OrderInfo.create()
+ orderInfo.subaccountId = params.order.subaccountId
+ orderInfo.feeRecipient = params.order.feeRecipient
+ orderInfo.price = params.order.price
+ orderInfo.quantity = params.order.quantity
+
+ if (params.order.cid) {
+ orderInfo.cid = params.order.cid
+ }
+
+ const order = InjectiveExchangeV1Beta1Exchange.DerivativeOrder.create()
+
+ order.marketId = params.order.marketId
+ order.margin = params.order.margin
+ order.triggerPrice = params.order.triggerPrice || '0'
+ }
+
+ return InjectiveExchangeV1Beta1Tx.MsgLiquidatePosition.fromPartial(message)
+ }
+
+ public toData() {
+ const proto = this.toProto()
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgLiquidatePosition',
+ ...proto,
+ }
+ }
+
+ public toAmino() {
+ const proto = this.toProto()
+ const message = {
+ ...snakecaseKeys(proto),
+ }
+
+ return {
+ type: 'exchange/MsgLiquidatePosition',
+ value: message,
+ }
+ }
+
+ public toWeb3() {
+ const amino = this.toAmino()
+ const { value } = amino
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgLiquidatePosition',
+ ...value,
+ }
+ }
+
+ public toDirectSign() {
+ const proto = this.toProto()
+
+ return {
+ type: '/injective.exchange.v1beta1.MsgLiquidatePosition',
+ message: proto,
+ }
+ }
+
+ public toBinary(): Uint8Array {
+ return InjectiveExchangeV1Beta1Tx.MsgLiquidatePosition.encode(
+ this.toProto(),
+ ).finish()
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/exchange/msgs/MsgSignData.ts b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgSignData.ts
new file mode 100644
index 000000000..6f2a79e9d
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/exchange/msgs/MsgSignData.ts
@@ -0,0 +1,82 @@
+import { InjectiveExchangeV1Beta1Tx } from '@injectivelabs/core-proto-ts'
+import { MsgBase } from '../../MsgBase'
+import snakecaseKeys from 'snakecase-keys'
+import { getEthereumAddress, toUtf8 } from '../../../../utils'
+
+export declare namespace MsgSignData {
+ export interface Params {
+ sender: string
+ data: string
+ }
+
+ export type Proto = InjectiveExchangeV1Beta1Tx.MsgSignData
+}
+
+/**
+ * @category Messages
+ */
+export default class MsgSignData extends MsgBase<
+ MsgSignData.Params,
+ MsgSignData.Proto
+> {
+ static fromJSON(params: MsgSignData.Params): MsgSignData {
+ return new MsgSignData(params)
+ }
+
+ public toProto() {
+ const { params } = this
+
+ const message = InjectiveExchangeV1Beta1Tx.MsgSignData.create()
+
+ message.Signer = Buffer.from(getEthereumAddress(params.sender), 'hex')
+ message.Data = Buffer.from(toUtf8(params.data), 'utf-8')
+
+ return InjectiveExchangeV1Beta1Tx.MsgSignData.fromPartial(message)
+ }
+
+ public toData() {
+ const proto = this.toProto()
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgSignData',
+ ...proto,
+ }
+ }
+
+ public toAmino() {
+ const proto = this.toProto()
+ const message = {
+ ...snakecaseKeys(proto),
+ }
+
+ return {
+ type: 'sign/MsgSignData',
+ value: message,
+ }
+ }
+
+ public toWeb3() {
+ const amino = this.toAmino()
+ const { value } = amino
+
+ return {
+ '@type': '/injective.exchange.v1beta1.MsgSignData',
+ ...value,
+ }
+ }
+
+ public toDirectSign() {
+ const proto = this.toProto()
+
+ return {
+ type: '/injective.exchange.v1beta1.MsgSignData',
+ message: proto,
+ }
+ }
+
+ public toBinary(): Uint8Array {
+ return InjectiveExchangeV1Beta1Tx.MsgSignData.encode(
+ this.toProto(),
+ ).finish()
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/ibc/index.ts b/packages/sdk-ts/src/core/modules/ibc/index.ts
index ca74352a9..bc75f4f8d 100644
--- a/packages/sdk-ts/src/core/modules/ibc/index.ts
+++ b/packages/sdk-ts/src/core/modules/ibc/index.ts
@@ -1,4 +1,3 @@
import MsgTransfer from './msgs/MsgTransfer'
-import MsgTransferCosmjs from './msgs/MsgTransferCosmjs'
-export { MsgTransfer, MsgTransferCosmjs }
+export { MsgTransfer }
diff --git a/packages/sdk-ts/src/core/modules/ibc/msgs/MsgTransferCosmjs.ts b/packages/sdk-ts/src/core/modules/ibc/msgs/MsgTransferCosmjs.ts
index c023066c7..6b2d6607b 100644
--- a/packages/sdk-ts/src/core/modules/ibc/msgs/MsgTransferCosmjs.ts
+++ b/packages/sdk-ts/src/core/modules/ibc/msgs/MsgTransferCosmjs.ts
@@ -24,7 +24,7 @@ export declare namespace MsgTransferCosmjs {
/**
* @category Messages
*
- * @deprected use MsgTransfer with SIGN_DIRECT and a Cosmos wallet
+ * @deprecated use MsgTransfer with SIGN_DIRECT and a Cosmos wallet
*/
export default class MsgTransferCosmjs {
params: MsgTransferCosmjs.Params
@@ -56,8 +56,13 @@ export default class MsgTransferCosmjs {
sender: params.sender,
receiver: params.receiver,
token: params.amount,
- timeoutHeight: params.height,
- timeoutTimestamp: params.timeout,
+ timeoutHeight: params.height
+ ? {
+ revisionHeight: BigInt(params.height.revisionHeight),
+ revisionNumber: BigInt(params.height.revisionNumber),
+ }
+ : undefined,
+ timeoutTimestamp: params.timeout ? BigInt(params.timeout) : undefined,
}),
}
diff --git a/packages/sdk-ts/src/core/modules/msgs.ts b/packages/sdk-ts/src/core/modules/msgs.ts
index 3ce85b6ec..fe4f478d0 100644
--- a/packages/sdk-ts/src/core/modules/msgs.ts
+++ b/packages/sdk-ts/src/core/modules/msgs.ts
@@ -21,6 +21,7 @@ import MsgCreateBinaryOptionsMarketOrder from './exchange/msgs/MsgCreateBinaryOp
import MsgCreateSpotLimitOrder from './exchange/msgs/MsgCreateSpotLimitOrder'
import MsgCreateSpotMarketOrder from './exchange/msgs/MsgCreateSpotMarketOrder'
import MsgBatchUpdateOrders from './exchange/msgs/MsgBatchUpdateOrders'
+import MsgAdminUpdateBinaryOptionsMarket from './exchange/msgs/MsgAdminUpdateBinaryOptionsMarket'
import MsgDeposit from './exchange/msgs/MsgDeposit'
import MsgIncreasePositionMargin from './exchange/msgs/MsgIncreasePositionMargin'
import MsgInstantSpotMarketLaunch from './exchange/msgs/MsgInstantSpotMarketLaunch'
@@ -51,8 +52,10 @@ import MsgBurn from './tokenfactory/msgs/MsgBurn'
import MsgChangeAdmin from './tokenfactory/msgs/MsgChangeAdmin'
import MsgCreateDenom from './tokenfactory/msgs/MsgCreateDenom'
import MsgMint from './tokenfactory/msgs/MsgMint'
+import MsgSignData from './exchange/msgs/MsgSignData'
import MsgSetDenomMetadata from './tokenfactory/msgs/MsgSetDenomMetadata'
import MsgExternalTransfer from './exchange/msgs/MsgExternalTransfer'
+import MsgLiquidatePosition from './exchange/msgs/MsgLiquidatePosition'
import { MsgSubmitProposal } from './gov'
/**
@@ -60,8 +63,8 @@ import { MsgSubmitProposal } from './gov'
*/
export type Msgs =
| MsgBid
- | MsgGrant
| MsgRevoke
+ | MsgGrant
| MsgAuthzExec
| MsgSend
| MsgMultiSend
@@ -115,6 +118,9 @@ export type Msgs =
| MsgSetDenomMetadata
| MsgGrantAllowance
| MsgRevokeAllowance
+ | MsgAdminUpdateBinaryOptionsMarket
+ | MsgLiquidatePosition
+ | MsgSignData
/**
* @category Messages
@@ -141,4 +147,7 @@ export type ExchangeMsgs =
| MsgReclaimLockedFunds
| MsgExternalTransfer
| MsgStoreCode
+ | MsgSignData
| MsgRewardsOptOut
+ | MsgLiquidatePosition
+ | MsgAdminUpdateBinaryOptionsMarket
diff --git a/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.spec.ts b/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.spec.ts
index 319588aad..20bec15fe 100644
--- a/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.spec.ts
+++ b/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.spec.ts
@@ -3,15 +3,19 @@ import { mockFactory } from '@injectivelabs/test-utils'
import snakecaseKeys from 'snakecase-keys'
const params: MsgCreateDenom['params'] = {
+ name: 'Injective',
sender: mockFactory.injectiveAddress,
subdenom: mockFactory.injectiveAddress,
+ symbol: 'INJ',
}
const protoType = '/injective.tokenfactory.v1beta1.MsgCreateDenom'
const protoTypeAmino = 'injective/tokenfactory/create-denom'
const protoParams = {
+ name: params.name,
sender: params.sender,
subdenom: params.subdenom,
+ symbol: params.symbol,
}
const protoParamsAmino = snakecaseKeys(protoParams)
@@ -49,6 +53,8 @@ describe('MsgCreateDenom', () => {
MsgValue: [
{ name: 'sender', type: 'string' },
{ name: 'subdenom', type: 'string' },
+ { name: 'name', type: 'string' },
+ { name: 'symbol', type: 'string' },
],
})
})
diff --git a/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.ts b/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.ts
index dc04747d1..098daf805 100644
--- a/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.ts
+++ b/packages/sdk-ts/src/core/modules/tokenfactory/msgs/MsgCreateDenom.ts
@@ -6,6 +6,8 @@ export declare namespace MsgCreateDenom {
export interface Params {
sender: string
subdenom: string
+ name?: string
+ symbol?: string
}
export type Proto = InjectiveTokenFactoryV1Beta1Tx.MsgCreateDenom
@@ -28,6 +30,8 @@ export default class MsgCreateDenom extends MsgBase<
const message = InjectiveTokenFactoryV1Beta1Tx.MsgCreateDenom.create()
message.sender = params.sender
message.subdenom = params.subdenom
+ message.name = params.name || ''
+ message.symbol = params.symbol || ''
return InjectiveTokenFactoryV1Beta1Tx.MsgCreateDenom.fromPartial(message)
}
diff --git a/packages/sdk-ts/src/core/modules/tx/api/TxGrpcApi.ts b/packages/sdk-ts/src/core/modules/tx/api/TxGrpcApi.ts
index 5ccd178bd..7e85f9c51 100644
--- a/packages/sdk-ts/src/core/modules/tx/api/TxGrpcApi.ts
+++ b/packages/sdk-ts/src/core/modules/tx/api/TxGrpcApi.ts
@@ -11,6 +11,8 @@ import {
import {
DEFAULT_TX_BLOCK_INCLUSION_TIMEOUT_IN_MS,
DEFAULT_BLOCK_TIME_IN_SECONDS,
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT,
+ BigNumberInBase,
} from '@injectivelabs/utils'
import { TxResponse } from '../types/tx'
import BaseGrpcWebConsumer from '../../../../client/base/BaseGrpcWebConsumer'
@@ -168,10 +170,13 @@ export class TxGrpcApi implements TxConcreteApi {
options?: TxClientBroadcastOptions,
): Promise {
const { txService } = this
- const { mode, timeout } = options || {
- mode: CosmosTxV1Beta1Service.BroadcastMode.BROADCAST_MODE_SYNC,
- timeout: DEFAULT_TX_BLOCK_INCLUSION_TIMEOUT_IN_MS || 60000,
- }
+ const mode =
+ options?.mode || CosmosTxV1Beta1Service.BroadcastMode.BROADCAST_MODE_SYNC
+ const timeout =
+ options?.timeout ||
+ new BigNumberInBase(options?.txTimeout || DEFAULT_BLOCK_TIMEOUT_HEIGHT)
+ .times(DEFAULT_BLOCK_TIME_IN_SECONDS * 1000)
+ .toNumber()
const broadcastTxRequest =
CosmosTxV1Beta1Service.BroadcastTxRequest.create()
diff --git a/packages/sdk-ts/src/core/modules/tx/api/TxRestApi.ts b/packages/sdk-ts/src/core/modules/tx/api/TxRestApi.ts
index 82e38a567..bfa5abc0b 100644
--- a/packages/sdk-ts/src/core/modules/tx/api/TxRestApi.ts
+++ b/packages/sdk-ts/src/core/modules/tx/api/TxRestApi.ts
@@ -2,6 +2,8 @@ import {
HttpClient,
DEFAULT_BLOCK_TIME_IN_SECONDS,
DEFAULT_TX_BLOCK_INCLUSION_TIMEOUT_IN_MS,
+ BigNumberInBase,
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT,
} from '@injectivelabs/utils'
import {
BroadcastMode,
@@ -164,9 +166,11 @@ export class TxRestApi implements TxConcreteApi {
tx: CosmosTxV1Beta1Tx.TxRaw,
options?: TxClientBroadcastOptions,
): Promise {
- const { timeout } = options || {
- timeout: DEFAULT_TX_BLOCK_INCLUSION_TIMEOUT_IN_MS || 60000,
- }
+ const timeout =
+ options?.timeout ||
+ new BigNumberInBase(options?.txTimeout || DEFAULT_BLOCK_TIMEOUT_HEIGHT)
+ .times(DEFAULT_BLOCK_TIME_IN_SECONDS * 1000)
+ .toNumber()
try {
const { tx_response: txResponse } = await this.broadcastTx<{
diff --git a/packages/sdk-ts/src/core/modules/tx/api/index.ts b/packages/sdk-ts/src/core/modules/tx/api/index.ts
index a2060182b..6137fe780 100644
--- a/packages/sdk-ts/src/core/modules/tx/api/index.ts
+++ b/packages/sdk-ts/src/core/modules/tx/api/index.ts
@@ -3,6 +3,7 @@ import { TxGrpcApi } from '../api/TxGrpcApi'
export * from './TxGrpcApi'
export * from './TxRestApi'
+export * from './utils'
/**
* @deprecated use TxRestApi and TxGrpcApi
diff --git a/packages/sdk-ts/src/core/modules/tx/api/utils.ts b/packages/sdk-ts/src/core/modules/tx/api/utils.ts
new file mode 100644
index 000000000..2aa6e4a38
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/tx/api/utils.ts
@@ -0,0 +1,23 @@
+import {
+ BigNumberInBase,
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT,
+ DEFAULT_BLOCK_TIME_IN_SECONDS,
+} from '@injectivelabs/utils'
+import { TxResponse } from '../types'
+import { TxGrpcApi } from './TxGrpcApi'
+import { TxRestApi } from './TxRestApi'
+
+export const waitTxBroadcasted = (
+ txHash: string,
+ options: { endpoints: { grpc?: string; rest: string }; txTimeout?: number },
+): Promise => {
+ const timeout = new BigNumberInBase(
+ options?.txTimeout || DEFAULT_BLOCK_TIMEOUT_HEIGHT,
+ )
+ .times(DEFAULT_BLOCK_TIME_IN_SECONDS * 1000)
+ .toNumber()
+
+ return options.endpoints.grpc
+ ? new TxGrpcApi(options.endpoints.grpc).fetchTxPoll(txHash, timeout)
+ : new TxRestApi(options.endpoints.rest).fetchTxPoll(txHash, timeout)
+}
diff --git a/packages/sdk-ts/src/core/modules/tx/arbitrary.ts b/packages/sdk-ts/src/core/modules/tx/arbitrary.ts
new file mode 100644
index 000000000..77f494149
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/tx/arbitrary.ts
@@ -0,0 +1,32 @@
+import { sortObjectByKeys } from '../../../utils/helpers'
+import { toUtf8 } from '../../../utils/utf8'
+
+export const generateArbitrarySignDoc = (message: string, signer: string) => {
+ const signDoc = {
+ account_number: '0',
+ chain_id: '',
+ fee: {
+ amount: [],
+ gas: '0',
+ },
+ memo: '',
+ msgs: [
+ {
+ type: 'sign/MsgSignData',
+ value: {
+ data: Buffer.from(toUtf8(message)).toString('base64'),
+ signer: signer,
+ },
+ },
+ ],
+ sequence: '0',
+ }
+
+ const stringified = toUtf8(JSON.stringify(sortObjectByKeys(signDoc)))
+
+ return {
+ signDoc,
+ signDocBuff: Buffer.from(stringified),
+ stringifiedSignDoc: stringified,
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.spec.ts b/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.spec.ts
index a48398bb8..a7e21fe1a 100644
--- a/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.spec.ts
+++ b/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.spec.ts
@@ -52,7 +52,7 @@ describe('MsgBroadcasterWithPk', () => {
network,
privateKey,
simulateTx: true,
- ethereumChainId: EthereumChainId.Goerli,
+ ethereumChainId: EthereumChainId.Sepolia,
}).broadcastWithFeeDelegation({ msgs: message })
expect(response.txHash).toBeDefined()
diff --git a/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.ts b/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.ts
index 9a4b244e1..2ade1987a 100644
--- a/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.ts
+++ b/packages/sdk-ts/src/core/modules/tx/broadcaster/MsgBroadcasterWithPk.ts
@@ -53,6 +53,7 @@ interface MsgBroadcasterWithPkOptions {
ethereumChainId?: EthereumChainId
simulateTx?: boolean
loggingEnabled?: boolean
+ txTimeout?: number // blocks to wait for tx to be included in a block
gasBufferCoefficient?: number
}
@@ -77,6 +78,8 @@ export class MsgBroadcasterWithPk {
public gasBufferCoefficient: number = 1.1
+ public txTimeout = DEFAULT_BLOCK_TIMEOUT_HEIGHT
+
constructor(options: MsgBroadcasterWithPkOptions) {
const networkInfo = getNetworkInfo(options.network)
const endpoints = getNetworkEndpoints(options.network)
@@ -84,6 +87,7 @@ export class MsgBroadcasterWithPk {
this.gasBufferCoefficient = options.gasBufferCoefficient || 1.1
this.simulateTx = options.simulateTx || false
this.chainId = networkInfo.chainId
+ this.txTimeout = options.txTimeout || DEFAULT_BLOCK_TIMEOUT_HEIGHT
this.ethereumChainId =
options.ethereumChainId || networkInfo.ethereumChainId
this.endpoints = { ...endpoints, ...(options.endpoints || {}) }
@@ -257,7 +261,7 @@ export class MsgBroadcasterWithPk {
transaction: MsgBroadcasterTxOptions,
accountDetails?: AccountDetails,
) {
- const { chainId, privateKey, endpoints } = this
+ const { chainId, privateKey, endpoints, txTimeout } = this
const msgs = Array.isArray(transaction.msgs)
? transaction.msgs
: [transaction.msgs]
@@ -276,9 +280,7 @@ export class MsgBroadcasterWithPk {
endpoints.grpc,
).fetchLatestBlock()
const latestHeight = latestBlock!.header!.height
- const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
- )
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(txTimeout)
const gas = (
transaction.gas?.gas || getGasPriceBasedOnMessage(msgs)
@@ -319,8 +321,10 @@ export class MsgBroadcasterWithPk {
}
private async broadcastTxRaw(txRaw: CosmosTxV1Beta1Tx.TxRaw) {
- const { endpoints } = this
- const txResponse = await new TxGrpcApi(endpoints.grpc).broadcast(txRaw)
+ const { endpoints, txTimeout } = this
+ const txResponse = await new TxGrpcApi(endpoints.grpc).broadcast(txRaw, {
+ txTimeout,
+ })
if (txResponse.code !== 0) {
throw new GeneralException(
diff --git a/packages/sdk-ts/src/core/modules/tx/eip712/MsgDecoder.ts b/packages/sdk-ts/src/core/modules/tx/eip712/MsgDecoder.ts
new file mode 100644
index 000000000..ccf49dcb4
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/tx/eip712/MsgDecoder.ts
@@ -0,0 +1,41 @@
+import {
+ GoogleProtobufAny,
+ InjectiveExchangeV1Beta1Tx,
+} from '@injectivelabs/core-proto-ts'
+import { Msgs } from '../../msgs'
+import { MsgIncreasePositionMargin, MsgSignData } from '../../exchange'
+import { getInjectiveAddress } from './../../../../utils'
+
+export class MsgDecoder {
+ static decode(message: GoogleProtobufAny.Any): Msgs {
+ const type = message.typeUrl
+
+ switch (true) {
+ case type.includes('MsgIncreasePositionMargin'): {
+ const msg = InjectiveExchangeV1Beta1Tx.MsgIncreasePositionMargin.decode(
+ message.value,
+ )
+
+ return MsgIncreasePositionMargin.fromJSON({
+ marketId: msg.marketId,
+ injectiveAddress: msg.sender,
+ srcSubaccountId: msg.sourceSubaccountId,
+ dstSubaccountId: msg.destinationSubaccountId,
+ amount: msg.amount,
+ })
+ }
+
+ case type.includes('MsgSignData'): {
+ const msg = InjectiveExchangeV1Beta1Tx.MsgSignData.decode(message.value)
+
+ return MsgSignData.fromJSON({
+ data: Buffer.from(msg.Data).toString('utf-8'),
+ sender: getInjectiveAddress(Buffer.from(msg.Signer).toString('hex')),
+ })
+ }
+
+ default:
+ throw new Error('Unknown message type')
+ }
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/tx/eip712/eip712.spec.ts b/packages/sdk-ts/src/core/modules/tx/eip712/eip712.spec.ts
index d423a7023..43d928a8b 100644
--- a/packages/sdk-ts/src/core/modules/tx/eip712/eip712.spec.ts
+++ b/packages/sdk-ts/src/core/modules/tx/eip712/eip712.spec.ts
@@ -56,7 +56,7 @@ describe('EIP712V2', () => {
},
{
name: 'verifyingContract',
- type: 'string',
+ type: 'address',
},
{
name: 'salt',
@@ -79,15 +79,16 @@ describe('EIP712V2', () => {
name: 'Injective Web3',
version: '1.0.0',
chainId: '0x5',
- verifyingContract: 'cosmos',
+ verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
salt: '0',
},
message: {
context:
- '{"account_number":11,"chain_id":"injective-777","fee":{"amount":[{"denom":"inj","amount":"200000000000000"}],"gas":400000,"payer":"inj18j2myhaf2at75kwwaqxfstk4q28n4am45nlfg7"},"memo":"","sequence":88,"timeout_height":1896}',
+ '{"account_number":11,"chain_id":"injective-777","fee":{"amount":[{"denom":"inj","amount":"64000000000000"}],"gas":400000,"payer":"inj18j2myhaf2at75kwwaqxfstk4q28n4am45nlfg7"},"memo":"","sequence":88,"timeout_height":1896}',
msgs: `[{"@type":"/cosmos.bank.v1beta1.MsgSend","from_address":"${mockFactory.injectiveAddress}","to_address":"${mockFactory.injectiveAddress}","amount":[{"denom":"inj","amount":"10000000000000000"}]}]`,
},
}
+
expect(eip712TypedData).toEqual(expectedEip712)
})
})
diff --git a/packages/sdk-ts/src/core/modules/tx/eip712/index.ts b/packages/sdk-ts/src/core/modules/tx/eip712/index.ts
index 7528883d3..439767864 100644
--- a/packages/sdk-ts/src/core/modules/tx/eip712/index.ts
+++ b/packages/sdk-ts/src/core/modules/tx/eip712/index.ts
@@ -2,3 +2,4 @@ export * from './types'
export * from './maps'
export * from './utils'
export * from './eip712'
+export * from './MsgDecoder'
diff --git a/packages/sdk-ts/src/core/modules/tx/eip712/maps.ts b/packages/sdk-ts/src/core/modules/tx/eip712/maps.ts
index 9e517163c..55d6607e5 100644
--- a/packages/sdk-ts/src/core/modules/tx/eip712/maps.ts
+++ b/packages/sdk-ts/src/core/modules/tx/eip712/maps.ts
@@ -30,6 +30,12 @@ export const objectKeysToEip712Types = ({
'proposal_id',
'creation_height',
]
+ const stringFieldsWithNumberValue = [
+ 'timeout_timestamp',
+ 'revision_height',
+ 'revision_number',
+ ]
+ const stringFieldsToOmitIfEmpty = ['cid']
const output = new Map()
const types = new Array()
@@ -54,6 +60,19 @@ export const objectKeysToEip712Types = ({
type: numberTypeToReflectionNumberType(property),
})
} else if (type === 'string') {
+ if (stringFieldsToOmitIfEmpty.includes(property) && !propertyValue) {
+ continue
+ }
+
+ if (stringFieldsWithNumberValue.includes(property)) {
+ types.push({
+ name: property,
+ type: stringTypeToReflectionStringType(property),
+ })
+
+ continue
+ }
+
types.push({ name: property, type: 'string' })
} else if (type === 'object') {
if (Array.isArray(propertyValue) && propertyValue.length === 0) {
@@ -150,6 +169,12 @@ export const numberTypeToReflectionNumberType = (property?: string) => {
switch (property) {
case 'order_mask':
return 'int32'
+ case 'timeout_timestamp':
+ return 'timeout_timestamp'
+ case 'revision_number':
+ return 'uint64'
+ case 'revision_height':
+ return 'uint64'
case 'order_type':
return 'int32'
case 'oracle_type':
@@ -172,6 +197,24 @@ export const numberTypeToReflectionNumberType = (property?: string) => {
return 'uint64'
}
}
+/**
+ * JavaScript doesn't know the exact string types that
+ * we represent these fields on chain so we have to map
+ * them in their chain representation from the string value
+ * that is available in JavaScript
+ */
+export const stringTypeToReflectionStringType = (property?: string) => {
+ switch (property) {
+ case 'timeout_timestamp':
+ return 'uint64'
+ case 'revision_number':
+ return 'uint64'
+ case 'revision_height':
+ return 'uint64'
+ default:
+ return 'uint64'
+ }
+}
/**
* We need to represent some of the values in a proper format acceptable by the chain.
diff --git a/packages/sdk-ts/src/core/modules/tx/index.ts b/packages/sdk-ts/src/core/modules/tx/index.ts
index 31083f697..1dbcf2240 100644
--- a/packages/sdk-ts/src/core/modules/tx/index.ts
+++ b/packages/sdk-ts/src/core/modules/tx/index.ts
@@ -6,5 +6,6 @@ export * from './utils'
export * from './types'
export * from './broadcaster'
export * from './eip712'
+export * from './arbitrary'
export { CosmosTxV1Beta1Tx }
diff --git a/packages/sdk-ts/src/core/modules/tx/tx.ts b/packages/sdk-ts/src/core/modules/tx/tx.ts
index f62603706..8f68ad87e 100644
--- a/packages/sdk-ts/src/core/modules/tx/tx.ts
+++ b/packages/sdk-ts/src/core/modules/tx/tx.ts
@@ -17,7 +17,10 @@ import { DirectSignResponse } from '@cosmjs/proto-signing'
import { BigNumberInBase } from '@injectivelabs/utils'
import { Msgs } from '../msgs'
import { GeneralException } from '@injectivelabs/exceptions'
-import { DEFAULT_BLOCK_TIMEOUT_HEIGHT } from '@injectivelabs/utils'
+import {
+ getStdFeeFromString,
+ DEFAULT_BLOCK_TIMEOUT_HEIGHT,
+} from '@injectivelabs/utils'
import { ChainRestAuthApi, ChainRestTendermintApi } from '../../../client'
import { CosmosTxV1Beta1Tx } from '@injectivelabs/core-proto-ts'
import { BaseAccount } from '../../accounts'
@@ -56,11 +59,12 @@ export const createTransactionWithSigners = ({
const [signer] = actualSigners
const body = createBody({ message, memo, timeoutHeight })
+ const actualFee = typeof fee === 'string' ? getStdFeeFromString(fee) : fee
const feeMessage = createFee({
- fee: fee.amount[0],
- payer: fee.payer,
- granter: fee.granter,
- gasLimit: parseInt(fee.gas, 10),
+ fee: actualFee.amount[0],
+ payer: actualFee.payer,
+ granter: actualFee.granter,
+ gasLimit: parseInt(actualFee.gas, 10),
})
const signInfo = createSigners({
diff --git a/packages/sdk-ts/src/core/modules/tx/types/tx.ts b/packages/sdk-ts/src/core/modules/tx/types/tx.ts
index 5cb04ab0a..55236dce1 100644
--- a/packages/sdk-ts/src/core/modules/tx/types/tx.ts
+++ b/packages/sdk-ts/src/core/modules/tx/types/tx.ts
@@ -8,8 +8,9 @@ import {
} from '@injectivelabs/core-proto-ts'
export interface TxClientBroadcastOptions {
- mode: CosmosTxV1Beta1Service.BroadcastMode
- timeout: number
+ mode?: CosmosTxV1Beta1Service.BroadcastMode
+ timeout?: number // timeout in ms
+ txTimeout?: number // blocks to wait for tx to be included in a block
}
export interface TxClientBroadcastResponse {
@@ -70,7 +71,7 @@ export interface SignerDetails {
/** @type {CreateTransactionWithSignersArgs} */
export interface CreateTransactionWithSignersArgs {
- fee?: StdFee // the fee to include in the transaction
+ fee?: StdFee | string // the fee to include in the transaction
memo?: string // the memo to include in the transaction
chainId: string // the chain id of the chain that the transaction is going to be broadcasted to
message: Msgs | Msgs[] // the message that should be packed into the transaction
diff --git a/packages/sdk-ts/src/core/modules/tx/utils/helpers.ts b/packages/sdk-ts/src/core/modules/tx/utils/helpers.ts
index d864d9e53..6f5b4a65c 100644
--- a/packages/sdk-ts/src/core/modules/tx/utils/helpers.ts
+++ b/packages/sdk-ts/src/core/modules/tx/utils/helpers.ts
@@ -30,7 +30,7 @@ export const getInjectiveSignerAddress = (address: string | undefined) => {
return getInjectiveAddress(address)
}
- return ''
+ return address
}
export const getEthereumSignerAddress = (address: string | undefined) => {
@@ -46,5 +46,5 @@ export const getEthereumSignerAddress = (address: string | undefined) => {
return getEthereumAddress(address)
}
- return ''
+ return `0x${address}`
}
diff --git a/packages/sdk-ts/src/core/modules/tx/utils/tx.ts b/packages/sdk-ts/src/core/modules/tx/utils/tx.ts
index a0efe0236..33e2e5aac 100644
--- a/packages/sdk-ts/src/core/modules/tx/utils/tx.ts
+++ b/packages/sdk-ts/src/core/modules/tx/utils/tx.ts
@@ -9,8 +9,7 @@ import {
CosmosCryptoSecp256k1Keys,
CosmosTxSigningV1Beta1Signing,
} from '@injectivelabs/core-proto-ts'
-import { SignDoc } from 'cosmjs-types/cosmos/tx/v1beta1/tx'
-import { getStdFee } from '@injectivelabs/utils';
+import { getStdFee } from '@injectivelabs/utils'
export const getPublicKey = ({
chainId,
@@ -199,17 +198,6 @@ export const createSignDocFromTransaction = (args: {
})
}
-export const createCosmosSignDocFromSignDoc = (
- signDoc: CosmosTxV1Beta1Tx.SignDoc,
-): SignDoc => {
- return SignDoc.fromPartial({
- bodyBytes: signDoc.bodyBytes,
- authInfoBytes: signDoc.authInfoBytes,
- accountNumber: signDoc.accountNumber,
- chainId: signDoc.chainId,
- })
-}
-
export const createTxRawEIP712 = (
txRaw: CosmosTxV1Beta1Tx.TxRaw,
extension: InjectiveTypesV1TxExt.ExtensionOptionsWeb3Tx,
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args.ts
index fb5335c29..3acbbff4b 100644
--- a/packages/sdk-ts/src/core/modules/wasm/exec-args.ts
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args.ts
@@ -8,9 +8,11 @@ import ExecArgSwapMinOutput from './exec-args/ExecArgSwapMinOutput'
import ExecArgCreateCampaign from './exec-args/ExecArgCreateCampaign'
import ExecArgSwapExactOutput from './exec-args/ExecArgSwapExactOutput'
import ExecArgInitiateTransfer from './exec-args/ExecArgInitiateTransfer'
+import ExecArgUpdateGridConfig from './exec-args/ExecArgUpdateGridConfig'
import ExecArgIncreaseAllowance from './exec-args/ExecArgIncreaseAllowance'
import ExecArgRemoveGridStrategy from './exec-args/ExecArgRemoveGridStrategy'
import ExecArgCreateSpotGridStrategy from './exec-args/ExecArgCreateSpotGridStrategy'
+import ExecArgCreatePerpGridStrategy from './exec-args/ExecArgCreatePerpGridStrategy'
import ExecArgCW20AdapterRedeemAndTransfer from './exec-args/ExecArgCW20AdapterRedeemAndTransfer'
@@ -30,9 +32,11 @@ export type ExecArgs =
| ExecArgCreateCampaign
| ExecArgSwapExactOutput
| ExecArgInitiateTransfer
+ | ExecArgUpdateGridConfig
| ExecArgIncreaseAllowance
| ExecArgRemoveGridStrategy
| ExecArgCreateSpotGridStrategy
+ | ExecArgCreatePerpGridStrategy
| ExecArgCW20AdapterRedeemAndTransfer
export type ExecPrivilegedArgs =
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCW20Send.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCW20Send.ts
index 24bc7109d..a26be8589 100644
--- a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCW20Send.ts
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCW20Send.ts
@@ -23,7 +23,7 @@ export declare namespace ExecArgCW20Send {
contractAddress: string
amount: string
/**
- * This object represents the underyling method
+ * This object represents the underlying method
* that we want to execute on the CW20 smart contract
*/
msg?: object
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreatePerpGridStrategy.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreatePerpGridStrategy.ts
new file mode 100644
index 000000000..30d996c7c
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreatePerpGridStrategy.ts
@@ -0,0 +1,85 @@
+import {
+ dataToExecData,
+ ExecArgBase,
+ ExecDataRepresentation,
+} from '../ExecArgBase'
+
+import { ExitType } from '../types'
+export declare namespace ExecArgCreatePerpGridStrategy {
+ export interface Params {
+ subaccountId: string
+ lowerBound: string
+ upperBound: string
+ levels: number
+ slippage?: string
+ stopLoss?: string
+ takeProfit?: string
+ marginRatio: string
+ }
+
+ export interface Data {
+ subaccount_id: string
+ bounds: [string, string]
+ slippage?: string
+ stop_loss?: {
+ exit_type: ExitType
+ exit_price: string
+ }
+ take_profit?: {
+ exit_type: ExitType
+ exit_price: string
+ }
+ levels: number
+ strategy_type: {
+ perpetual: {
+ margin_ratio: string
+ }
+ }
+ }
+}
+
+/**
+ * @category Contract Exec Arguments
+ */
+export default class ExecArgCreatePerpGridStrategy extends ExecArgBase<
+ ExecArgCreatePerpGridStrategy.Params,
+ ExecArgCreatePerpGridStrategy.Data
+> {
+ static fromJSON(
+ params: ExecArgCreatePerpGridStrategy.Params,
+ ): ExecArgCreatePerpGridStrategy {
+ return new ExecArgCreatePerpGridStrategy(params)
+ }
+
+ toData(): ExecArgCreatePerpGridStrategy.Data {
+ const { params } = this
+
+ return {
+ subaccount_id: params.subaccountId,
+ bounds: [params.lowerBound, params.upperBound],
+ levels: params.levels,
+ slippage: params.slippage,
+ strategy_type: {
+ perpetual: {
+ margin_ratio: params.marginRatio,
+ },
+ },
+ stop_loss: params.stopLoss
+ ? {
+ exit_type: ExitType.Default,
+ exit_price: params.stopLoss,
+ }
+ : undefined,
+ take_profit: params.takeProfit
+ ? {
+ exit_type: ExitType.Default,
+ exit_price: params.takeProfit,
+ }
+ : undefined,
+ }
+ }
+
+ toExecData(): ExecDataRepresentation {
+ return dataToExecData('create_strategy', this.toData())
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreateSpotGridStrategy.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreateSpotGridStrategy.ts
index 4691e38b1..f2075ab3c 100644
--- a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreateSpotGridStrategy.ts
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgCreateSpotGridStrategy.ts
@@ -4,6 +4,12 @@ import {
ExecDataRepresentation,
} from '../ExecArgBase'
+import {
+ ExitType,
+ ExitConfig,
+ StrategyType,
+ TrailingArithmetic,
+} from '../types'
export declare namespace ExecArgCreateSpotGridStrategy {
export interface Params {
subaccountId: string
@@ -11,9 +17,11 @@ export declare namespace ExecArgCreateSpotGridStrategy {
upperBound: string
levels: number
slippage?: string
- stopLoss?: string
- takeProfit?: string
- shouldExitWithQuoteOnly?: boolean
+ stopLoss?: ExitConfig
+ takeProfit?: ExitConfig
+ exitType?: ExitType
+ strategyType?: StrategyType
+ trailingArithmetic?: TrailingArithmetic
}
export interface Data {
@@ -21,9 +29,16 @@ export declare namespace ExecArgCreateSpotGridStrategy {
bounds: [string, string]
levels: number
slippage?: string
- stop_loss?: string
- take_profit?: string
- should_exit_with_quote_only: boolean
+ stop_loss?: {
+ exit_type: ExitType
+ exit_price: string
+ }
+ take_profit?: {
+ exit_type: ExitType
+ exit_price: string
+ }
+ exit_type?: ExitType
+ strategy_type?: StrategyType | TrailingArithmetic
}
}
@@ -48,9 +63,20 @@ export default class ExecArgCreateSpotGridStrategy extends ExecArgBase<
levels: params.levels,
bounds: [params.lowerBound, params.upperBound],
slippage: params.slippage,
- stop_loss: params.stopLoss,
- take_profit: params.takeProfit,
- should_exit_with_quote_only: !!params.shouldExitWithQuoteOnly,
+ exit_type: params.exitType,
+ stop_loss: params.stopLoss
+ ? {
+ exit_type: params.stopLoss.exitType,
+ exit_price: params.stopLoss.exitPrice,
+ }
+ : undefined,
+ take_profit: params.takeProfit
+ ? {
+ exit_type: params.takeProfit.exitType,
+ exit_price: params.takeProfit.exitPrice,
+ }
+ : undefined,
+ strategy_type: params.trailingArithmetic ?? params.strategyType,
}
}
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgRemoveGridStrategy.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgRemoveGridStrategy.ts
index e3a384a36..dd718886f 100644
--- a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgRemoveGridStrategy.ts
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgRemoveGridStrategy.ts
@@ -5,9 +5,13 @@ import {
} from '../ExecArgBase'
export declare namespace ExecArgRemoveGridStrategy {
- export interface Params {}
+ export interface Params {
+ subaccountId?: string
+ }
- export interface Data {}
+ export interface Data {
+ subaccount_id?: string
+ }
}
/**
@@ -24,9 +28,11 @@ export default class ExecArgRemoveGridStrategy extends ExecArgBase<
}
toData(): ExecArgRemoveGridStrategy.Data {
- // const { params } = this
+ const { params } = this
- return {}
+ return {
+ subaccount_id: params.subaccountId,
+ }
}
toExecData(): ExecDataRepresentation {
diff --git a/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgUpdateGridConfig.ts b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgUpdateGridConfig.ts
new file mode 100644
index 000000000..930f821b6
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/wasm/exec-args/ExecArgUpdateGridConfig.ts
@@ -0,0 +1,47 @@
+import {
+ dataToExecData,
+ ExecArgBase,
+ ExecDataRepresentation,
+} from '../ExecArgBase'
+
+export declare namespace ExecArgUpdateGridConfig {
+ export interface Params {
+ maximumOrderValueDeviation?: string
+ maximumRebalanceRetries?: number
+ slippage?: string
+ }
+
+ export interface Data {
+ maximum_order_value_deviation?: string
+ maximum_rebalance_retries?: number
+ slippage?: string
+ }
+}
+
+/**
+ * @category Contract Exec Arguments
+ */
+export default class ExecArgUpdateGridConfig extends ExecArgBase<
+ ExecArgUpdateGridConfig.Params,
+ ExecArgUpdateGridConfig.Data
+> {
+ static fromJSON(
+ params: ExecArgUpdateGridConfig.Params,
+ ): ExecArgUpdateGridConfig {
+ return new ExecArgUpdateGridConfig(params)
+ }
+
+ toData(): ExecArgUpdateGridConfig.Data {
+ const { params } = this
+
+ return {
+ maximum_order_value_deviation: params.maximumOrderValueDeviation,
+ maximum_rebalance_retries: params.maximumRebalanceRetries,
+ slippage: params.slippage,
+ }
+ }
+
+ toExecData(): ExecDataRepresentation {
+ return dataToExecData('update_config', this.toData())
+ }
+}
diff --git a/packages/sdk-ts/src/core/modules/wasm/index.ts b/packages/sdk-ts/src/core/modules/wasm/index.ts
index bc96f3422..320347a6e 100644
--- a/packages/sdk-ts/src/core/modules/wasm/index.ts
+++ b/packages/sdk-ts/src/core/modules/wasm/index.ts
@@ -8,9 +8,11 @@ import ExecArgDepositTokens from './exec-args/ExecArgDepositTokens'
import ExecArgCreateCampaign from './exec-args/ExecArgCreateCampaign'
import ExecArgSwapExactOutput from './exec-args/ExecArgSwapExactOutput'
import ExecArgInitiateTransfer from './exec-args/ExecArgInitiateTransfer'
+import ExecArgUpdateGridConfig from './exec-args/ExecArgUpdateGridConfig'
import ExecArgIncreaseAllowance from './exec-args/ExecArgIncreaseAllowance'
import ExecArgRemoveGridStrategy from './exec-args/ExecArgRemoveGridStrategy'
import ExecArgCreateSpotGridStrategy from './exec-args/ExecArgCreateSpotGridStrategy'
+import ExecArgCreatePerpGridStrategy from './exec-args/ExecArgCreatePerpGridStrategy'
import ExecArgCW20AdapterRedeemAndTransfer from './exec-args/ExecArgCW20AdapterRedeemAndTransfer'
import MsgStoreCode from './msgs/MsgStoreCode'
@@ -26,6 +28,7 @@ import ExecPrivilegedArgVaultSubscribe from './exec-priv-args/ExecPrivilegedArgV
import ExecPrivilegedArgOffChainVaultRedeem from './exec-priv-args/ExecPrivilegedArgOffChainVaultRedeem'
import ExecPrivilegedArgOffChainVaultSubscribe from './exec-priv-args/ExecPrivilegedArgOffChainVaultSubscribe'
+export * from './types'
export * from './exec-args'
export {
@@ -39,9 +42,11 @@ export {
ExecArgCreateCampaign,
ExecArgSwapExactOutput,
ExecArgInitiateTransfer,
+ ExecArgUpdateGridConfig,
ExecArgIncreaseAllowance,
ExecArgRemoveGridStrategy,
ExecArgCreateSpotGridStrategy,
+ ExecArgCreatePerpGridStrategy,
ExecArgCW20AdapterRedeemAndTransfer,
//
MsgStoreCode,
diff --git a/packages/sdk-ts/src/core/modules/wasm/types.ts b/packages/sdk-ts/src/core/modules/wasm/types.ts
new file mode 100644
index 000000000..fa2940cda
--- /dev/null
+++ b/packages/sdk-ts/src/core/modules/wasm/types.ts
@@ -0,0 +1,22 @@
+export enum ExitType {
+ Default = 'default',
+ Quote = 'quote',
+ Base = 'base',
+}
+
+export enum StrategyType {
+ Arithmetic = 'arithmetic',
+ Geometric = 'geometric',
+}
+
+export type TrailingArithmetic = {
+ trailing_arithmetic: {
+ lower_trailing_bound: string
+ upper_trailing_bound: string
+ }
+}
+
+export type ExitConfig = {
+ exitType: ExitType
+ exitPrice: string
+}
diff --git a/packages/sdk-ts/src/core/stargate/SigningStargateClient.ts b/packages/sdk-ts/src/core/stargate/SigningStargateClient.ts
index 274934045..97d09a1c2 100644
--- a/packages/sdk-ts/src/core/stargate/SigningStargateClient.ts
+++ b/packages/sdk-ts/src/core/stargate/SigningStargateClient.ts
@@ -3,7 +3,6 @@ import {
makeSignDoc as makeSignDocAmino,
StdFee,
} from '@cosmjs/amino'
-import { fromBase64 } from '@cosmjs/encoding'
import { Int53, Uint53 } from '@cosmjs/math'
import {
EncodeObject,
@@ -17,8 +16,8 @@ import {
} from '@cosmjs/proto-signing'
import {
HttpEndpoint,
- Tendermint34Client,
- TendermintClient,
+ Tendermint37Client,
+ CometClient,
} from '@cosmjs/tendermint-rpc'
import { assert, assertDefined } from '@cosmjs/utils'
import { Coin } from 'cosmjs-types/cosmos/base/v1beta1/coin'
@@ -31,7 +30,6 @@ import { SignMode } from 'cosmjs-types/cosmos/tx/signing/v1beta1/signing'
import { TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx'
import { MsgTransfer } from 'cosmjs-types/ibc/applications/transfer/v1/tx'
import { Height } from 'cosmjs-types/ibc/core/client/v1/client'
-import Long from 'long'
import { AminoConverters, AminoTypes } from '@cosmjs/stargate'
import { calculateFee, GasPrice } from '@cosmjs/stargate'
import {
@@ -111,16 +109,16 @@ export class SigningStargateClient extends StargateClient {
signer: OfflineSigner,
options: SigningStargateClientOptions = {},
): Promise {
- const tmClient = await Tendermint34Client.connect(endpoint)
+ const tmClient = await Tendermint37Client.connect(endpoint)
return SigningStargateClient.createWithSigner(tmClient, signer, options)
}
/**
* Creates an instance from a manually created Tendermint client.
- * Use this to use `Tendermint37Client` instead of `Tendermint34Client`.
+ * Use this to use `Tendermint37Client` instead of `Tendermint37Client`.
*/
public static async createWithSigner(
- tmClient: TendermintClient,
+ tmClient: CometClient,
signer: OfflineSigner,
options: SigningStargateClientOptions = {},
): Promise {
@@ -144,7 +142,7 @@ export class SigningStargateClient extends StargateClient {
}
protected constructor(
- tmClient: TendermintClient | undefined,
+ tmClient: CometClient | undefined,
signer: OfflineSigner,
options: SigningStargateClientOptions,
) {
@@ -268,7 +266,7 @@ export class SigningStargateClient extends StargateClient {
memo = '',
): Promise {
const timeoutTimestampNanoseconds = timeoutTimestamp
- ? Long.fromNumber(timeoutTimestamp).multiply(1_000_000_000)
+ ? BigInt(timeoutTimestamp) * BigInt(1_000_000_000)
: undefined
const transferMsg: MsgTransferEncodeObject = {
typeUrl: '/ibc.applications.transfer.v1.MsgTransfer',
@@ -409,7 +407,7 @@ export class SigningStargateClient extends StargateClient {
return TxRaw.fromPartial({
bodyBytes: signedTxBodyBytes,
authInfoBytes: signedAuthInfoBytes,
- signatures: [fromBase64(signature.signature)],
+ signatures: [Buffer.from(signature.signature, 'base64')],
})
}
@@ -466,7 +464,7 @@ export class SigningStargateClient extends StargateClient {
return TxRaw.fromPartial({
bodyBytes: signed.bodyBytes,
authInfoBytes: signed.authInfoBytes,
- signatures: [fromBase64(signature.signature)],
+ signatures: [Buffer.from(signature.signature, 'base64')],
})
}
}
diff --git a/packages/sdk-ts/src/core/stargate/StargateClient.ts b/packages/sdk-ts/src/core/stargate/StargateClient.ts
index a6840de0a..c1099d793 100644
--- a/packages/sdk-ts/src/core/stargate/StargateClient.ts
+++ b/packages/sdk-ts/src/core/stargate/StargateClient.ts
@@ -3,7 +3,7 @@ import {
StargateClient as CosmjsStargateClient,
accountFromAny,
} from '@cosmjs/stargate'
-import { injectiveAccountParser } from '../accounts'
+import { accountParser as injectiveAccountParser } from '../accounts/AccountParser'
export class StargateClient extends CosmjsStargateClient {
public async getAccount(searchAddress: string): Promise {
diff --git a/packages/sdk-ts/src/core/utils/Denom/DenomClient.spec.ts b/packages/sdk-ts/src/core/utils/Denom/DenomClient.spec.ts
deleted file mode 100644
index f28841a6f..000000000
--- a/packages/sdk-ts/src/core/utils/Denom/DenomClient.spec.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Network } from '@injectivelabs/networks'
-import { DenomClient } from './DenomClient'
-import { INJ_DENOM } from '@injectivelabs/utils'
-
-describe('DenomClient', () => {
- const denomClient = new DenomClient(Network.Mainnet)
-
- test('works for denom within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(INJ_DENOM)
-
- expect(token).toBeDefined()
- })
-
- test('works for symbol within token-metadata package', async () => {
- const token = await denomClient.getDenomToken('INJ')
-
- expect(token).toBeDefined()
- })
-
- test('works for address within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for peggy denom within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- 'peggy0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for factory denom within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- 'factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for CW20 within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- 'inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for ERC20 within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for IBC within token-metadata package', async () => {
- const token = await denomClient.getDenomToken(
- 'ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
- )
-
- expect(token).toBeDefined()
- })
-
- test('works for base denom within token-metadata package', async () => {
- const token = await denomClient.getDenomToken('uatom')
-
- expect(token).toBeDefined()
- })
-})
diff --git a/packages/sdk-ts/src/core/utils/Denom/DenomClient.ts b/packages/sdk-ts/src/core/utils/Denom/DenomClient.ts
deleted file mode 100644
index fd01f9ac3..000000000
--- a/packages/sdk-ts/src/core/utils/Denom/DenomClient.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import {
- Token,
- TokenInfo,
- TokenMeta,
- TokenFactory,
- TokenMetaUtils,
- TokenMetaUtilsFactory,
-} from '@injectivelabs/token-metadata'
-import { Network } from '@injectivelabs/networks'
-
-/**
- * This client can be used to fetch token from the existing token-metadata
- * package.
- *
- * If you want to have a mode advanced version of the DenomClient
- * (including the ability to fetch metadata from an API)
- * use the DenomClientAsync from the @injectivelabs/sdk-ui-ts package
- *
- * @category Utility Classes
- */
-export class DenomClient {
- protected tokenFactory: TokenFactory
-
- protected tokenMetaUtils: TokenMetaUtils
-
- constructor(network: Network = Network.Mainnet) {
- this.tokenFactory = TokenFactory.make(network)
- this.tokenMetaUtils = TokenMetaUtilsFactory.make(network)
- }
-
- getDenomTokenInfo(denom: string): TokenInfo | undefined {
- return this.tokenFactory.toTokenInfo(denom)
- }
-
- getDenomToken(denom: string): Token | undefined {
- return this.tokenFactory.toToken(denom)
- }
-
- getDenomsToken(denoms: string[]): Array {
- return denoms.map((denom) => this.getDenomToken(denom))
- }
-
- getDenomsTokenInfo(denoms: string[]): Array {
- return denoms.map((denom) => this.getDenomTokenInfo(denom))
- }
-
- getTokenMetaDataBySymbol(symbol: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaBySymbol(symbol)
- }
-
- getTokenMetaDataByAddress(address: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaByAddress(address)
- }
-
- getTokenMetaDataByName(name: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaByName(name)
- }
-
- getCoinGeckoId(denom: string): string {
- return this.tokenMetaUtils.getCoinGeckoIdFromSymbol(denom)
- }
-}
diff --git a/packages/sdk-ts/src/core/utils/Denom/DenomClientSync.ts b/packages/sdk-ts/src/core/utils/Denom/DenomClientSync.ts
deleted file mode 100644
index f66afca77..000000000
--- a/packages/sdk-ts/src/core/utils/Denom/DenomClientSync.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import {
- Token,
- TokenInfo,
- TokenMeta,
- TokenFactory,
- TokenMetaUtils,
- TokenMetaUtilsFactory,
-} from '@injectivelabs/token-metadata'
-import { Network } from '@injectivelabs/networks'
-
-/**
- * This client can be used to fetch token
- * denoms in a fully sync way (without API calls)
- *
- * @category Utility Classes
- *
- * @deprecated use DenomClient instead (they are the same)
- */
-export class DenomClientSync {
- protected tokenFactory: TokenFactory
-
- protected tokenMetaUtils: TokenMetaUtils
-
- constructor(network: Network = Network.Mainnet) {
- this.tokenFactory = TokenFactory.make(network)
- this.tokenMetaUtils = TokenMetaUtilsFactory.make(network)
- }
-
- getDenomTokenInfo(denom: string): TokenInfo | undefined {
- return this.tokenFactory.toTokenInfo(denom)
- }
-
- getDenomToken(denom: string): Token | undefined {
- return this.tokenFactory.toToken(denom)
- }
-
- getDenomsToken(denoms: string[]): Array {
- return denoms.map((denom) => this.getDenomToken(denom))
- }
-
- getDenomsTokenInfo(denoms: string[]): Array {
- return denoms.map((denom) => this.getDenomTokenInfo(denom))
- }
-
- getTokenMetaDataBySymbol(symbol: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaBySymbol(symbol)
- }
-
- getTokenMetaDataByAddress(address: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaByAddress(address)
- }
-
- getTokenMetaDataByName(name: string): TokenMeta | undefined {
- return this.tokenMetaUtils.getMetaByName(name)
- }
-
- getCoinGeckoId(denom: string): string {
- return this.tokenMetaUtils.getCoinGeckoIdFromSymbol(denom)
- }
-}
diff --git a/packages/sdk-ts/src/core/utils/Denom/index.ts b/packages/sdk-ts/src/core/utils/Denom/index.ts
deleted file mode 100644
index 81417c86f..000000000
--- a/packages/sdk-ts/src/core/utils/Denom/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './DenomClientSync'
-export * from './DenomClient'
diff --git a/packages/sdk-ts/src/core/utils/index.ts b/packages/sdk-ts/src/core/utils/index.ts
index 4799e0cbc..547dc23c3 100644
--- a/packages/sdk-ts/src/core/utils/index.ts
+++ b/packages/sdk-ts/src/core/utils/index.ts
@@ -1,2 +1 @@
-export * from './Denom'
export * from './coins'
diff --git a/packages/sdk-ts/src/exports.ts b/packages/sdk-ts/src/exports.ts
new file mode 100644
index 000000000..7724f45c4
--- /dev/null
+++ b/packages/sdk-ts/src/exports.ts
@@ -0,0 +1,6 @@
+import MsgTransferCosmjs from './core/modules/ibc/msgs/MsgTransferCosmjs'
+import { accountParser as injectiveAccountParser } from './core/accounts/AccountParser'
+
+export * from './core/accounts/signers'
+export * from './core/stargate'
+export { MsgTransferCosmjs, injectiveAccountParser }
diff --git a/packages/sdk-ts/src/index.ts b/packages/sdk-ts/src/index.ts
index c807fafbe..81d16d1c3 100644
--- a/packages/sdk-ts/src/index.ts
+++ b/packages/sdk-ts/src/index.ts
@@ -1,4 +1,5 @@
export * from './core'
export * from './client'
export * from './utils'
+export * from './service'
export * from './types'
diff --git a/packages/sdk-ts/src/service/TokenFactoryStatic.ts b/packages/sdk-ts/src/service/TokenFactoryStatic.ts
new file mode 100644
index 000000000..60dcc2233
--- /dev/null
+++ b/packages/sdk-ts/src/service/TokenFactoryStatic.ts
@@ -0,0 +1,78 @@
+import {
+ TokenType,
+ TokenSource,
+ TokenStatic,
+ TokenVerification,
+} from './../types'
+
+export class TokenFactoryStatic {
+ public registry: TokenStatic[]
+ public tokensByDenom: Record
+ public tokensBySymbol: Record
+
+ constructor(registry: TokenStatic[]) {
+ this.registry = registry
+ this.tokensByDenom = registry.reduce((list, token) => {
+ const denom = token.denom.toLowerCase()
+
+ if (list[denom]) {
+ return list
+ }
+
+ return { ...list, [denom]: token }
+ }, {} as Record)
+
+ this.tokensBySymbol = registry.reduce((list, token) => {
+ const symbol = token.symbol.toLowerCase()
+
+ return { ...list, [symbol]: [...(list[symbol] || []), token] }
+ }, {} as Record)
+ }
+
+ toToken(denom: string): TokenStatic | undefined {
+ return this.getMetaByDenomOrAddress(denom) || this.getMetaBySymbol(denom)
+ }
+
+ getMetaBySymbol(
+ symbol: string,
+ {
+ type,
+ source,
+ verification,
+ }: {
+ source?: TokenSource
+ type?: TokenType
+ verification?: TokenVerification
+ } = {},
+ ): TokenStatic | undefined {
+ const tokensBySymbol = this.tokensBySymbol[symbol.toLowerCase()]
+
+ if (!tokensBySymbol) {
+ return
+ }
+
+ const token = tokensBySymbol.find((token: TokenStatic) => {
+ const isType = !type || token.tokenType === type
+ const isSource = !source || token.source === source
+ const isVerification =
+ !verification || token.tokenVerification === verification
+
+ return isType && isSource && isVerification
+ })
+
+ const sortedTokens = tokensBySymbol.sort((t1, t2) => {
+ const t1IsVerified = t1.tokenVerification === TokenVerification.Verified
+ const t2IsVerified = t2.tokenVerification === TokenVerification.Verified
+
+ return t1IsVerified && !t2IsVerified ? -1 : 1
+ })
+
+ return token || sortedTokens[0]
+ }
+
+ getMetaByDenomOrAddress(denom: string): TokenStatic | undefined {
+ const formattedDenom = denom.toLowerCase()
+
+ return this.tokensByDenom[formattedDenom]
+ }
+}
diff --git a/packages/sdk-ts/src/service/TokenPrice.ts b/packages/sdk-ts/src/service/TokenPrice.ts
new file mode 100644
index 000000000..349ee3048
--- /dev/null
+++ b/packages/sdk-ts/src/service/TokenPrice.ts
@@ -0,0 +1,60 @@
+import { HttpRestClient } from '@injectivelabs/utils'
+import { Network, isDevnet, isTestnet } from '@injectivelabs/networks'
+
+interface TokenStaticWithPrice {
+ denom: string
+ coingecko_id: string
+ price: {
+ price: number
+ metadata: {
+ source: string
+ market_id: string
+ market_price: number
+ height: number
+ }
+ }
+}
+
+const ASSET_PRICE_SERVICE_URL =
+ 'https://k8s.mainnet.asset.injective.network/asset-price/v1'
+const TESTNET_ASSET_PRICE_SERVICE_URL =
+ 'https://k8s.testnet.asset.injective.network/asset-price/v1'
+const DEVNET_ASSET_PRICE_SERVICE_URL =
+ 'https://devnet.asset.injective.dev/asset-price/v1'
+
+const getAssetMicroserviceEndpoint = (network: Network = Network.Mainnet) => {
+ if (isTestnet(network)) {
+ return TESTNET_ASSET_PRICE_SERVICE_URL
+ }
+
+ if (isDevnet(network)) {
+ return DEVNET_ASSET_PRICE_SERVICE_URL
+ }
+
+ return ASSET_PRICE_SERVICE_URL
+}
+
+export class TokenPrice {
+ private restClient: HttpRestClient
+
+ constructor(network: Network) {
+ this.restClient = new HttpRestClient(getAssetMicroserviceEndpoint(network))
+ }
+
+ async fetchUsdTokensPriceMap() {
+ const { data } = (await this.restClient.get('denoms?withPrice=true')) as {
+ data: Record
+ }
+
+ const tokenPriceMap: Record = Object.values(data).reduce(
+ (prices, tokenWithPrice) => {
+ const id = tokenWithPrice.coingecko_id || tokenWithPrice.denom
+
+ return { ...prices, [id.toLowerCase()]: tokenWithPrice.price.price }
+ },
+ {},
+ )
+
+ return tokenPriceMap
+ }
+}
diff --git a/packages/sdk-ts/src/service/index.ts b/packages/sdk-ts/src/service/index.ts
new file mode 100644
index 000000000..b72686000
--- /dev/null
+++ b/packages/sdk-ts/src/service/index.ts
@@ -0,0 +1,2 @@
+export * from './TokenPrice'
+export * from './TokenFactoryStatic'
diff --git a/packages/sdk-ts/src/types/index.ts b/packages/sdk-ts/src/types/index.ts
index ab762e71f..dc658c44b 100644
--- a/packages/sdk-ts/src/types/index.ts
+++ b/packages/sdk-ts/src/types/index.ts
@@ -1,9 +1,10 @@
import { DirectSignResponse } from '@cosmjs/proto-signing'
import {
- CosmosBaseV1Beta1Coin,
CosmosTxV1Beta1Tx,
+ CosmosBaseV1Beta1Coin,
} from '@injectivelabs/core-proto-ts'
+export * from './token'
export * from './exchange'
export * from './pagination'
diff --git a/packages/sdk-ts/src/types/token.ts b/packages/sdk-ts/src/types/token.ts
new file mode 100644
index 000000000..b3bcd3149
--- /dev/null
+++ b/packages/sdk-ts/src/types/token.ts
@@ -0,0 +1,63 @@
+export enum TokenType {
+ Ibc = 'ibc',
+ Cw20 = 'cw20',
+ Spl = 'spl',
+ Erc20 = 'erc20',
+ Evm = 'evm',
+ Native = 'native',
+ Symbol = 'symbol',
+ TokenFactory = 'tokenFactory',
+ InsuranceFund = 'insuranceFund',
+ Unknown = 'unknown',
+}
+
+export enum TokenVerification {
+ Verified = 'verified' /** verified on token-metadata package */,
+ Submitted = 'submitted' /** submitted on token-metadata package but not verified */,
+ Internal = 'internal' /** verified from on-chain data */,
+ External = 'external' /** verified on external source */,
+ Unverified = 'unverified' /** unverified on any source */,
+}
+
+export enum TokenSource {
+ Aptos = 'aptos',
+ Solana = 'solana',
+ Cosmos = 'cosmos',
+ Ethereum = 'ethereum',
+ EthereumWh = 'ethereum-wormhole',
+ Polygon = 'polygon',
+ Klaytn = 'klaytn',
+ Arbitrum = 'arbitrum',
+ Sui = 'sui',
+ Ibc = 'ibc',
+ BinanceSmartChain = 'binance-smart-chain',
+ Axelar = 'axelar',
+}
+
+export interface TokenStatic {
+ name: string
+ logo: string
+ symbol: string
+ decimals: number
+ coinGeckoId: string
+ denom: string
+ address: string
+ tokenType: TokenType
+ tokenVerification: TokenVerification
+ isNative?: boolean
+ source?: TokenSource
+ hash?: string
+ path?: string
+ channelId?: string
+ baseDenom?: string
+ externalLogo?: string
+}
+
+export interface TokenMeta {
+ name: string
+ logo: string
+ symbol: string
+ decimals: number
+ tokenType: TokenType
+ coinGeckoId: string
+}
diff --git a/packages/sdk-ts/src/utils/constants.ts b/packages/sdk-ts/src/utils/constants.ts
index 615e6473a..f0821c084 100644
--- a/packages/sdk-ts/src/utils/constants.ts
+++ b/packages/sdk-ts/src/utils/constants.ts
@@ -1,4 +1,3 @@
-import { Network } from '@injectivelabs/networks'
import { DEFAULT_STD_FEE, DEFAULT_STD_FEE_BY_DENOM } from '@injectivelabs/utils'
export const BECH32_PUBKEY_ACC_PREFIX = 'injpub'
@@ -11,99 +10,4 @@ export const BECH32_ADDR_CONS_PREFIX = 'injvalcons'
export const DEFAULT_DERIVATION_PATH = "m/44'/60'/0'/0/0"
-/** @deprecated - use the one in @injectivelabs/networks */
-export const CW20_ADAPTER_CONTRACT_BY_NETWORK = {
- [Network.Mainnet]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.MainnetLB]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.MainnetK8s]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.MainnetSentry]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.Public]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.Staging]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.Internal]: 'inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk',
- [Network.Testnet]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.TestnetK8s]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.TestnetSentry]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.TestnetOld]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.Devnet]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.Devnet1]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.Devnet2]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
- [Network.Local]: 'inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6',
-}
-
-/** @deprecated - use the one in @injectivelabs/networks */
-export const CW20_SWAP_CONTRACT_BY_NETWORK = {
- [Network.Mainnet]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.MainnetLB]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.MainnetK8s]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.MainnetSentry]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Public]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Staging]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Internal]: 'inj1psk3468yr9teahgz73amwvpfjehnhczvkrhhqx',
- [Network.Testnet]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
- [Network.TestnetK8s]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
- [Network.TestnetSentry]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
- [Network.TestnetOld]: 'inj14d7h5j6ddq6pqppl65z24w7xrtmpcrqjxj8d43',
- [Network.Devnet]: 'inj177yh38g3ctu7cemxpa3c2kvwh2yslfxfmfa66h',
- [Network.Devnet1]: 'inj177yh38g3ctu7cemxpa3c2kvwh2yslfxfmfa66h',
- [Network.Devnet2]: 'inj177yh38g3ctu7cemxpa3c2kvwh2yslfxfmfa66h',
- [Network.Local]: 'inj177yh38g3ctu7cemxpa3c2kvwh2yslfxfmfa66h',
-}
-
-/** @deprecated - use the one in @injectivelabs/networks */
-export const INCENTIVES_CONTRACT_BY_NETWORK = {
- [Network.Mainnet]: '',
- [Network.MainnetLB]: '',
- [Network.MainnetK8s]: '',
- [Network.MainnetSentry]: '',
- [Network.Public]: '',
- [Network.Staging]: '',
- [Network.Internal]: '',
- [Network.Testnet]: 'inj16twru668nsl7tqzahxd9q033swhr6a5xuslpkt',
- [Network.TestnetK8s]: 'inj16twru668nsl7tqzahxd9q033swhr6a5xuslpkt',
- [Network.TestnetSentry]: 'inj16twru668nsl7tqzahxd9q033swhr6a5xuslpkt',
- [Network.TestnetOld]: 'inj16twru668nsl7tqzahxd9q033swhr6a5xuslpkt',
- [Network.Devnet]: '',
- [Network.Devnet1]: '',
- [Network.Devnet2]: '',
- [Network.Local]: '',
-}
-
-/** @deprecated - use the one in @injectivelabs/networks */
-export const INJ_NAME_REGISTRY_CONTRACT_BY_NETWORK = {
- [Network.Mainnet]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.MainnetLB]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.MainnetK8s]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.MainnetSentry]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.Public]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.Staging]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.Internal]: 'inj1hm8vs8sr2h9nk0x66vctfs528wrp6k3gtgg275',
- [Network.Testnet]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.TestnetK8s]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.TestnetSentry]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.TestnetOld]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.Devnet]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.Devnet1]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.Devnet2]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
- [Network.Local]: 'inj1aw59rkpd9afp2ws6rx23nz5mrvq8dlckeslwfa',
-}
-
-/** @deprecated - use the one in @injectivelabs/networks */
-export const INJ_NAME_REVERSE_RESOLVER_CONTRACT_BY_NETWORK = {
- [Network.Mainnet]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.MainnetLB]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.MainnetK8s]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.MainnetSentry]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.Public]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.Staging]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.Internal]: 'inj1x9m0hceug9qylcyrrtwqtytslv2jrph433thgu',
- [Network.Testnet]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.TestnetK8s]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.TestnetSentry]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.TestnetOld]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.Devnet]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.Devnet1]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.Devnet2]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
- [Network.Local]: 'inj1knf6puyscuuqqhgqglskfc0k99d4885qw5uv7v',
-}
-
export { DEFAULT_STD_FEE, DEFAULT_STD_FEE_BY_DENOM }
diff --git a/packages/sdk-ts/src/utils/helpers.ts b/packages/sdk-ts/src/utils/helpers.ts
index a23c44dd2..4e8ac4b37 100644
--- a/packages/sdk-ts/src/utils/helpers.ts
+++ b/packages/sdk-ts/src/utils/helpers.ts
@@ -154,3 +154,23 @@ export const getErrorMessage = (error: any, endpoint: string): string => {
? error.response.data.message || error.response.data
: error.response.statusText
}
+
+/**
+ * Converts value to it's number representation
+ */
+export const hexToNumber = (value: string): number => {
+ const [negative, hexValue] = value.startsWith('-')
+ ? [true, value.slice(1)]
+ : [false, value]
+ const num = BigInt(hexValue)
+
+ if (num > Number.MAX_SAFE_INTEGER) {
+ return Number(negative ? -num : num)
+ }
+
+ if (num < Number.MIN_SAFE_INTEGER) {
+ return Number(num)
+ }
+
+ return negative ? -1 * Number(num) : Number(num)
+}
diff --git a/packages/sdk-ts/src/utils/index.ts b/packages/sdk-ts/src/utils/index.ts
index 9e35f6678..2523eaa2f 100644
--- a/packages/sdk-ts/src/utils/index.ts
+++ b/packages/sdk-ts/src/utils/index.ts
@@ -1,13 +1,13 @@
-export * from './constants'
-export * from './helpers'
-export * from './numbers'
-export * from './markets'
-export * from './pagination'
-export * from './address'
export * from './utf8'
-export * from './crypto'
export * from './buff'
export * from './time'
export * from './msgs'
-export * from './transaction'
export * from './grpc'
+export * from './crypto'
+export * from './helpers'
+export * from './numbers'
+export * from './markets'
+export * from './address'
+export * from './constants'
+export * from './pagination'
+export * from './transaction'
diff --git a/packages/sdk-ts/src/utils/msgs.ts b/packages/sdk-ts/src/utils/msgs.ts
index f3d0b3d8c..1b9221a74 100644
--- a/packages/sdk-ts/src/utils/msgs.ts
+++ b/packages/sdk-ts/src/utils/msgs.ts
@@ -20,7 +20,7 @@ export const getGasPriceBasedOnMessage = (msgs: Msgs[]): number => {
if (messageType.includes('MsgExecuteContract')) {
return new BigNumberInBase(DEFAULT_GAS_LIMIT)
- .times(2.5)
+ .times(3)
.times(messages.length)
.decimalPlaces(0)
.toNumber()
@@ -41,6 +41,13 @@ export const getGasPriceBasedOnMessage = (msgs: Msgs[]): number => {
.toNumber()
}
+ if (messageType.includes('authz')) {
+ return new BigNumberInBase(DEFAULT_EXCHANGE_LIMIT)
+ .times(messages.length)
+ .decimalPlaces(0)
+ .toNumber()
+ }
+
if (
messageType.includes('gov') &&
(messageType.includes('MsgDeposit') ||
diff --git a/packages/sdk-ts/tsconfig.build.esm.json b/packages/sdk-ts/tsconfig.build.esm.json
index 9f316c4da..8bccca77a 100644
--- a/packages/sdk-ts/tsconfig.build.esm.json
+++ b/packages/sdk-ts/tsconfig.build.esm.json
@@ -25,9 +25,6 @@
},
{
"path": "../networks/tsconfig.build.esm.json"
- },
- {
- "path": "../token-metadata/tsconfig.build.esm.json"
- },
+ }
],
}
diff --git a/packages/sdk-ts/tsconfig.build.json b/packages/sdk-ts/tsconfig.build.json
index 29f1235f3..76989ef1d 100644
--- a/packages/sdk-ts/tsconfig.build.json
+++ b/packages/sdk-ts/tsconfig.build.json
@@ -6,7 +6,7 @@
"tsBuildInfoFile": "../../.build-cache/sdk-ts.tsbuildinfo",
},
"include": [
- "./src/**/*.ts",
+ "./src/**/*.ts"
],
"exclude": [
"./src/**/*.spec.ts",
@@ -27,9 +27,6 @@
},
{
"path": "../networks/tsconfig.build.json"
- },
- {
- "path": "../token-metadata/tsconfig.build.json"
- },
+ }
],
}
diff --git a/packages/sdk-ts/tsconfig.json b/packages/sdk-ts/tsconfig.json
index b8b9c7b2e..cf4a0af6f 100644
--- a/packages/sdk-ts/tsconfig.json
+++ b/packages/sdk-ts/tsconfig.json
@@ -16,8 +16,5 @@
{
"path": "../networks/tsconfig.json"
},
- {
- "path": "../token-metadata/tsconfig.json"
- },
]
}
diff --git a/packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json b/packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json
deleted file mode 100644
index 79e1feec1..000000000
--- a/packages/sdk-ui-ts/src/services/ibc/ibcTokenMetadata.json
+++ /dev/null
@@ -1,3384 +0,0 @@
-[
- {
- "name": "Injective",
- "denom": "inj",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/inj.png",
- "symbol": "INJ",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "inj",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "INJ",
- "baseDenom": "INJ",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified INJ",
- "denom": "factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/ampinj.png",
- "symbol": "ampINJ",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampINJ",
- "baseDenom": "ampINJ",
- "isNative": false
- }
- },
- {
- "name": "Osmosis",
- "denom": "ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
- "symbol": "OSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OSMO",
- "baseDenom": "OSMO",
- "isNative": false
- }
- },
- {
- "name": "Ion DAO",
- "denom": "ibc/1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ion.png",
- "symbol": "ION",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ION",
- "baseDenom": "ION",
- "isNative": false
- }
- },
- {
- "name": "IBC Index",
- "denom": "ibc/491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/ibcx.svg",
- "symbol": "IBCX",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "IBCX",
- "baseDenom": "IBCX",
- "isNative": false
- }
- },
- {
- "name": "Staked IBCX",
- "denom": "ibc/0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/stibcx.png",
- "symbol": "stIBCX",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stIBCX",
- "baseDenom": "stIBCX",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified OSMO",
- "denom": "ibc/012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/amposmo.png",
- "symbol": "ampOSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampOSMO",
- "baseDenom": "ampOSMO",
- "isNative": false
- }
- },
- {
- "name": "CDT Stablecoin",
- "denom": "ibc/25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/CDT.svg",
- "symbol": "CDT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CDT",
- "baseDenom": "CDT",
- "isNative": false
- }
- },
- {
- "name": "Membrane",
- "denom": "ibc/7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/MBRN.svg",
- "symbol": "MBRN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "MBRN",
- "baseDenom": "MBRN",
- "isNative": false
- }
- },
- {
- "name": "OSMO Squared",
- "denom": "ibc/AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqosmo.svg",
- "symbol": "sqOSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "sqOSMO",
- "baseDenom": "sqOSMO",
- "isNative": false
- }
- },
- {
- "name": "BTC Squared",
- "denom": "ibc/81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqbtc.svg",
- "symbol": "sqBTC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "sqBTC",
- "baseDenom": "sqBTC",
- "isNative": false
- }
- },
- {
- "name": "ATOM Squared",
- "denom": "ibc/C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/sqatom.svg",
- "symbol": "sqATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "sqATOM",
- "baseDenom": "sqATOM",
- "isNative": false
- }
- },
- {
- "name": "Levana",
- "denom": "ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/levana.png",
- "symbol": "LVN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "LVN",
- "baseDenom": "LVN",
- "isNative": false
- }
- },
- {
- "name": "milkTIA",
- "denom": "ibc/C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/milktia.png",
- "symbol": "milkTIA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "milkTIA",
- "baseDenom": "milkTIA",
- "isNative": false
- }
- },
- {
- "name": "Stride",
- "denom": "ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/strd.png",
- "symbol": "STRD",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "STRD",
- "baseDenom": "STRD",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked ATOM",
- "denom": "ibc/A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/statom.png",
- "symbol": "stATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stATOM",
- "baseDenom": "stATOM",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked STARS",
- "denom": "ibc/DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/ststars.png",
- "symbol": "stSTARS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stSTARS",
- "baseDenom": "stSTARS",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked OSMO",
- "denom": "ibc/6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stosmo.png",
- "symbol": "stOSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stOSMO",
- "baseDenom": "stOSMO",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked JUNO",
- "denom": "ibc/580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stjuno.png",
- "symbol": "stJUNO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stJUNO",
- "baseDenom": "stJUNO",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked LUNA",
- "denom": "ibc/E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stluna.png",
- "symbol": "stLUNA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stLUNA",
- "baseDenom": "stLUNA",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked EVMOS",
- "denom": "ibc/75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stevmos.png",
- "symbol": "stEVMOS",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "stEVMOS",
- "baseDenom": "stEVMOS",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked INJ",
- "denom": "ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stinj.png",
- "symbol": "stINJ",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "stINJ",
- "baseDenom": "stINJ",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked UMEE",
- "denom": "ibc/FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stumee.png",
- "symbol": "stUMEE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stUMEE",
- "baseDenom": "stUMEE",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked CMDX",
- "denom": "ibc/0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stcmdx.png",
- "symbol": "stCMDX",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stCMDX",
- "baseDenom": "stCMDX",
- "isNative": false
- }
- },
- {
- "name": "Stride Staked SOMM",
- "denom": "ibc/9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/stsomm.png",
- "symbol": "stSOMM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stSOMM",
- "baseDenom": "stSOMM",
- "isNative": false
- }
- },
- {
- "name": "Evmos",
- "denom": "ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/evmos/images/evmos.png",
- "symbol": "EVMOS",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "EVMOS",
- "baseDenom": "EVMOS",
- "isNative": false
- }
- },
- {
- "name": "Neokingdom DAO",
- "denom": "ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/evmos/images/neok.png",
- "symbol": "NEOK",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "NEOK",
- "baseDenom": "NEOK",
- "isNative": false
- }
- },
- {
- "name": "Kujira",
- "denom": "ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/kuji.png",
- "symbol": "KUJI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "KUJI",
- "baseDenom": "KUJI",
- "isNative": false
- }
- },
- {
- "name": "USK",
- "denom": "ibc/58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/usk.png",
- "symbol": "USK",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USK",
- "baseDenom": "USK",
- "isNative": false
- }
- },
- {
- "name": "ampKUJI",
- "denom": "ibc/34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/ampkuji.png",
- "symbol": "ampKUJI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampKUJI",
- "baseDenom": "ampKUJI",
- "isNative": false
- }
- },
- {
- "name": "MantaDAO",
- "denom": "ibc/A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/mnta.png",
- "symbol": "MNTA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "MNTA",
- "baseDenom": "MNTA",
- "isNative": false
- }
- },
- {
- "name": "WINK",
- "denom": "ibc/325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/wink.png",
- "symbol": "WINK",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "WINK",
- "baseDenom": "WINK",
- "isNative": false
- }
- },
- {
- "name": "BLEND",
- "denom": "ibc/45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/blend.svg",
- "symbol": "BLEND",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "BLEND",
- "baseDenom": "BLEND",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified MNTA",
- "denom": "ibc/A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/ampmnta.png",
- "symbol": "ampMNTA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampMNTA",
- "baseDenom": "ampMNTA",
- "isNative": false
- }
- },
- {
- "name": "qcKUJI",
- "denom": "ibc/B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qckuji.svg",
- "symbol": "qcKUJI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "qcKUJI",
- "baseDenom": "qcKUJI",
- "isNative": false
- }
- },
- {
- "name": "qcMNTA",
- "denom": "ibc/F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qcmnta.svg",
- "symbol": "qcMNTA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "qcMNTA",
- "baseDenom": "qcMNTA",
- "isNative": false
- }
- },
- {
- "name": "Fuzion",
- "denom": "ibc/FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuzion.png",
- "symbol": "FUZN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "FUZN",
- "baseDenom": "FUZN",
- "isNative": false
- }
- },
- {
- "name": "Fuzion Receipt",
- "denom": "ibc/F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuzionr.png",
- "symbol": "rFUZN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "rFUZN",
- "baseDenom": "rFUZN",
- "isNative": false
- }
- },
- {
- "name": "Unstake Fi",
- "denom": "ibc/35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/nstk.svg",
- "symbol": "NSTK",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NSTK",
- "baseDenom": "NSTK",
- "isNative": false
- }
- },
- {
- "name": "LOCAL",
- "denom": "ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/local.png",
- "symbol": "LOCAL",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "LOCAL",
- "baseDenom": "LOCAL",
- "isNative": false
- }
- },
- {
- "name": "Fuzion Yield",
- "denom": "ibc/71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/fuziony.svg",
- "symbol": "yFUZN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "yFUZN",
- "baseDenom": "yFUZN",
- "isNative": false
- }
- },
- {
- "name": "Umee",
- "denom": "ibc/2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/umee/images/umee.png",
- "symbol": "UMEE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "UMEE",
- "baseDenom": "UMEE",
- "isNative": false
- }
- },
- {
- "name": "Cosmos Hub Atom",
- "denom": "ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
- "symbol": "ATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ATOM",
- "baseDenom": "ATOM",
- "isNative": false
- }
- },
- {
- "name": "Axelar",
- "denom": "ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/axl.png",
- "symbol": "AXL",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "AXL",
- "baseDenom": "AXL",
- "isNative": false
- }
- },
- {
- "name": "USD Coin",
- "denom": "ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "Frax",
- "denom": "ibc/3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/frax.svg",
- "symbol": "FRAX",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "FRAX",
- "baseDenom": "FRAX",
- "isNative": false
- }
- },
- {
- "name": "Dai Stablecoin",
- "denom": "ibc/265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/dai.png",
- "symbol": "DAI",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "DAI",
- "baseDenom": "DAI",
- "isNative": false
- }
- },
- {
- "name": "Tether USD",
- "denom": "ibc/90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png",
- "symbol": "USDT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDT",
- "baseDenom": "USDT",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Ether",
- "denom": "ibc/65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/weth.png",
- "symbol": "WETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WETH",
- "baseDenom": "WETH",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Bitcoin",
- "denom": "ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png",
- "symbol": "WBTC",
- "decimals": 8,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F",
- "path": "",
- "channelId": "",
- "decimals": 8,
- "symbol": "WBTC",
- "baseDenom": "WBTC",
- "isNative": false
- }
- },
- {
- "name": "Aave",
- "denom": "ibc/49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/aave.svg",
- "symbol": "AAVE",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "AAVE",
- "baseDenom": "AAVE",
- "isNative": false
- }
- },
- {
- "name": "ApeCoin",
- "denom": "ibc/8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/ape.svg",
- "symbol": "APE",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "APE",
- "baseDenom": "APE",
- "isNative": false
- }
- },
- {
- "name": "Axie Infinity Shard",
- "denom": "ibc/EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/axs.svg",
- "symbol": "AXS",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "AXS",
- "baseDenom": "AXS",
- "isNative": false
- }
- },
- {
- "name": "Chainlink",
- "denom": "ibc/AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/link.png",
- "symbol": "LINK",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "LINK",
- "baseDenom": "LINK",
- "isNative": false
- }
- },
- {
- "name": "Maker",
- "denom": "ibc/E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/mkr.svg",
- "symbol": "MKR",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "MKR",
- "baseDenom": "MKR",
- "isNative": false
- }
- },
- {
- "name": "Rai Reflex Index",
- "denom": "ibc/27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/rai.svg",
- "symbol": "RAI",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "RAI",
- "baseDenom": "RAI",
- "isNative": false
- }
- },
- {
- "name": "Shiba Inu",
- "denom": "ibc/E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/shib.svg",
- "symbol": "SHIB",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "SHIB",
- "baseDenom": "SHIB",
- "isNative": false
- }
- },
- {
- "name": "Lido Staked Ether",
- "denom": "ibc/FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/steth.svg",
- "symbol": "stETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "stETH",
- "baseDenom": "stETH",
- "isNative": false
- }
- },
- {
- "name": "Uniswap",
- "denom": "ibc/3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/uni.svg",
- "symbol": "UNI",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "UNI",
- "baseDenom": "UNI",
- "isNative": false
- }
- },
- {
- "name": "Chain",
- "denom": "ibc/79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/xcn.svg",
- "symbol": "XCN",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "XCN",
- "baseDenom": "XCN",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Polkadot",
- "denom": "ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/polkadot/images/dot.png",
- "symbol": "DOT",
- "decimals": 10,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4",
- "path": "",
- "channelId": "",
- "decimals": 10,
- "symbol": "DOT",
- "baseDenom": "DOT",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Moonbeam",
- "denom": "ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/moonbeam/images/glmr.png",
- "symbol": "WGLMR",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WGLMR",
- "baseDenom": "WGLMR",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Matic",
- "denom": "ibc/7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/polygon/images/wmatic.png",
- "symbol": "WMATIC",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WMATIC",
- "baseDenom": "WMATIC",
- "isNative": false
- }
- },
- {
- "name": "Wrapped BNB",
- "denom": "ibc/B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/binancesmartchain/images/wbnb.png",
- "symbol": "WBNB",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WBNB",
- "baseDenom": "WBNB",
- "isNative": false
- }
- },
- {
- "name": "Binance USD",
- "denom": "ibc/A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/busd.png",
- "symbol": "BUSD",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "BUSD",
- "baseDenom": "BUSD",
- "isNative": false
- }
- },
- {
- "name": "Wrapped AVAX",
- "denom": "ibc/A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/avalanche/images/wavax.svg",
- "symbol": "WAVAX",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WAVAX",
- "baseDenom": "WAVAX",
- "isNative": false
- }
- },
- {
- "name": "Wrapped FTM",
- "denom": "ibc/31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/fantom/images/ftm.png",
- "symbol": "WFTM",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "WFTM",
- "baseDenom": "WFTM",
- "isNative": false
- }
- },
- {
- "name": "USD Coin from Polygon",
- "denom": "ibc/2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "USD Coin from Avalanche",
- "denom": "ibc/705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "Wrapped FIL from Filecoin",
- "denom": "ibc/9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/filecoin/images/wfil.png",
- "symbol": "axlFIL",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "axlFIL",
- "baseDenom": "axlFIL",
- "isNative": false
- }
- },
- {
- "name": "Arbitrum",
- "denom": "ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/arbitrum/images/arb.png",
- "symbol": "ARB",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "ARB",
- "baseDenom": "ARB",
- "isNative": false
- }
- },
- {
- "name": "Pepe",
- "denom": "ibc/9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/pepe.png",
- "symbol": "PEPE",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "PEPE",
- "baseDenom": "PEPE",
- "isNative": false
- }
- },
- {
- "name": "Coinbase Wrapped Staked ETH",
- "denom": "ibc/545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/cbeth.png",
- "symbol": "cbETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "cbETH",
- "baseDenom": "cbETH",
- "isNative": false
- }
- },
- {
- "name": "Rocket Pool Ether",
- "denom": "ibc/8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/reth.png",
- "symbol": "rETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "rETH",
- "baseDenom": "rETH",
- "isNative": false
- }
- },
- {
- "name": "Staked Frax Ether",
- "denom": "ibc/E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/sfrxeth.svg",
- "symbol": "sfrxETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "sfrxETH",
- "baseDenom": "sfrxETH",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Lido Staked Ether",
- "denom": "ibc/1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wsteth.svg",
- "symbol": "wstETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "wstETH",
- "baseDenom": "wstETH",
- "isNative": false
- }
- },
- {
- "name": "Real Yield Eth",
- "denom": "ibc/6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/yieldeth.png",
- "symbol": "YieldETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "YieldETH",
- "baseDenom": "YieldETH",
- "isNative": false
- }
- },
- {
- "name": "Persistence",
- "denom": "ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/xprt.png",
- "symbol": "XPRT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "XPRT",
- "baseDenom": "XPRT",
- "isNative": false
- }
- },
- {
- "name": "PSTAKE staked ATOM",
- "denom": "ibc/B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkatom.png",
- "symbol": "stkATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stkATOM",
- "baseDenom": "stkATOM",
- "isNative": false
- }
- },
- {
- "name": "PSTAKE staked OSMO",
- "denom": "ibc/F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/persistence/images/stkosmo.png",
- "symbol": "stkOSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stkOSMO",
- "baseDenom": "stkOSMO",
- "isNative": false
- }
- },
- {
- "name": "Kava",
- "denom": "ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/kava.png",
- "symbol": "KAVA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "KAVA",
- "baseDenom": "KAVA",
- "isNative": false
- }
- },
- {
- "name": "Kava Hard",
- "denom": "ibc/D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/hard.png",
- "symbol": "HARD",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "HARD",
- "baseDenom": "HARD",
- "isNative": false
- }
- },
- {
- "name": "Kava Swap",
- "denom": "ibc/70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/swp.png",
- "symbol": "SWP",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SWP",
- "baseDenom": "SWP",
- "isNative": false
- }
- },
- {
- "name": "Kava USDX",
- "denom": "ibc/C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kava/images/usdx.png",
- "symbol": "USDX",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDX",
- "baseDenom": "USDX",
- "isNative": false
- }
- },
- {
- "name": "Tether USD",
- "denom": "ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdt.svg",
- "symbol": "USDT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDT",
- "baseDenom": "USDT",
- "isNative": false
- }
- },
- {
- "name": "DAI",
- "denom": "ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8",
- "logo": "unknown.png",
- "symbol": "DAI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "DAI",
- "baseDenom": "DAI",
- "isNative": false
- }
- },
- {
- "name": "axlWBTC",
- "denom": "ibc/F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54",
- "logo": "unknown.png",
- "symbol": "axlWBTC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "axlWBTC",
- "baseDenom": "axlWBTC",
- "isNative": false
- }
- },
- {
- "name": "USDT",
- "denom": "ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/usdt.png",
- "symbol": "USDT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDT",
- "baseDenom": "USDT",
- "isNative": false
- }
- },
- {
- "name": "ATOM",
- "denom": "ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
- "symbol": "ATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ATOM",
- "baseDenom": "ATOM",
- "isNative": false
- }
- },
- {
- "name": "USDT",
- "denom": "ibc/24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdt.png",
- "symbol": "USDT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDT",
- "baseDenom": "USDT",
- "isNative": false
- }
- },
- {
- "name": "Whale",
- "denom": "ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/white-whale.png",
- "symbol": "WHALE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "WHALE",
- "baseDenom": "WHALE",
- "isNative": false
- }
- },
- {
- "name": "ampWHALE",
- "denom": "ibc/168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ampwhale.svg",
- "symbol": "ampWHALE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampWHALE",
- "baseDenom": "ampWHALE",
- "isNative": false
- }
- },
- {
- "name": "boneWHALE",
- "denom": "ibc/ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/bWHALE.png",
- "symbol": "bWHALE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "bWHALE",
- "baseDenom": "bWHALE",
- "isNative": false
- }
- },
- {
- "name": "FABLE",
- "denom": "ibc/5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/fable.svg",
- "symbol": "FABLE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "FABLE",
- "baseDenom": "FABLE",
- "isNative": false
- }
- },
- {
- "name": "RAC",
- "denom": "ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/rac.png",
- "symbol": "RAC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "RAC",
- "baseDenom": "RAC",
- "isNative": false
- }
- },
- {
- "name": "ASH",
- "denom": "ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ash.svg",
- "symbol": "ASH",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ASH",
- "baseDenom": "ASH",
- "isNative": false
- }
- },
- {
- "name": "Sommelier",
- "denom": "ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sommelier/images/somm.png",
- "symbol": "SOMM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SOMM",
- "baseDenom": "SOMM",
- "isNative": false
- }
- },
- {
- "name": "Crescent",
- "denom": "ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/cre.png",
- "symbol": "CRE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CRE",
- "baseDenom": "CRE",
- "isNative": false
- }
- },
- {
- "name": "Bonded Crescent",
- "denom": "ibc/D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/bcre.png",
- "symbol": "bCRE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "bCRE",
- "baseDenom": "bCRE",
- "isNative": false
- }
- },
- {
- "name": "Secret Network",
- "denom": "ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/secretnetwork/images/scrt.png",
- "symbol": "SCRT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SCRT",
- "baseDenom": "SCRT",
- "isNative": false
- }
- },
- {
- "name": "Oraichain",
- "denom": "ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/oraichain/images/orai-white.png",
- "symbol": "ORAI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ORAI",
- "baseDenom": "ORAI",
- "isNative": false
- }
- },
- {
- "name": "USDC",
- "denom": "ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "Frienzies",
- "denom": "ibc/CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/noble/images/frnz.png",
- "symbol": "FRNZ",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "FRNZ",
- "baseDenom": "FRNZ",
- "isNative": false
- }
- },
- {
- "name": "Luna",
- "denom": "ibc/0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/luna.png",
- "symbol": "LUNA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "LUNA",
- "baseDenom": "LUNA",
- "isNative": false
- }
- },
- {
- "name": "ERIS Alliance Staked ampWHALE",
- "denom": "ibc/DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/ampwhalet.svg",
- "symbol": "ampWHALEt",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampWHALEt",
- "baseDenom": "ampWHALEt",
- "isNative": false
- }
- },
- {
- "name": "ERIS Alliance Staked boneWHALE",
- "denom": "ibc/F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/bonewhalet.svg",
- "symbol": "boneWHALEt",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "boneWHALEt",
- "baseDenom": "boneWHALEt",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified ROAR",
- "denom": "ibc/7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/amproar.png",
- "symbol": "ampROAR",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampROAR",
- "baseDenom": "ampROAR",
- "isNative": false
- }
- },
- {
- "name": "Celestia",
- "denom": "ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/celestia/images/celestia.png",
- "symbol": "TIA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "TIA",
- "baseDenom": "TIA",
- "isNative": false
- }
- },
- {
- "name": "qcFUZN",
- "denom": "ibc/5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/qcfuzn.svg",
- "symbol": "qcFUZN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "qcFUZN",
- "baseDenom": "qcFUZN",
- "isNative": false
- }
- },
- {
- "name": "Nois",
- "denom": "ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/nois/images/nois.png",
- "symbol": "NOIS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NOIS",
- "baseDenom": "NOIS",
- "isNative": false
- }
- },
- {
- "name": "Pica",
- "denom": "ibc/9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/composable/images/pica.svg",
- "symbol": "PICA",
- "decimals": 12,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8",
- "path": "",
- "channelId": "",
- "decimals": 12,
- "symbol": "PICA",
- "baseDenom": "PICA",
- "isNative": false
- }
- },
- {
- "name": "OSMO",
- "denom": "ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
- "symbol": "OSMO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OSMO",
- "baseDenom": "OSMO",
- "isNative": false
- }
- },
- {
- "name": "STRD",
- "denom": "ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/strd.png",
- "symbol": "STRD",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "STRD",
- "baseDenom": "STRD",
- "isNative": false
- }
- },
- {
- "name": "BLD",
- "denom": "ibc/B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/agoric/images/bld.png",
- "symbol": "BLD",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "BLD",
- "baseDenom": "BLD",
- "isNative": false
- }
- },
- {
- "name": "stATOM",
- "denom": "ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stride/images/statom.png",
- "symbol": "stATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "stATOM",
- "baseDenom": "stATOM",
- "isNative": false
- }
- },
- {
- "name": "NTRN",
- "denom": "ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.png",
- "symbol": "NTRN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NTRN",
- "baseDenom": "NTRN",
- "isNative": false
- }
- },
- {
- "name": "UMEE",
- "denom": "ibc/221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/umee/images/umee.png",
- "symbol": "UMEE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "UMEE",
- "baseDenom": "UMEE",
- "isNative": false
- }
- },
- {
- "name": "CRE",
- "denom": "ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/cre.png",
- "symbol": "CRE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CRE",
- "baseDenom": "CRE",
- "isNative": false
- }
- },
- {
- "name": "SCRT",
- "denom": "ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/secretnetwork/images/scrt.png",
- "symbol": "SCRT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SCRT",
- "baseDenom": "SCRT",
- "isNative": false
- }
- },
- {
- "name": "STARS",
- "denom": "ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/stargaze/images/stars.png",
- "symbol": "STARS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "STARS",
- "baseDenom": "STARS",
- "isNative": false
- }
- },
- {
- "name": "bCRE",
- "denom": "ibc/83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/crescent/images/bcre.png",
- "symbol": "bCRE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "bCRE",
- "baseDenom": "bCRE",
- "isNative": false
- }
- },
- {
- "name": "HUAHUA",
- "denom": "ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/chihuahua/images/huahua.png",
- "symbol": "HUAHUA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "HUAHUA",
- "baseDenom": "HUAHUA",
- "isNative": false
- }
- },
- {
- "name": "ATOM",
- "denom": "ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/cosmoshub/images/atom.png",
- "symbol": "ATOM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ATOM",
- "baseDenom": "ATOM",
- "isNative": false
- }
- },
- {
- "name": "AtomEconomicZone69JaeKwonInu",
- "denom": "ibc/AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/circus.png",
- "symbol": "CIRCUS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CIRCUS",
- "baseDenom": "CIRCUS",
- "isNative": false
- }
- },
- {
- "name": "USDC",
- "denom": "ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "Multichain USDC",
- "denom": "ibc/610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/usdc.png",
- "symbol": "USDC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "USDC",
- "baseDenom": "USDC",
- "isNative": false
- }
- },
- {
- "name": "Dot",
- "denom": "ibc/B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/polkadot/images/dot.png",
- "symbol": "DOT",
- "decimals": 10,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593",
- "path": "",
- "channelId": "",
- "decimals": 10,
- "symbol": "DOT",
- "baseDenom": "DOT",
- "isNative": false
- }
- },
- {
- "name": "Plankton",
- "denom": "ibc/020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/kujira/images/PLNK_drk.png",
- "symbol": "PLNK",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "PLNK",
- "baseDenom": "PLNK",
- "isNative": false
- }
- },
- {
- "name": "Lion DAO",
- "denom": "ibc/E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/roar.png",
- "symbol": "ROAR",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ROAR",
- "baseDenom": "ROAR",
- "isNative": false
- }
- },
- {
- "name": "TheOnlyOne",
- "denom": "ibc/C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/xxx3.png",
- "symbol": "xxx",
- "decimals": 10,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4",
- "path": "",
- "channelId": "",
- "decimals": 10,
- "symbol": "xxx",
- "baseDenom": "xxx",
- "isNative": false
- }
- },
- {
- "name": "Lion Cub DAO",
- "denom": "ibc/5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/cub.png",
- "symbol": "CUB",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CUB",
- "baseDenom": "CUB",
- "isNative": false
- }
- },
- {
- "name": "Astroport",
- "denom": "ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra/images/astro.png",
- "symbol": "ASTRO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ASTRO",
- "baseDenom": "ASTRO",
- "isNative": false
- }
- },
- {
- "name": "sayve",
- "denom": "ibc/DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/sayve.png",
- "symbol": "SAYVE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SAYVE",
- "baseDenom": "SAYVE",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified LUNA",
- "denom": "ibc/751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/ampluna.svg",
- "symbol": "ampLUNA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampLUNA",
- "baseDenom": "ampLUNA",
- "isNative": false
- }
- },
- {
- "name": "boneLuna",
- "denom": "ibc/C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/boneluna.png",
- "symbol": "bLUNA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "bLUNA",
- "baseDenom": "bLUNA",
- "isNative": false
- }
- },
- {
- "name": "BLUE CUB DAO",
- "denom": "ibc/B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/blue.png",
- "symbol": "BLUE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "BLUE",
- "baseDenom": "BLUE",
- "isNative": false
- }
- },
- {
- "name": "dinheiro",
- "denom": "ibc/306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Dinheiros.png",
- "symbol": "DINHEIROS",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "DINHEIROS",
- "baseDenom": "DINHEIROS",
- "isNative": false
- }
- },
- {
- "name": "real",
- "denom": "ibc/444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Reis.png",
- "symbol": "REIS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "REIS",
- "baseDenom": "REIS",
- "isNative": false
- }
- },
- {
- "name": "escudo",
- "denom": "ibc/D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Escudos.png",
- "symbol": "ESCUDOS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ESCUDOS",
- "baseDenom": "ESCUDOS",
- "isNative": false
- }
- },
- {
- "name": "alentejo.money",
- "denom": "ibc/FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/Alem.png",
- "symbol": "ALEM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ALEM",
- "baseDenom": "ALEM",
- "isNative": false
- }
- },
- {
- "name": "GEM DAO",
- "denom": "ibc/8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/gem.png",
- "symbol": "GEM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "GEM",
- "baseDenom": "GEM",
- "isNative": false
- }
- },
- {
- "name": "nico",
- "denom": "ibc/EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/nicodao.png",
- "symbol": "NICO",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "NICO",
- "baseDenom": "NICO",
- "isNative": false
- }
- },
- {
- "name": "Sailing The SeaS DAO",
- "denom": "ibc/FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/SEAS.png",
- "symbol": "SEAS",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SEAS",
- "baseDenom": "SEAS",
- "isNative": false
- }
- },
- {
- "name": "BitzDAO",
- "denom": "ibc/01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/BITZ.png",
- "symbol": "BITZ",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "BITZ",
- "baseDenom": "BITZ",
- "isNative": false
- }
- },
- {
- "name": "seul",
- "denom": "ibc/1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/seul.png",
- "symbol": "SEUL",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SEUL",
- "baseDenom": "SEUL",
- "isNative": false
- }
- },
- {
- "name": "xseul",
- "denom": "ibc/CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/xseul.png",
- "symbol": "xSEUL",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "xSEUL",
- "baseDenom": "xSEUL",
- "isNative": false
- }
- },
- {
- "name": "$AUTISM exists to celebrate autism as a superior biological tech stack for a changing world",
- "denom": "factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/autism.png",
- "symbol": "AUTISM",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "AUTISM",
- "baseDenom": "AUTISM",
- "isNative": false
- }
- },
- {
- "name": "GUPPY",
- "denom": "ibc/F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/guppy.png",
- "symbol": "GUPPY",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "GUPPY",
- "baseDenom": "GUPPY",
- "isNative": false
- }
- },
- {
- "name": "Neutron",
- "denom": "ibc/6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/ntrn.png",
- "symbol": "NTRN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NTRN",
- "baseDenom": "NTRN",
- "isNative": false
- }
- },
- {
- "name": "wstETH",
- "denom": "ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/_non-cosmos/ethereum/images/wsteth.svg",
- "symbol": "wstETH",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "wstETH",
- "baseDenom": "wstETH",
- "isNative": false
- }
- },
- {
- "name": "AstroPepe",
- "denom": "ibc/03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/astropepe.png",
- "symbol": "ASTROPEPE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ASTROPEPE",
- "baseDenom": "ASTROPEPE",
- "isNative": false
- }
- },
- {
- "name": "Newt",
- "denom": "ibc/B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/newt.png",
- "symbol": "NEWT",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NEWT",
- "baseDenom": "NEWT",
- "isNative": false
- }
- },
- {
- "name": "Baby Corgi",
- "denom": "ibc/9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/babycorgi.png",
- "symbol": "CORGI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "CORGI",
- "baseDenom": "CORGI",
- "isNative": false
- }
- },
- {
- "name": "Wrapped Bitcoin",
- "denom": "ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/axelar/images/wbtc.png",
- "symbol": "WBTC",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "WBTC",
- "baseDenom": "WBTC",
- "isNative": false
- }
- },
- {
- "name": "OPHIR",
- "denom": "ibc/19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/migaloo/images/ophir.png",
- "symbol": "OPHIR",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OPHIR",
- "baseDenom": "OPHIR",
- "isNative": false
- }
- },
- {
- "name": "ito",
- "denom": "ibc/E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/I.png",
- "symbol": "ITO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ITO",
- "baseDenom": "ITO",
- "isNative": false
- }
- },
- {
- "name": "ARMANI",
- "denom": "ibc/0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/armani.png",
- "symbol": "ARMANI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ARMANI",
- "baseDenom": "ARMANI",
- "isNative": false
- }
- },
- {
- "name": "Dog wif nunchucks",
- "denom": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/ninja.png",
- "symbol": "NINJA",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "NINJA",
- "baseDenom": "NINJA",
- "isNative": false
- }
- },
- {
- "name": "WGMI",
- "denom": "factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/injective/images/wgmi.png",
- "symbol": "WGMI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "WGMI",
- "baseDenom": "WGMI",
- "isNative": false
- }
- },
- {
- "name": "DROGO",
- "denom": "ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/terra2/images/drogo.png",
- "symbol": "DROGO",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "DROGO",
- "baseDenom": "DROGO",
- "isNative": false
- }
- },
- {
- "name": "Sei",
- "denom": "ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
- "symbol": "SEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SEI",
- "baseDenom": "SEI",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified SEI",
- "denom": "ibc/6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
- "symbol": "ampSEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampSEI",
- "baseDenom": "ampSEI",
- "isNative": false
- }
- },
- {
- "name": "Popeye",
- "denom": "ibc/7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
- "symbol": "POPEYE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "POPEYE",
- "baseDenom": "POPEYE",
- "isNative": false
- }
- },
- {
- "name": "Sei",
- "denom": "ibc/0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
- "symbol": "SEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SEI",
- "baseDenom": "SEI",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified SEI",
- "denom": "ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
- "symbol": "ampSEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampSEI",
- "baseDenom": "ampSEI",
- "isNative": false
- }
- },
- {
- "name": "Popeye",
- "denom": "ibc/833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
- "symbol": "POPEYE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "POPEYE",
- "baseDenom": "POPEYE",
- "isNative": false
- }
- },
- {
- "name": "Sei",
- "denom": "ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/sei.png",
- "symbol": "SEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SEI",
- "baseDenom": "SEI",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "OIN STORE OF VALUE",
- "denom": "ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/oin.png",
- "symbol": "OIN",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "OIN",
- "baseDenom": "OIN",
- "isNative": false
- }
- },
- {
- "name": "ERIS Amplified SEI",
- "denom": "ibc/9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/ampsei.svg",
- "symbol": "ampSEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "ampSEI",
- "baseDenom": "ampSEI",
- "isNative": false
- }
- },
- {
- "name": "Popeye",
- "denom": "ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/popeye.png",
- "symbol": "POPEYE",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "POPEYE",
- "baseDenom": "POPEYE",
- "isNative": false
- }
- },
- {
- "name": "jimmy",
- "denom": "ibc/BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/neutron/images/jimmy.png",
- "symbol": "JIMMY",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "JIMMY",
- "baseDenom": "JIMMY",
- "isNative": false
- }
- },
- {
- "name": "Sensei Dog",
- "denom": "ibc/12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/sei/images/SenseiDog.png",
- "symbol": "SENSEI",
- "decimals": 6,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9",
- "path": "",
- "channelId": "",
- "decimals": 6,
- "symbol": "SENSEI",
- "baseDenom": "SENSEI",
- "isNative": false
- }
- },
- {
- "name": "Dora Vota",
- "denom": "ibc/BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947",
- "logo": "https://raw.githubusercontent.com/cosmos/chain-registry/master/doravota/images/dora.svg",
- "symbol": "DORA",
- "decimals": 18,
- "coinGeckoId": "",
- "tokenType": "ibc",
- "tokenVerification": "external",
- "ibc": {
- "hash": "BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947",
- "path": "",
- "channelId": "",
- "decimals": 18,
- "symbol": "DORA",
- "baseDenom": "DORA",
- "isNative": false
- }
- }
-]
\ No newline at end of file
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg b/packages/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg
deleted file mode 100644
index d23149ceb..000000000
Binary files a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper155yk4wfn0xqye80exlsr6hu4qdfsvsgwg3jckk.jpg and /dev/null differ
diff --git a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg b/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg
deleted file mode 100644
index 53d50325d..000000000
Binary files a/packages/sdk-ui-ts/src/validators-logo/images/injvaloper1nq37nq79w2j76xj8qhjzcn6vh0wlx0qk2r7zm6.jpg and /dev/null differ
diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md
index d2122ee38..1112f953f 100644
--- a/packages/test-utils/CHANGELOG.md
+++ b/packages/test-utils/CHANGELOG.md
@@ -3,30 +3,26 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.3-beta.0...@injectivelabs/test-utils@1.14.3) (2023-11-20)
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.5-beta.2...@injectivelabs/test-utils@1.14.5) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/test-utils
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.4-beta.2...@injectivelabs/test-utils@1.14.4) (2024-03-01)
+**Note:** Version bump only for package @injectivelabs/test-utils
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.3-beta.0...@injectivelabs/test-utils@1.14.3) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/test-utils
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.2-beta.0...@injectivelabs/test-utils@1.14.2) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/test-utils
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.1-beta.5...@injectivelabs/test-utils@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/test-utils
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/test-utils@1.14.0-beta.1...@injectivelabs/test-utils@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/test-utils
diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json
index ef7e4e347..08e3bfc3e 100644
--- a/packages/test-utils/package.json
+++ b/packages/test-utils/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/test-utils",
"description": "List of test-utils and helper functions that can be reused throughout Injective's projects.",
- "version": "1.14.3",
+ "version": "1.14.6-beta.0",
"sideEffects": false,
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,11 +28,11 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "axios": "^0.21.1",
+ "axios": "^1.6.4",
"bignumber.js": "^9.0.1",
"link-module-alias": "^1.2.0",
"shx": "^0.3.2",
diff --git a/packages/token-metadata/src/TokenInfo.ts b/packages/token-metadata/src/TokenInfo.ts
deleted file mode 100644
index 2281add27..000000000
--- a/packages/token-metadata/src/TokenInfo.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-import { GeneralException } from '@injectivelabs/exceptions'
-import { isIbcTokenCanonical } from './ibc'
-import { IbcToken, Token, TokenMeta, TokenType } from './types'
-import { getTokenTypeFromDenom } from './utils'
-
-/**
- * Token info is a helper class which abstracts
- * away handling different versions of a Token
- * represented on Injective.
- *
- * Ex: USDC token
- * - For a peggy denom -> decimals 6, address: ERC20 contract address, symbol: USDC
- * - For a factory/cw20Denom: (both 6 decimals)
- * -> if coming from Ethereum through Wormhole take USDCet as the cw20 addresses will match,
- * -> if coming from Solana through Wormhole take USDCso as the cw20 addresses will match,
- *
- * Ex: SOL token
- * - For the native token on Solana -> decimals 9
- * - For the cw20 version of the native SOL token on Injective through wormhole -> decimals 8
- *
- * Ex: CHZ token
- * - For the peggy denom -> decimals 18
- * - For a factory/cw20Denom:
- * -> For CHZ coming through Wormhole from Ethereum -> decimals 8
- */
-export class TokenInfo {
- public denom: string
-
- public meta: TokenMeta
-
- private constructor(denom: string, meta: TokenMeta) {
- this.denom = denom
- this.meta = meta
- }
-
- static fromMeta(meta: TokenMeta & { denom?: string }, denom?: string) {
- if (!meta.denom && !denom) {
- throw new GeneralException(new Error(`Please provide a ${denom}`))
- }
-
- return new TokenInfo((meta.denom || denom) as string, meta)
- }
-
- static fromToken(token: Token) {
- return new TokenInfo(token.denom, token)
- }
-
- toToken(): Token {
- const { meta, denom } = this
-
- return {
- ...meta,
- denom,
- tokenType: getTokenTypeFromDenom(denom),
- }
- }
-
- /**
- * When we have multiple cw20 entries (versions) of a token
- * on Injective we need to match the denom's address with a
- * cw20 entry and get the symbol for that version
- *
- * ex: (Main) USDC, USDCet, USDCso
- */
- get symbol() {
- const { meta, denom } = this
-
- if (denom.startsWith('inj') || denom.startsWith('factory/')) {
- const [address] = denom.startsWith('inj')
- ? [denom]
- : denom.split('/').reverse()
-
- if (!meta.cw20) {
- return meta.symbol
- }
-
- if (!Array.isArray(meta.cw20)) {
- return meta.symbol
- }
-
- const actualMeta = meta.cw20.find((m) => m.address === address)
-
- return actualMeta ? actualMeta.symbol : meta.symbol
- }
-
- return meta.symbol
- }
-
- get logo() {
- const { meta } = this
-
- return meta.logo
- }
-
- get coinGeckoId() {
- const { meta } = this
-
- return meta.coinGeckoId
- }
-
- get name() {
- const { meta } = this
-
- return meta.symbol
- }
-
- get splDecimals() {
- const { meta } = this
-
- return meta.spl ? meta.spl.decimals : meta.decimals
- }
-
- /**
- * When we have multiple cw20 entries (versions) of a token
- * on Injective we need to match the denom's address with a
- * cw20 entry and get the decimals for that version
- */
- get cw20Decimals() {
- const { denom, meta } = this
-
- if (!denom.startsWith('inj') || denom.startsWith('factory/')) {
- return meta.decimals
- }
-
- const [address] = denom.startsWith('inj')
- ? [denom]
- : denom.split('/').reverse()
-
- if (!meta.cw20) {
- return meta.decimals
- }
-
- if (!Array.isArray(meta.cw20)) {
- return meta.cw20.decimals
- }
-
- const actualMeta = meta.cw20.find((m) => m.address === address)
-
- return actualMeta ? actualMeta.decimals : meta.decimals
- }
-
- get erc20Decimals() {
- const { meta } = this
-
- return meta.erc20 ? meta.erc20.decimals : meta.decimals
- }
-
- /**
- * Decimals can vary between different versions of a token
- * so we need to get the decimal places of the token based on the
- * denom (from which we can derive the source of the token)
- */
- get decimals() {
- const { denom, meta } = this
-
- if (denom.startsWith('inj') || denom.startsWith('factory/')) {
- const [address] = denom.startsWith('inj')
- ? [denom]
- : denom.split('/').reverse()
-
- if (!meta.cw20) {
- return meta.decimals
- }
-
- if (!Array.isArray(meta.cw20)) {
- return meta.cw20.decimals
- }
-
- const actualMeta = meta.cw20.find((m) => m.address === address)
-
- return actualMeta ? actualMeta.decimals : meta.decimals
- }
-
- if (denom.startsWith('peggy')) {
- if (!meta.erc20) {
- return meta.decimals
- }
-
- return meta.erc20.decimals
- }
-
- if (denom.startsWith('ibc')) {
- if (!meta.ibc) {
- return meta.decimals
- }
-
- return meta.ibc.decimals
- }
-
- return meta.decimals
- }
-
- get address() {
- const { denom, meta } = this
-
- if (denom.startsWith('inj') || denom.startsWith('factory/')) {
- const [address] = denom.startsWith('inj')
- ? [denom]
- : denom.split('/').reverse()
-
- return address
- }
-
- if (denom.startsWith('peggy')) {
- return meta.erc20 ? meta.erc20.address : ''
- }
-
- /**
- * Some denoms have ERC20 of their IBC version
- * ex: ATOM
- * */
- if (denom.startsWith('ibc')) {
- return meta.erc20 ? meta.erc20.address : ''
- }
-
- return ''
- }
-
- get tokenType(): TokenType {
- const { denom } = this
-
- return getTokenTypeFromDenom(denom)
- }
-
- get isCanonical() {
- return isIbcTokenCanonical(this.toToken() as IbcToken)
- }
-}
diff --git a/packages/token-metadata/src/images/eur.png b/packages/token-metadata/src/images/eur.png
deleted file mode 100644
index 34301ddd6..000000000
Binary files a/packages/token-metadata/src/images/eur.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/gold.png b/packages/token-metadata/src/images/gold.png
deleted file mode 100644
index df0fc1403..000000000
Binary files a/packages/token-metadata/src/images/gold.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/gpb.png b/packages/token-metadata/src/images/gpb.png
deleted file mode 100644
index 5f6d3892a..000000000
Binary files a/packages/token-metadata/src/images/gpb.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/jpy.png b/packages/token-metadata/src/images/jpy.png
deleted file mode 100644
index db491214f..000000000
Binary files a/packages/token-metadata/src/images/jpy.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/lior.png b/packages/token-metadata/src/images/lior.png
deleted file mode 100644
index 1da9b8fcf..000000000
Binary files a/packages/token-metadata/src/images/lior.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-atom-boost-lp.png b/packages/token-metadata/src/images/mito-atom-boost-lp.png
deleted file mode 100644
index 1eda2b456..000000000
Binary files a/packages/token-metadata/src/images/mito-atom-boost-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-atom-master-lp.png b/packages/token-metadata/src/images/mito-atom-master-lp.png
deleted file mode 100644
index b3ab16125..000000000
Binary files a/packages/token-metadata/src/images/mito-atom-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-eth-boost-lp.png b/packages/token-metadata/src/images/mito-eth-boost-lp.png
deleted file mode 100644
index c81bc6778..000000000
Binary files a/packages/token-metadata/src/images/mito-eth-boost-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-eur-master-lp.png b/packages/token-metadata/src/images/mito-eur-master-lp.png
deleted file mode 100644
index 5721cad79..000000000
Binary files a/packages/token-metadata/src/images/mito-eur-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-gbp-master-lp.png b/packages/token-metadata/src/images/mito-gbp-master-lp.png
deleted file mode 100644
index 0fa1945a2..000000000
Binary files a/packages/token-metadata/src/images/mito-gbp-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-inj-boost-lp.png b/packages/token-metadata/src/images/mito-inj-boost-lp.png
deleted file mode 100644
index 8be7ed883..000000000
Binary files a/packages/token-metadata/src/images/mito-inj-boost-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-inj-master-lp.png b/packages/token-metadata/src/images/mito-inj-master-lp.png
deleted file mode 100644
index 3dade5b0e..000000000
Binary files a/packages/token-metadata/src/images/mito-inj-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-proj-master-lp.png b/packages/token-metadata/src/images/mito-proj-master-lp.png
deleted file mode 100644
index 171e0782b..000000000
Binary files a/packages/token-metadata/src/images/mito-proj-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-stInj-boost-lp.png b/packages/token-metadata/src/images/mito-stInj-boost-lp.png
deleted file mode 100644
index 26cd4f7cf..000000000
Binary files a/packages/token-metadata/src/images/mito-stInj-boost-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-usdc-master-lp.png b/packages/token-metadata/src/images/mito-usdc-master-lp.png
deleted file mode 100644
index 4677c4bb2..000000000
Binary files a/packages/token-metadata/src/images/mito-usdc-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-weth-master-lp.png b/packages/token-metadata/src/images/mito-weth-master-lp.png
deleted file mode 100644
index ed8923166..000000000
Binary files a/packages/token-metadata/src/images/mito-weth-master-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito-xau-boost-lp.png b/packages/token-metadata/src/images/mito-xau-boost-lp.png
deleted file mode 100644
index 5436154ca..000000000
Binary files a/packages/token-metadata/src/images/mito-xau-boost-lp.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_2.png b/packages/token-metadata/src/images/mito_2.png
deleted file mode 100644
index cfa4bd84b..000000000
Binary files a/packages/token-metadata/src/images/mito_2.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_4.png b/packages/token-metadata/src/images/mito_4.png
deleted file mode 100644
index c2a62ce20..000000000
Binary files a/packages/token-metadata/src/images/mito_4.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_5.png b/packages/token-metadata/src/images/mito_5.png
deleted file mode 100644
index 4fb33383f..000000000
Binary files a/packages/token-metadata/src/images/mito_5.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_6.png b/packages/token-metadata/src/images/mito_6.png
deleted file mode 100644
index 37b700b4a..000000000
Binary files a/packages/token-metadata/src/images/mito_6.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_7.png b/packages/token-metadata/src/images/mito_7.png
deleted file mode 100644
index eadf0e8f0..000000000
Binary files a/packages/token-metadata/src/images/mito_7.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/mito_8.png b/packages/token-metadata/src/images/mito_8.png
deleted file mode 100644
index a873c4181..000000000
Binary files a/packages/token-metadata/src/images/mito_8.png and /dev/null differ
diff --git a/packages/token-metadata/src/images/ninja.png b/packages/token-metadata/src/images/ninja.png
deleted file mode 100644
index 11dc4a703..000000000
Binary files a/packages/token-metadata/src/images/ninja.png and /dev/null differ
diff --git a/packages/token-metadata/src/tokens/mappings/mapByHash.ts b/packages/token-metadata/src/tokens/mappings/mapByHash.ts
deleted file mode 100644
index 655288c5f..000000000
--- a/packages/token-metadata/src/tokens/mappings/mapByHash.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { TokenMeta } from '../../types'
-
-export const getMappedTokensByHash = (tokens: Record) =>
- (Object.keys(tokens) as Array).reduce(
- (result, token) => {
- if (!tokens[token].ibc) {
- return result
- }
-
- return {
- ...result,
- [tokens[token].ibc!.hash.toUpperCase()]: tokens[token],
- }
- },
- {},
- ) as Record
diff --git a/packages/token-metadata/src/tokens/mappings/mapByName.ts b/packages/token-metadata/src/tokens/mappings/mapByName.ts
deleted file mode 100644
index c40fa7cef..000000000
--- a/packages/token-metadata/src/tokens/mappings/mapByName.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { TokenMeta } from '../../types'
-
-export const getMappedTokensByName = (tokens: Record) =>
- (Object.keys(tokens) as Array).reduce(
- (result, token) => ({
- ...result,
- [tokens[token].name!.toLowerCase()]: tokens[token],
- }),
- {},
- ) as Record
diff --git a/packages/token-metadata/src/tokens/mappings/mapBySymbol.ts b/packages/token-metadata/src/tokens/mappings/mapBySymbol.ts
deleted file mode 100644
index 8868aad08..000000000
--- a/packages/token-metadata/src/tokens/mappings/mapBySymbol.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { TokenMeta } from '../../types'
-
-export const getMappedTokensBySymbol = (tokens: Record) =>
- (Object.keys(tokens) as Array).reduce(
- (result, token) => {
- const tokenMeta = tokens[token]
- const symbolKey = token.toUpperCase()
- const symbol = tokenMeta.symbol.toUpperCase()
- const symbolDiffs = symbol !== symbolKey
-
- let ibcResults = {}
- let cw20Results = {}
- let splResults = {}
- let evmResults = {}
- let erc20Results = {}
- let cw20sResults = {}
-
- if (tokenMeta.ibc && tokenMeta.ibc.baseDenom) {
- ibcResults = {
- [tokenMeta.ibc.baseDenom.toUpperCase()]: tokenMeta,
- ...(tokenMeta.ibc.symbol && {
- [tokenMeta.ibc.symbol.toUpperCase()]: tokenMeta,
- }),
- }
- }
-
- if (tokenMeta.cw20s) {
- const cw20Maps = tokenMeta.cw20s.reduce(
- (result, cw20) => ({
- ...result,
- [cw20.symbol.toUpperCase()]: tokenMeta,
- }),
- {} as Record,
- )
-
- cw20sResults = {
- ...cw20Maps,
- [symbol.toUpperCase()]: tokenMeta,
- }
- }
-
- if (tokenMeta.evm && tokenMeta.evm.symbol) {
- evmResults = {
- [tokenMeta.evm.symbol.toUpperCase()]: tokenMeta,
- }
- }
-
- if (tokenMeta.erc20 && tokenMeta.erc20.symbol) {
- erc20Results = {
- [tokenMeta.erc20.symbol.toUpperCase()]: tokenMeta,
- }
- }
-
- return {
- ...result,
- ...splResults,
- ...evmResults,
- ...ibcResults,
- ...cw20Results,
- ...cw20sResults,
- ...erc20Results,
- [symbol.toUpperCase()]: tokenMeta,
- ...(symbolDiffs && {
- [symbolKey.toUpperCase()]: tokenMeta,
- }),
- }
- },
- {},
- ) as Record
diff --git a/packages/token-metadata/src/tokens/tokens/cw20-tokens.ts b/packages/token-metadata/src/tokens/tokens/cw20-tokens.ts
deleted file mode 100644
index b78eadcd7..000000000
--- a/packages/token-metadata/src/tokens/tokens/cw20-tokens.ts
+++ /dev/null
@@ -1,160 +0,0 @@
-import { TokenMeta, TokenType } from '../../types'
-
-export default {
- 'INJ-MASTER': {
- name: 'INJ Master',
- logo: 'mito-inj-master-lp.png',
- symbol: 'INJ-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'INJ-BOOST': {
- name: 'INJ Boost',
- logo: 'mito-inj-boost-lp.png',
- symbol: 'INJ-BOOST-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'XAU-BOOST': {
- name: 'XAU Boost',
- logo: 'mito-xau-boost-lp.png',
- symbol: 'XAU-BOOST-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'WETH-MASTER': {
- name: 'WETH Master',
- logo: 'mito-weth-master-lp.png',
- symbol: 'WETH-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'ETH-BOOST': {
- name: 'ETH Boost',
- logo: 'mito-eth-boost-lp.png',
- symbol: 'ETH-boost-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'ATOM-MASTER': {
- name: 'ATOM Master',
- logo: 'mito-atom-master-lp.png',
- symbol: 'ATOM-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'ATOM-BOOST': {
- name: 'ATOM Boost',
- logo: 'mito-atom-boost-lp.png',
- symbol: 'ATOM-BOOST-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'USDC-MASTER': {
- name: 'USDC Master',
- logo: 'mito-usdc-master-lp.png',
- symbol: 'USDC-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'PROJ-MASTER': {
- name: 'PROJ Master',
- logo: 'mito-proj-master-lp.png',
- symbol: 'PROJ-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'GBP-MASTER': {
- name: 'GBP Master',
- logo: 'mito-gbp-master-lp.png',
- symbol: 'GBP-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'EUR-MASTER': {
- name: 'EUR Master',
- logo: 'mito-eur-master-lp.png',
- symbol: 'EUR-MASTER-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
- 'STINJ-BOOST': {
- name: 'stINJ Boost',
- logo: 'mito-stInj-boost-lp.png',
- symbol: 'stINJ-BOOST-LP',
- decimals: 18,
- coinGeckoId: '',
-
- cw20: {
- decimals: 18,
- address: '',
- tokenType: TokenType.Cw20,
- },
- },
-} as Record
diff --git a/packages/token-metadata/src/tokens/tokens/tokens.ts b/packages/token-metadata/src/tokens/tokens/tokens.ts
deleted file mode 100644
index 54b9690cc..000000000
--- a/packages/token-metadata/src/tokens/tokens/tokens.ts
+++ /dev/null
@@ -1,2850 +0,0 @@
-import { TokenMeta, TokenSource, TokenType } from '../../types'
-
-export default {
- BTC: {
- name: 'Bitcoin',
- symbol: 'BTC',
- decimals: 8,
- logo: 'bitcoin.png',
- coinGeckoId: 'bitcoin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
- tokenType: TokenType.Erc20,
- },
- },
-
- wBTC: {
- name: 'Wrapped Bitcoin',
- symbol: 'wBTC',
- decimals: 8,
- logo: 'wbtc.png',
- coinGeckoId: 'wrapped-bitcoin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
- tokenType: TokenType.Erc20,
- },
-
- cw20s: [
- {
- decimals: 18,
- symbol: 'wBTC',
- source: TokenSource.Cosmos,
- address: 'inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku',
- tokenType: TokenType.Cw20,
- },
- ],
- },
-
- ETH: {
- name: 'Ethereum',
- symbol: 'ETH',
- decimals: 18,
- logo: 'ethereum.png',
- coinGeckoId: 'ethereum',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- isNative: true,
- address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
- tokenType: TokenType.Erc20,
- },
- },
-
- wETH: {
- name: 'Wrapped Ethereum',
- symbol: 'wETH',
- decimals: 18,
- logo: 'ethereum.png',
- coinGeckoId: 'ethereum',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
- tokenType: TokenType.Erc20,
- },
-
- cw20s: [
- {
- symbol: 'wETH',
- decimals: 8,
- address: 'inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4',
- tokenType: TokenType.Cw20,
- source: TokenSource.Arbitrum,
- },
- {
- symbol: 'wETH',
- decimals: 8,
- address: 'inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc',
- tokenType: TokenType.Cw20,
- source: TokenSource.EthereumWh,
- },
- ],
- },
-
- INJ: {
- name: 'Injective',
- symbol: 'INJ',
- decimals: 18,
- logo: 'injective-v3.png',
- coinGeckoId: 'injective-protocol',
- tokenType: TokenType.Native,
-
- erc20: {
- decimals: 18,
- address: '0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30',
- tokenType: TokenType.Erc20,
- },
-
- cw20s: [
- {
- decimals: 8,
- symbol: 'INJbsc',
- source: TokenSource.BinanceSmartChain,
- address: 'inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 8,
- symbol: 'INJet',
- source: TokenSource.EthereumWh,
- address: 'inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw',
- tokenType: TokenType.Cw20,
- },
- ],
- },
-
- USDT: {
- name: 'Tether',
- symbol: 'USDT',
- decimals: 6,
- logo: 'usdt.png',
- coinGeckoId: 'tether',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 6,
- address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- symbol: 'USDTkv',
- isNative: true,
- baseDenom: 'erc20/tether/usdt',
- path: 'transfer/channel-143',
- channelId: 'channel-143',
- hash: '4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB',
- tokenType: TokenType.Ibc,
- },
-
- cw20s: [
- {
- decimals: 6,
- symbol: 'USDTbsc',
- source: TokenSource.BinanceSmartChain,
- address: 'inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDTso',
- source: TokenSource.Solana,
- address: 'inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDTso',
- source: TokenSource.Solana,
- address: 'inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDTap',
- source: TokenSource.Aptos,
- address: 'inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDTso',
- source: TokenSource.Solana,
- address: 'inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd',
- tokenType: TokenType.Cw20,
- },
- ],
- },
-
- USDC: {
- symbol: 'USDC',
- name: 'USD Coin',
- decimals: 6,
- logo: 'usdc.png',
- coinGeckoId: 'usd-coin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 6,
- symbol: 'USDC',
- address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
- tokenType: TokenType.Erc20,
- },
-
- cw20s: [
- {
- decimals: 6,
- symbol: 'USDCet',
- source: TokenSource.EthereumWh,
- address: 'inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDCso',
- source: TokenSource.Solana,
- address: 'inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDCarb',
- source: TokenSource.Arbitrum,
- address: 'inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDCbsc',
- source: TokenSource.BinanceSmartChain,
- address: 'inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu',
- tokenType: TokenType.Cw20,
- },
- {
- decimals: 6,
- symbol: 'USDCpoly',
- source: TokenSource.Polygon,
- address: 'inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3',
- tokenType: TokenType.Cw20,
- },
- ],
-
- ibc: {
- decimals: 6,
- symbol: 'USDCnb',
- baseDenom: 'uusdc',
- isNative: true,
- channelId: 'channel-148',
- path: 'transfer/channel-148',
- hash: '2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E',
- tokenType: TokenType.Ibc,
- },
-
- spl: {
- decimals: 6,
- symbol: 'USDCso',
- isNative: false,
- address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
- tokenType: TokenType.Spl,
- },
- },
-
- GRT: {
- name: 'Graph Token',
- symbol: 'GRT',
- decimals: 18,
- logo: 'graphToken.png',
- coinGeckoId: 'the-graph',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xc944E90C64B2c07662A292be6244BDf05Cda44a7',
- tokenType: TokenType.Erc20,
- },
- },
-
- SNX: {
- name: 'Synthetix Network Token',
- symbol: 'SNX',
- decimals: 18,
- logo: 'synthetix.png',
- coinGeckoId: 'havven',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F',
- tokenType: TokenType.Erc20,
- },
- },
-
- BNB: {
- name: 'Binance Coin',
- symbol: 'BNB',
- decimals: 18,
- logo: 'bnb.png',
- coinGeckoId: 'binancecoin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xB8c77482e45F1F44dE1745F52C74426C631bDD52',
- tokenType: TokenType.Erc20,
- },
- },
-
- AAVE: {
- name: 'Aave',
- symbol: 'AAVE',
- decimals: 18,
- logo: 'AAVE.png',
- coinGeckoId: 'aave',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9',
- tokenType: TokenType.Erc20,
- },
- },
-
- YFI: {
- name: 'yearn.finance',
- symbol: 'YFI',
- logo: 'yfi.png',
- decimals: 18,
- coinGeckoId: 'yearn-finance',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e',
- tokenType: TokenType.Erc20,
- },
- },
-
- COMP: {
- name: 'Compound',
- symbol: 'COMP',
- decimals: 18,
- logo: 'comp.png',
- coinGeckoId: 'compound-coin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xc00e94Cb662C3520282E6f5717214004A7f26888',
- tokenType: TokenType.Erc20,
- },
- },
-
- ZRX: {
- name: '0x',
- symbol: 'ZRX',
- decimals: 18,
- logo: 'zrx.png',
- coinGeckoId: '0x',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xE41d2489571d322189246DaFA5ebDe1F4699F498',
- tokenType: TokenType.Erc20,
- },
- },
-
- MATIC: {
- name: 'Polygon',
- logo: 'polygon.png',
- symbol: 'MATIC',
- decimals: 18,
- coinGeckoId: 'matic-network',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0',
- tokenType: TokenType.Erc20,
- },
- },
-
- UNI: {
- name: 'Uniswap',
- symbol: 'UNI',
- logo: 'uni.png',
- decimals: 18,
- coinGeckoId: 'uniswap',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984',
- tokenType: TokenType.Erc20,
- },
- },
-
- DAI: {
- name: 'Dai',
- symbol: 'DAI',
- decimals: 18,
- logo: 'dai.png',
- coinGeckoId: 'dai',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
- tokenType: TokenType.Erc20,
- },
- },
-
- LINK: {
- name: 'Chainlink',
- symbol: 'LINK',
- decimals: 18,
- logo: 'chainlink.png',
- coinGeckoId: 'chainlink',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x514910771AF9Ca656af840dff83E8264EcF986CA',
- tokenType: TokenType.Erc20,
- },
- },
-
- SUSHI: {
- name: 'SushiSwap',
- symbol: 'SUSHI',
- decimals: 18,
- logo: 'sushi.png',
- coinGeckoId: 'sushi',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6B3595068778DD592e39A122f4f5a5cF09C90fE2',
- tokenType: TokenType.Erc20,
- },
- },
-
- AXS: {
- name: 'Axie Infinity',
- symbol: 'AXS',
- decimals: 18,
- logo: 'axs.png',
- coinGeckoId: 'axie-infinity',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b',
- tokenType: TokenType.Erc20,
- },
- },
-
- '1INCH': {
- name: '1inch',
- symbol: '1INCH',
- decimals: 18,
- logo: '1inch.png',
- coinGeckoId: '1inch',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x111111111117dC0aa78b770fA6A738034120C302',
- tokenType: TokenType.Erc20,
- },
- },
-
- BAT: {
- name: 'Basic Attention Token',
- symbol: 'BAT',
- decimals: 18,
- logo: 'bat.png',
- coinGeckoId: 'basic-attention-token',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x0D8775F648430679A709E98d2b0Cb6250d2887EF',
- tokenType: TokenType.Erc20,
- },
- },
-
- BUSD: {
- name: 'Binance USD',
- symbol: 'BUSD',
- decimals: 18,
- logo: 'busd.png',
- coinGeckoId: 'binance-usd',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x4Fabb145d64652a948d72533023f6E7A623C7C53',
- tokenType: TokenType.Erc20,
- },
- },
-
- CEL: {
- name: 'Celsius',
- symbol: 'CEL',
- decimals: 4,
- logo: 'cel.png',
- coinGeckoId: 'celsius-degree-token',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 4,
- address: '0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d',
- tokenType: TokenType.Erc20,
- },
- },
-
- CELL: {
- name: 'Cellframe',
- symbol: 'CELL',
- decimals: 18,
- logo: 'cell.png',
- coinGeckoId: 'cellframe',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099',
- tokenType: TokenType.Erc20,
- },
- },
-
- DEFI5: {
- name: 'DEFI Top 5 Tokens Index',
- symbol: 'DEFI5',
- decimals: 18,
- logo: 'defi5.png',
- coinGeckoId: 'defi-top-5-tokens-index',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41',
- tokenType: TokenType.Erc20,
- },
- },
-
- ENJ: {
- name: 'Enjin Coin',
- symbol: 'ENJ',
- decimals: 18,
- logo: 'enj.png',
- coinGeckoId: 'enjincoin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c',
- tokenType: TokenType.Erc20,
- },
- },
-
- EVAI: {
- name: 'Evai.io',
- symbol: 'EVAI',
- decimals: 8,
- logo: 'evai.png',
- coinGeckoId: 'evai',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x50f09629d0afDF40398a3F317cc676cA9132055c',
- tokenType: TokenType.Erc20,
- },
- },
-
- FTM: {
- name: 'Fantom',
- symbol: 'FTM',
- decimals: 18,
- logo: 'ftm.png',
- coinGeckoId: 'fantom',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x4E15361FD6b4BB609Fa63C81A2be19d873717870',
- tokenType: TokenType.Erc20,
- },
- },
-
- HT: {
- name: 'Huobi Token',
- symbol: 'HT',
- decimals: 18,
- logo: 'ht.png',
- coinGeckoId: 'huobi-token',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6f259637dcD74C767781E37Bc6133cd6A68aa161',
- tokenType: TokenType.Erc20,
- },
- },
-
- NEXO: {
- name: 'Nexo',
- symbol: 'NEXO',
- decimals: 18,
- logo: 'nexo.png',
- coinGeckoId: 'nexo',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206',
- tokenType: TokenType.Erc20,
- },
- },
-
- NOIA: {
- name: 'Syntropy',
- symbol: 'NOIA',
- decimals: 18,
- logo: 'noia.png',
- coinGeckoId: 'noia-network',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca',
- tokenType: TokenType.Erc20,
- },
- },
-
- OCEAN: {
- name: 'Ocean Protocol',
- symbol: 'OCEAN',
- decimals: 18,
- logo: 'ocean.png',
- coinGeckoId: 'ocean-protocol',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x967da4048cD07aB37855c090aAF366e4ce1b9F48',
- tokenType: TokenType.Erc20,
- },
- },
-
- PAXG: {
- name: 'PAX Gold',
- symbol: 'PAXG',
- decimals: 18,
- logo: 'paxg.png',
- coinGeckoId: 'pax-gold',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x45804880De22913dAFE09f4980848ECE6EcbAf78',
- tokenType: TokenType.Erc20,
- },
- },
-
- POOL: {
- name: 'PoolTogether',
- symbol: 'POOL',
- decimals: 18,
- logo: 'pool.png',
- coinGeckoId: 'pooltogether',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e',
- tokenType: TokenType.Erc20,
- },
- },
-
- RUNE: {
- name: 'THORChain (ERC20)',
- symbol: 'RUNE',
- decimals: 18,
- logo: 'rune.png',
- coinGeckoId: 'thorchain-erc20',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x3155BA85D5F96b2d030a4966AF206230e46849cb',
- tokenType: TokenType.Erc20,
- },
- },
-
- SHIB: {
- name: 'SHIBA INU',
- symbol: 'SHIB',
- decimals: 18,
- logo: 'shib.png',
- coinGeckoId: 'shiba-inu',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',
- tokenType: TokenType.Erc20,
- },
- },
-
- STARS: {
- name: 'Mogul Productions',
- symbol: 'STARS',
- decimals: 18,
- logo: 'stars.png',
- coinGeckoId: 'mogul-productions',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca',
- tokenType: TokenType.Erc20,
- },
- },
-
- STT: {
- name: 'Scatter.cx',
- symbol: 'STT',
- decimals: 18,
- logo: 'scatter.webp',
- coinGeckoId: 'scatter-cx',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd',
- tokenType: TokenType.Erc20,
- },
- },
-
- SWAP: {
- name: 'TrustSwap',
- symbol: 'SWAP',
- decimals: 18,
- logo: 'trustswap.png',
- coinGeckoId: 'trustswap',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xcc4304a31d09258b0029ea7fe63d032f52e44efe',
- tokenType: TokenType.Erc20,
- },
- },
-
- UMA: {
- name: 'UMA',
- symbol: 'UMA',
- decimals: 18,
- coinGeckoId: 'uma',
- logo: 'uma.png',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828',
- tokenType: TokenType.Erc20,
- },
- },
-
- UTK: {
- name: 'Utrust',
- symbol: 'UTK',
- decimals: 18,
- logo: 'utk.png',
- coinGeckoId: 'utrust',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c',
- tokenType: TokenType.Erc20,
- },
- },
-
- ATOM: {
- name: 'Cosmos',
- symbol: 'ATOM',
- decimals: 6,
- logo: 'atom.png',
- coinGeckoId: 'cosmos',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 6,
- address: '0x8D983cb9388EaC77af0474fA441C4815500Cb7BB',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uatom',
- path: 'transfer/channel-1',
- channelId: 'channel-1',
- hash: 'C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9',
- tokenType: TokenType.Ibc,
- },
- },
-
- UPHOTON: {
- name: 'Cosmos Testnet',
- symbol: 'UPHOTON',
- decimals: 6,
- logo: 'atom.png',
- coinGeckoId: 'cosmos',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 6,
- address: '0x8D983cb9388EaC77af0474fA441C4815500Cb7BB',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uphoton',
- path: 'transfer/channel-2',
- channelId: 'channel-2',
- hash: '48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB',
- tokenType: TokenType.Ibc,
- },
- },
-
- LUNA: {
- name: 'Terra',
- symbol: 'LUNA',
- decimals: 6,
- logo: 'luna.png',
- coinGeckoId: 'terra-luna',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 6,
- address: '0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uluna',
- path: 'transfer/channel-4',
- channelId: 'channel-4',
- hash: 'B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395',
- tokenType: TokenType.Ibc,
- },
- },
-
- UST: {
- name: 'TerraUSD',
- baseDenom: 'UUSD',
- symbol: 'UST',
- logo: 'ust.png',
- decimals: 18,
- coinGeckoId: 'terrausd',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 18,
- address: '0xa47c8bf37f92aBed4A126BDA807A7b7498661acD',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 18,
- isNative: true,
- baseDenom: 'uusd',
- path: 'transfer/channel-4',
- channelId: 'channel-4',
- hash: 'B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C',
- tokenType: TokenType.Ibc,
- },
- },
-
- GF: {
- name: 'GuildFi',
- symbol: 'GF',
- decimals: 18,
- logo: 'gf.png',
- coinGeckoId: 'guildfi',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xaaef88cea01475125522e117bfe45cf32044e238',
- tokenType: TokenType.Erc20,
- },
- },
-
- XBX: {
- name: 'BurnX',
- symbol: 'XBX',
- decimals: 18,
- logo: 'xbx.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x080B12E80C9b45e97C23b6ad10a16B3e2a123949',
- tokenType: TokenType.Erc20,
- },
- },
-
- OSMO: {
- name: 'Osmosis',
- symbol: 'OSMO',
- decimals: 6,
- coinGeckoId: 'osmosis',
- logo: 'osmo.png',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uosmo',
- path: 'transfer/channel-8',
- channelId: 'channel-8',
- hash: '92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333',
- tokenType: TokenType.Ibc,
- },
- },
-
- TAB: {
- name: 'Injective',
- logo: 'injective-v3.png',
- symbol: 'TAB',
- decimals: 18,
- coinGeckoId: 'injective-protocol',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD',
- tokenType: TokenType.Erc20,
- },
- },
-
- HUAHUA: {
- name: 'Chihuahua',
- symbol: 'HUAHUA',
- decimals: 6,
- logo: 'chihuahua.jpeg',
- coinGeckoId: 'chihuahua-token',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uhuahua',
- path: 'transfer/channel-76',
- channelId: 'channel-76',
- hash: 'E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB',
- tokenType: TokenType.Ibc,
- },
- },
-
- JUNO: {
- name: 'Juno',
- symbol: 'JUNO',
- decimals: 6,
- logo: 'juno.jpeg',
- coinGeckoId: 'juno-network',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ujuno',
- path: 'transfer/channel-78',
- channelId: 'channel-78',
- hash: 'D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211',
- tokenType: TokenType.Ibc,
- },
- },
-
- WHALE: {
- name: 'White Whale',
- symbol: 'WHALE',
- decimals: 6,
- logo: 'whale.png',
- coinGeckoId: 'white-whale',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uwhale',
- path: 'transfer/channel-102',
- channelId: 'channel-102',
- hash: 'D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445',
- tokenType: TokenType.Ibc,
- },
- },
-
- NOIS: {
- name: 'Nois',
- symbol: 'NOIS',
- decimals: 6,
- coinGeckoId: 'nois',
- logo: 'nois.png',
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'unois',
- path: 'transfer/channel-138',
- channelId: 'channel-138',
- hash: 'DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A',
- tokenType: TokenType.Ibc,
- },
- },
-
- AXL: {
- name: 'Axelar',
- logo: 'axelar.png',
- symbol: 'AXL',
- decimals: 6,
- coinGeckoId: 'axelar',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 6,
- address: '0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uaxl',
- path: 'transfer/channel-84',
- channelId: 'channel-84',
- hash: 'B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65',
- tokenType: TokenType.Ibc,
- },
- },
-
- BAYC: {
- name: 'Bored Ape Yacht Club',
- symbol: 'BAYC',
- logo: 'bayc.png',
- decimals: 18,
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- APE: {
- name: 'Ape Coin',
- symbol: 'APE',
- decimals: 18,
- logo: 'ape.png',
- coinGeckoId: 'apecoin',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x4d224452801ACEd8B2F0aebE155379bb5D594381',
- tokenType: TokenType.Erc20,
- },
- },
-
- SCRT: {
- name: 'Secret Network',
- symbol: 'SCRT',
- decimals: 6,
- logo: 'scrt.png',
- coinGeckoId: 'secret',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uscrt',
- path: 'transfer/channel-88',
- channelId: 'channel-88',
- hash: '0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A',
- tokenType: TokenType.Ibc,
- },
- },
-
- XPRT: {
- name: 'Persistence',
- symbol: 'XPRT',
- decimals: 6,
- logo: 'xprt.png',
- coinGeckoId: 'persistence',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'uxprt',
- path: 'transfer/channel-82',
- channelId: 'channel-82',
- hash: 'B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB',
- tokenType: TokenType.Ibc,
- },
- },
-
- EVMOS: {
- name: 'Evmos',
- symbol: 'EVMOS',
- decimals: 18,
- logo: 'evmos.png',
- coinGeckoId: 'evmos',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 18,
- isNative: true,
- baseDenom: 'aevmos',
- path: 'transfer/channel-83',
- channelId: 'channel-83',
- hash: '16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821',
- tokenType: TokenType.Ibc,
- },
- },
-
- STX: {
- name: 'Stacks',
- symbol: 'STX',
- decimals: 6,
- logo: 'stacks.png',
- coinGeckoId: 'blockstack',
- tokenType: TokenType.Unknown,
- },
-
- DOT: {
- name: 'Polkadot',
- symbol: 'DOT',
- decimals: 10,
- logo: 'dot.jpeg',
- coinGeckoId: 'polkadot',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 10,
- address: '0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 10,
- isNative: false,
- baseDenom: 'dot-planck',
- path: 'transfer/channel-84',
- channelId: 'channel-84',
- hash: '624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4',
- tokenType: TokenType.Ibc,
- },
-
- cw20: {
- decimals: 10,
- address: 'inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf',
- tokenType: TokenType.Cw20,
- },
- },
-
- 'DOT-PLANCK': {
- name: 'Polkadot',
- symbol: 'DOT',
- decimals: 10,
- logo: 'dot.jpeg',
- coinGeckoId: 'polkadot',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 10,
- address: '0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080',
- tokenType: TokenType.Erc20,
- },
- },
-
- STRD: {
- name: 'Stride',
- symbol: 'STRD',
- decimals: 6,
- logo: 'stride.png',
- coinGeckoId: 'stride',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ustrd',
- path: 'transfer/channel-89',
- channelId: 'channel-89',
- hash: '3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25',
- tokenType: TokenType.Ibc,
- },
- },
-
- CRE: {
- name: 'Crescent',
- symbol: 'CRE',
- decimals: 6,
- logo: 'crescent.jpeg',
- coinGeckoId: 'crescent-network',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ucre',
- path: 'transfer/channel-90',
- channelId: 'channel-90',
- hash: '3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6',
- tokenType: TokenType.Ibc,
- },
- },
-
- ZEN: {
- name: 'ZEN',
- logo: 'zen.svg',
- symbol: 'ZEN',
- decimals: 18,
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
-
- cw20: {
- decimals: 18,
- address: 'uzen',
- tokenType: TokenType.Cw20,
- },
- },
-
- PROJ: {
- name: 'PROJ',
- logo: 'proj.png',
- symbol: 'PROJ',
- decimals: 18,
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
-
- cw20: {
- decimals: 18,
- address: 'proj',
- tokenType: TokenType.Cw20,
- },
- },
-
- PUNK: {
- name: 'Punk DAO Token',
- logo: 'PUNK.png',
- symbol: 'PUNK',
- decimals: 6,
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- PROJX: {
- name: 'PROJX',
- logo: 'projx.png',
- symbol: 'PROJX',
- decimals: 18,
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
-
- cw20: {
- decimals: 18,
- address: 'projx',
- tokenType: TokenType.Cw20,
- },
- },
-
- ASTRO: {
- name: 'ASTRO',
- symbol: 'ASTRO',
- decimals: 6,
- logo: 'astroport.png',
- coinGeckoId: 'astroport-fi',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom:
- 'cw20:terra1nsuqsk6kh58ulczatwev87ttq2z6r3pusulg9r24mfj2fvtzd4uq3exn26',
- path: 'transfer/channel-104',
- channelId: 'channel-104',
- hash: 'EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839',
- tokenType: TokenType.Ibc,
- },
- },
-
- SOL: {
- name: 'Solana',
- symbol: 'SOL',
- decimals: 8,
- logo: 'solana.png',
- coinGeckoId: 'solana',
- tokenType: TokenType.Cw20,
-
- spl: {
- decimals: 9,
- address: '',
- isNative: true,
- tokenType: TokenType.Spl,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3',
- tokenType: TokenType.Cw20,
- },
- },
-
- SOMM: {
- name: 'Sommelier',
- symbol: 'SOMM',
- decimals: 6,
- logo: 'sommelier.png',
- coinGeckoId: 'sommelier',
- tokenType: TokenType.Ibc,
-
- erc20: {
- decimals: 6,
- address: '0xa670d7237398238DE01267472C6f13e5B8010FD1',
- tokenType: TokenType.Erc20,
- },
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'usomm',
- path: 'transfer/channel-93',
- channelId: 'channel-93',
- hash: '34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B',
- tokenType: TokenType.Ibc,
- },
- },
-
- ETHBTCTREND: {
- name: 'ETHBTC Trend',
- symbol: 'ETHBTCTrend',
- decimals: 18,
- logo: 'ethbtctrend.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6b7f87279982d919Bbf85182DDeAB179B366D8f2',
- tokenType: TokenType.Erc20,
- },
- },
-
- STEADYETH: {
- name: 'SteadyETH',
- symbol: 'SteadyETH',
- decimals: 18,
- logo: 'steadyeth.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x3F07A84eCdf494310D397d24c1C78B041D2fa622',
- tokenType: TokenType.Erc20,
- },
- },
-
- STEADYBTC: {
- name: 'SteadyBTC',
- symbol: 'SteadyBTC',
- decimals: 18,
- logo: 'steadybtc.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d',
- tokenType: TokenType.Erc20,
- },
- },
-
- XPLA: {
- name: 'XPLA',
- symbol: 'XPLA',
- decimals: 8,
- logo: 'xpla.png',
- coinGeckoId: 'xpla',
- tokenType: TokenType.Cw20,
-
- cw20: {
- decimals: 8,
- address: 'inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe',
- tokenType: TokenType.Cw20,
- },
- },
-
- AVAX: {
- name: 'AVAX',
- symbol: 'WAVAX',
- decimals: 8,
- logo: 'avax.webp',
- coinGeckoId: 'avalanche-2',
- tokenType: TokenType.Cw20,
-
- cw20: {
- decimals: 8,
- address: 'inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6',
- tokenType: TokenType.Cw20,
- },
- },
-
- BONK: {
- name: 'BONK',
- symbol: 'BONK',
- decimals: 5,
- logo: 'bonk.jpeg',
- coinGeckoId: 'bonk',
- type: TokenType.TokenFactory,
- },
-
- CHZ: {
- name: 'Chiliz',
- symbol: 'CHZ',
- decimals: 18,
- logo: 'chz.png',
- coinGeckoId: 'chiliz',
- tokenType: TokenType.Cw20,
-
- erc20: {
- decimals: 18,
- address: '0x3506424F91fD33084466F402d5D97f05F8e3b4AF',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh',
- tokenType: TokenType.Cw20,
- },
- },
-
- CANTO: {
- name: 'Canto',
- symbol: 'CANTO',
- decimals: 18,
- logo: 'canto.webp',
- coinGeckoId: 'canto',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 18,
- isNative: true,
- baseDenom: 'acanto',
- path: 'transfer/channel-99',
- channelId: 'channel-99',
- hash: 'D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8',
- tokenType: TokenType.Ibc,
- },
- },
-
- QAT: {
- name: 'Test QAT',
- symbol: 'QAT',
- decimals: 18,
- logo: 'injective-v3.png',
- coinGeckoId: 'injective-protocol',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen',
- tokenType: TokenType.Cw20,
- },
- },
-
- PUGGO: {
- name: 'Puggo',
- symbol: 'PUG',
- decimals: 18,
- logo: 'puggo.jpg',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b',
- tokenType: TokenType.Erc20,
- },
- },
-
- LDO: {
- name: 'Lido DAO Token',
- symbol: 'LDO',
- decimals: 18,
- logo: 'lido-dao.webp',
- coinGeckoId: 'lido-dao',
- tokenType: TokenType.Cw20,
-
- erc20: {
- decimals: 18,
- address: '0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy',
- tokenType: TokenType.Cw20,
- },
- },
-
- ARB: {
- name: 'Arbitrum',
- symbol: 'ARB',
- decimals: 18,
- logo: 'arb-circle.png',
- coinGeckoId: 'arbitrum',
- tokenType: TokenType.Cw20,
-
- evm: {
- decimals: 18,
- address: '0x912CE59144191C1204E64559FE8253a0e49E6548',
- tokenType: TokenType.Erc20,
- },
-
- erc20: {
- decimals: 18,
- address: '0x912CE59144191C1204E64559FE8253a0e49E6548',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd',
- source: TokenSource.Arbitrum,
- tokenType: TokenType.Cw20,
- },
- },
-
- EUR: {
- name: 'Euro',
- symbol: 'EUR',
- decimals: 6,
- logo: 'eur.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- GBP: {
- name: 'British Pound',
- symbol: 'GBP',
- decimals: 6,
- logo: 'gpb.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- JPY: {
- name: 'Japanese Yen',
- symbol: 'JPY',
- decimals: 6,
- logo: 'jpy.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- BRZ: {
- name: 'Brazilian Digital Token',
- symbol: 'BRZ',
- decimals: 4,
- logo: 'brz.png',
- coinGeckoId: 'brz',
- tokenType: TokenType.Cw20,
-
- erc20: {
- decimals: 4,
- address: '0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 4,
- address: 'inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk',
- tokenType: TokenType.Cw20,
- },
- },
-
- ASTR: {
- name: 'Astar',
- symbol: 'ASTR',
- decimals: 18,
- logo: 'astar.png',
- coinGeckoId: 'astar',
- tokenType: TokenType.Cw20,
-
- cw20: {
- decimals: 18,
- address: 'inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x',
- tokenType: TokenType.Cw20,
- },
- },
-
- XAU: {
- name: 'Gold',
- symbol: 'XAU',
- decimals: 6,
- logo: 'gold.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- ALPHA: {
- name: 'Alpha Coin',
- symbol: 'ALPHA',
- decimals: 18,
- logo: 'alpha.png',
- coinGeckoId: 'alphacoin',
- tokenType: TokenType.Cw20,
-
- erc20: {
- decimals: 18,
- address: '0x138C2F1123cF3f82E4596d097c118eAc6684940B',
- tokenType: TokenType.Erc20,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u',
- tokenType: TokenType.Cw20,
- },
- },
-
- WMATIC: {
- name: 'Wrapped Matic',
- symbol: 'WMATIC',
- decimals: 18,
- logo: 'polygon.png',
- coinGeckoId: 'wmatic',
- tokenType: TokenType.Cw20,
-
- evm: {
- decimals: 18,
- isNative: true,
- address: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',
- tokenType: TokenType.Evm,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h',
- source: TokenSource.Polygon,
- tokenType: TokenType.Cw20,
- },
- },
-
- '1MPEPE': {
- name: 'Pepe',
- symbol: 'MPEPE',
- decimals: 18,
- logo: 'pepe.jpeg',
- coinGeckoId: 'pepe',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
- tokenType: TokenType.Erc20,
- },
- },
-
- '1000PEPE': {
- name: 'Pepe',
- symbol: 'KPEPE',
- decimals: 18,
- logo: 'pepe.jpeg',
- coinGeckoId: 'pepe',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
- tokenType: TokenType.Erc20,
- },
- },
-
- PEPE: {
- name: 'Pepe',
- symbol: 'PEPE',
- decimals: 18,
- logo: 'pepe.jpeg',
- coinGeckoId: 'pepe',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x6982508145454ce325ddbe47a25d4ec3d2311933',
- tokenType: TokenType.Erc20,
- },
- },
-
- WASSIE: {
- name: 'WASSIE',
- symbol: 'WASSIE',
- decimals: 18,
- logo: 'wassie.jpeg',
- coinGeckoId: 'wassie',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160',
- tokenType: TokenType.Erc20,
- },
- },
-
- RIBBIT: {
- name: 'Ribbit Meme',
- symbol: 'RIBBIT',
- decimals: 18,
- logo: 'ribbit.jpeg',
- coinGeckoId: 'ribbit-meme',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xb794Ad95317f75c44090f64955954C3849315fFe',
- tokenType: TokenType.Erc20,
- },
- },
-
- LAMBO: {
- name: 'Lambo',
- symbol: 'LAMBO',
- decimals: 18,
- logo: 'lambo.jpeg',
- coinGeckoId: 'lambo-0fcbf0f7-1a8f-470d-ba09-797d5e95d836',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3',
- tokenType: TokenType.Erc20,
- },
- },
-
- STINJ: {
- name: 'Stride Staked Injective',
- symbol: 'STINJ',
- decimals: 18,
- logo: 'stinj.png',
- coinGeckoId: 'stride-staked-injective',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 18,
- isNative: true,
- baseDenom: 'stinj',
- path: 'transfer/channel-89',
- channelId: 'channel-89',
- hash: 'AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93',
- tokenType: TokenType.Ibc,
- },
- },
-
- XRP: {
- name: 'Ripple',
- symbol: 'XRP',
- decimals: 18,
- logo: 'xrp.png',
- coinGeckoId: 'ripple',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe',
- tokenType: TokenType.Erc20,
- },
- },
-
- DEMO: {
- name: 'Demo Coin',
- symbol: 'DEMO',
- decimals: 6,
- logo: 'injective-v3.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- RAI: {
- name: 'Rai Reflex Index',
- symbol: 'RAI',
- decimals: 18,
- logo: 'rai.png',
- coinGeckoId: 'rai',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919',
- tokenType: TokenType.Erc20,
- },
- },
-
- BTSG: {
- name: 'Rai Reflex Index',
- symbol: 'BitSong',
- decimals: 18,
- logo: 'btsg.png',
- coinGeckoId: 'bitsong',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x05079687D35b93538cbd59fe5596380cae9054A9',
- tokenType: TokenType.Erc20,
- },
- },
-
- CVR: {
- name: 'CoverCompared',
- symbol: 'CVR',
- decimals: 18,
- logo: 'cvr.png',
- coinGeckoId: 'covercompared',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6',
- tokenType: TokenType.Erc20,
- },
- },
-
- QNT: {
- name: 'Quant',
- symbol: 'QNT',
- decimals: 18,
- logo: 'qnt.png',
- coinGeckoId: 'quant-network',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x4a220e6096b25eadb88358cb44068a3248254675',
- tokenType: TokenType.Erc20,
- },
- },
-
- WSTETH: {
- name: 'Lido wstETH',
- symbol: 'WSTETH',
- decimals: 18,
- logo: 'wsteth.png',
- coinGeckoId: 'wrapped-steth',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0',
- tokenType: TokenType.Erc20,
- },
- },
-
- DYDX: {
- name: 'dYdX',
- symbol: 'dYdX',
- decimals: 18,
- logo: 'dydx.png',
- coinGeckoId: 'dydx',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x92d6c1e31e14520e676a687f0a93788b716beff5',
- tokenType: TokenType.Erc20,
- },
- },
-
- XAC: {
- name: 'General Attention Currency',
- symbol: 'XAC',
- decimals: 8,
- logo: 'xac.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0xDe4C5a791913838027a2185709E98c5C6027EA63',
- tokenType: TokenType.Erc20,
- },
- },
-
- STETH: {
- name: 'Lido Staked ETH',
- symbol: 'stETH',
- decimals: 18,
- logo: 'steth.png',
- coinGeckoId: 'staked-ether',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',
- tokenType: TokenType.Erc20,
- },
- },
-
- LYM: {
- name: 'Lympo',
- symbol: 'LYM',
- decimals: 18,
- logo: 'lympo.png',
- coinGeckoId: 'lympo',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5',
- tokenType: TokenType.Erc20,
- },
- },
-
- OMI: {
- name: 'ECOMI',
- symbol: 'OMI',
- decimals: 18,
- logo: 'omi.png',
- coinGeckoId: 'ecomi',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xed35af169af46a02ee13b9d79eb57d6d68c1749e',
- tokenType: TokenType.Erc20,
- },
- },
-
- POINT: {
- name: 'Reward Point Token',
- symbol: 'POINT',
- decimals: 0,
- logo: 'point.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- KAVA: {
- name: 'KAVA',
- symbol: 'KAVA',
- decimals: 6,
- logo: 'kava.webp',
- coinGeckoId: 'kava',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ukava',
- path: 'transfer/channel-143',
- channelId: 'channel-143',
- hash: '57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205',
- tokenType: TokenType.Ibc,
- },
- },
-
- SEI: {
- name: 'SEI',
- symbol: 'SEI',
- decimals: 6,
- logo: 'sei.webp',
- coinGeckoId: 'sei-network',
- tokenType: TokenType.Unknown,
- },
-
- VATRENI: {
- name: 'Vatreni Token',
- symbol: 'VATRENI',
- decimals: 18,
- logo: 'vatreni.jpeg',
- coinGeckoId: 'croatian-ff-fan-token',
- tokenType: TokenType.Cw20,
-
- evm: {
- decimals: 18,
- isNative: true,
- address: '0xD60DebA014459F07BBcC077a5B817f31DaFD5229',
- tokenType: TokenType.Evm,
- },
-
- cw20: {
- decimals: 8,
- address: 'inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay',
- source: TokenSource.Polygon,
- tokenType: TokenType.Cw20,
- },
- },
-
- NBLA: {
- name: 'Nebula',
- symbol: 'NBLA',
- decimals: 6,
- logo: 'nebula.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- WKLAY: {
- name: 'Wrapped Klaytn',
- symbol: 'WKLAY',
- decimals: 8,
- logo: 'klaytn.webp',
- coinGeckoId: 'klay-token',
- tokenType: TokenType.Cw20,
-
- cw20: {
- decimals: 8,
- address: 'inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4',
- tokenType: TokenType.Cw20,
- },
- },
-
- NEOK: {
- name: 'NEOKingdom DAO',
- symbol: 'NEOK',
- decimals: 18,
- logo: 'neok.png',
- coinGeckoId: '',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 18,
- isNative: true,
- baseDenom: 'erc20/0x655ecB57432CC1370f65e5dc2309588b71b473A9',
- path: 'transfer/channel-83',
- channelId: 'channel-83',
- hash: 'F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4',
- tokenType: TokenType.Ibc,
- },
- },
-
- ORAI: {
- name: 'Oraichain',
- symbol: 'ORAI',
- decimals: 6,
- logo: 'orai.png',
- coinGeckoId: 'oraichain-token',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'orai',
- path: 'transfer/channel-147',
- channelId: 'channel-147',
- hash: 'C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565',
- tokenType: TokenType.Ibc,
- },
- },
-
- GOLD: {
- name: 'GOLD',
- symbol: 'GOLD',
- decimals: 18,
- logo: 'gold.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- EVINDEX: {
- name: 'EVIINDEX',
- symbol: 'EVIINDEX',
- decimals: 18,
- logo: 'truEVINDEX.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- TRUCPI: {
- name: 'TRUCPI',
- symbol: 'TRUCPI',
- decimals: 18,
- logo: 'truflation.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- },
-
- TIA: {
- name: 'Celestia',
- symbol: 'TIA',
- decimals: 6,
- logo: 'tia.webp',
- coinGeckoId: 'celestia',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'utia',
- path: 'transfer/channel-152',
- channelId: 'channel-152',
- hash: 'F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4',
- tokenType: TokenType.Ibc,
- },
- },
-
- TALIS: {
- name: 'Talis',
- symbol: 'TALIS',
- decimals: 6,
- logo: 'talis.webp',
- coinGeckoId: 'talis-protocol',
- tokenType: TokenType.TokenFactory,
- },
-
- KIRA: {
- name: 'KIRA',
- symbol: 'KIRA',
- decimals: 6,
- logo: 'kira.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- USDY: {
- name: 'Ondo US Dollar Yield',
- symbol: 'USDY',
- decimals: 18,
- logo: 'usdy.webp',
- coinGeckoId: 'ondo-us-dollar-yield',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x96F6eF951840721AdBF46Ac996b59E0235CB985C',
- tokenType: TokenType.Erc20,
- },
- },
-
- KUJI: {
- name: 'Kujira',
- symbol: 'KUJI',
- decimals: 6,
- logo: 'kuji.webp',
- coinGeckoId: 'kujira',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ukuji',
- path: 'transfer/channel-98',
- channelId: 'channel-98',
- hash: '9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204',
- tokenType: TokenType.Ibc,
- },
- },
-
- 'USDC-MPL': {
- name: 'USDC Maple',
- symbol: 'USDC-MPL',
- decimals: 6,
- logo: 'usdc-mpl.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 6,
- address: '0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A',
- tokenType: TokenType.Erc20,
- },
- },
-
- PYTH: {
- name: 'Pyth Network',
- symbol: 'PYTH',
- decimals: 6,
- logo: 'pyth.png',
- coinGeckoId: 'pyth-network',
- tokenType: TokenType.Cw20,
-
- spl: {
- decimals: 6,
- symbol: 'PYTH',
- isNative: false,
- address: 'HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3',
- tokenType: TokenType.Spl,
- },
-
- cw20: {
- decimals: 6,
- symbol: 'PYTH',
- source: TokenSource.Solana,
- address: 'inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy',
- tokenType: TokenType.Cw20,
- },
- },
-
- TIX: {
- name: 'Timeworx.io',
- symbol: 'TIX',
- decimals: 6,
- logo: 'tix.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- NINJ: {
- name: 'Gryphon Staked Injective',
- symbol: 'nINJ',
- decimals: 18,
- logo: 'ninj.png',
- coinGeckoId: '',
- tokenType: TokenType.Cw20,
-
- cw20: {
- decimals: 18,
- symbol: 'nINJ',
- address: 'inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf',
- tokenType: TokenType.Cw20,
- },
- },
-
- BINJ: {
- name: 'Bird INJ',
- symbol: 'BINJ',
- decimals: 6,
- logo: 'bird.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- NINJA: {
- name: 'Dog Wif Nunchucks',
- symbol: 'NINJA',
- decimals: 6,
- logo: 'ninja.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- KATANA: {
- name: 'Dog Wif Katana',
- symbol: 'KATANA',
- decimals: 6,
- logo: 'katana.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- GALAXY: {
- name: 'GALAXY',
- symbol: 'GALAXY',
- decimals: 6,
- logo: 'galaxy.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- AOI: {
- name: 'Alien Token',
- symbol: '$AOI',
- decimals: 6,
- logo: 'aoi.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- NOBI: {
- name: 'Shinobi',
- symbol: 'NOBI',
- decimals: 6,
- logo: 'nobi.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- YUKI: {
- name: 'Yuki Dog',
- symbol: 'YUKI',
- decimals: 6,
- logo: 'yuki.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- WAGMI: {
- name: 'Wagmi Coin',
- symbol: 'WAGMI',
- decimals: 9,
- logo: 'wagmi.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- BAMBOO: {
- name: 'Injective Panda',
- symbol: 'BAMBOO',
- decimals: 6,
- logo: 'panda.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- SHURIKEN: {
- name: 'Shuriken Token',
- symbol: 'SHURIKEN',
- decimals: 6,
- logo: 'shuriken.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- BRETT: {
- name: 'BluePepe',
- symbol: 'BRETT',
- decimals: 6,
- logo: 'brett.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- ZIG: {
- name: 'ZigCoin',
- symbol: 'ZIG',
- decimals: 18,
- logo: 'zigg.jpeg',
- coinGeckoId: 'zignaly',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xb2617246d0c6c0087f18703d576831899ca94f01',
- tokenType: TokenType.Erc20,
- },
- },
-
- DOJ: {
- name: 'DOJcoin',
- symbol: 'DOJ',
- decimals: 6,
- logo: 'doj.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- SKIPBIDIDOBDOBDOBYESYESYESYES: {
- name: 'SKIPBIDIDOBDOBDOBYESYESYESYES',
- symbol: 'SKIPBIDIDOBDOBDOBYESYESYESYES',
- decimals: 9,
- logo: 'skibidi.jpeg',
- coinGeckoId: '',
-
- erc20: {
- decimals: 9,
- address: '0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d',
- tokenType: TokenType.Erc20,
- },
- },
-
- GINGER: {
- name: 'GINGER',
- symbol: 'GINGER',
- decimals: 6,
- logo: 'ginger.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- ERIC: {
- name: 'TheJanitor',
- symbol: 'ERIC',
- decimals: 6,
- logo: 'eric.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- INJINU: {
- name: 'INJINU',
- symbol: 'INJINU',
- decimals: 6,
- logo: 'injinu.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- Babykira: {
- name: 'Babykira',
- symbol: '$Babykira',
- decimals: 6,
- logo: 'babykira.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- LIOR: {
- name: 'LIOR',
- symbol: 'LIOR',
- decimals: 6,
- logo: 'lior.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- INJINEER: {
- name: 'INJINEER',
- symbol: 'INJER',
- decimals: 6,
- logo: 'INJINEER.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- SHIBA: {
- name: 'Shiba',
- symbol: 'shibainj',
- decimals: 6,
- logo: 'shiba.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- GROK: {
- name: 'GROK',
- symbol: 'GROK',
- decimals: 6,
- logo: 'grok.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- SNOWY: {
- name: 'Injective Snowy',
- symbol: 'SNOWY',
- decimals: 6,
- logo: 'snowy.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- BULLS: {
- name: 'BULLS',
- symbol: 'BULLS',
- decimals: 6,
- logo: 'bulls.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- LVN: {
- name: 'Levana',
- symbol: 'LVN',
- decimals: 6,
- coinGeckoId: 'levana-protocol',
- logo: 'lvn.png',
- tokenType: TokenType.Ibc,
-
- ibc: {
- decimals: 6,
- isNative: true,
- baseDenom: 'ulvn',
- path: 'transfer/channel-8',
- channelId: 'channel-8',
- hash: '4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8',
- tokenType: TokenType.Ibc,
- },
- },
-
- KINJA: {
- name: 'Kinja',
- symbol: 'KINJA',
- decimals: 6,
- logo: 'kinja.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- LAMA: {
- name: 'LAMA',
- symbol: 'LAMA',
- decimals: 6,
- logo: 'lama.webp',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- INJEX: {
- name: 'Internet Explorer',
- symbol: 'INJEX',
- decimals: 6,
- logo: 'injex.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- NINJB: {
- name: 'NINJB',
- symbol: 'NINJB',
- decimals: 6,
- logo: 'ninjb.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- KARATE: {
- name: 'Doge Wif Karate',
- symbol: 'KARATE',
- decimals: 6,
- logo: 'karate.jpg',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- NPEPE: {
- name: 'NinjaPepe',
- symbol: 'NPEPE',
- decimals: 6,
- logo: 'NPEPE.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- MILK: {
- name: 'MILK',
- symbol: 'MILK',
- decimals: 6,
- logo: 'milk.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- INCEL: {
- name: 'InjectiveCelestiaNoFapLadyBoy420Inu',
- symbol: 'INCEL',
- decimals: 6,
- logo: 'incel.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- PIKACHU: {
- name: 'Pikachu',
- symbol: 'PIKA',
- decimals: 6,
- logo: 'pikachu.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- WGMI: {
- name: 'WGMI',
- symbol: 'WGMI',
- decimals: 6,
- logo: 'wgmi.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- WIZZ: {
- name: 'WIZZ',
- symbol: 'WIZZ',
- decimals: 6,
- logo: 'wizz.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- MEMEME: {
- name: 'Mememe',
- symbol: 'MEMEME',
- decimals: 18,
- logo: 'meme.png',
- coinGeckoId: 'mememe',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x1A963Df363D01EEBB2816b366d61C917F20e1EbE',
- tokenType: TokenType.Erc20,
- },
- },
-
- MAGA: {
- name: 'Trump',
- symbol: 'MAGA',
- decimals: 9,
- logo: 'maga.png',
- coinGeckoId: 'maga',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 9,
- address: '0x576e2BeD8F7b46D34016198911Cdf9886f78bea7',
- tokenType: TokenType.Erc20,
- },
- },
-
- SDEX: {
- name: 'SmarDex',
- symbol: 'SDEX',
- decimals: 18,
- logo: 'maga.png',
- coinGeckoId: 'smardex',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF',
- tokenType: TokenType.Erc20,
- },
- },
-
- OX: {
- name: 'Open Exchange Token',
- symbol: 'OX',
- decimals: 18,
- logo: 'ox.png',
- coinGeckoId: 'open-exchange-token',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f',
- tokenType: TokenType.Erc20,
- },
- },
-
- FUSDT: {
- name: 'Flux USDT',
- symbol: 'fUSDT',
- decimals: 8,
- logo: 'flux.png',
- coinGeckoId: 'flux-usdt',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7',
- tokenType: TokenType.Erc20,
- },
- },
-
- PVP: {
- name: 'PVP',
- symbol: 'PVP',
- decimals: 8,
- logo: 'unknown.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x9B44793a0177C84DD01AD81137db696531902871',
- tokenType: TokenType.Erc20,
- },
- },
-
- POOR: {
- name: 'Proof Of Officially Rugged',
- symbol: 'POOR',
- decimals: 8,
- logo: 'unknown.png',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 8,
- address: '0x9D433Fa992C5933D6843f8669019Da6D512fd5e9',
- tokenType: TokenType.Erc20,
- },
- },
-
- VRD: {
- name: 'Viridis Network',
- symbol: 'VRD',
- decimals: 18,
- logo: 'vrd.png',
- coinGeckoId: 'viridis-network',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8',
- tokenType: TokenType.Erc20,
- },
- },
-
- NONE: {
- name: 'None Trading',
- symbol: 'NONE',
- decimals: 18,
- logo: 'none.webp',
- coinGeckoId: 'none-trading',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0x903ff0ba636E32De1767A4B5eEb55c155763D8B7',
- tokenType: TokenType.Erc20,
- },
- },
-
- DUDE: {
- name: 'DUDE',
- symbol: 'DUDE',
- decimals: 6,
- logo: 'dude.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- AUTISM: {
- name: 'AUTISM',
- symbol: 'AUTISM',
- decimals: 6,
- logo: 'autism.png',
- coinGeckoId: 'autism',
- tokenType: TokenType.TokenFactory,
- },
-
- NOBITCHES: {
- name: 'Extra Virgin Olive Inu',
- symbol: 'NOBITCHES',
- decimals: 6,
- logo: 'extravirginoliveinu.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- MILA: {
- name: 'MILA',
- symbol: 'MILA',
- decimals: 6,
- logo: 'mila.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- DOJO: {
- name: 'Dojo Bot',
- symbol: 'DOJO',
- decimals: 6,
- logo: 'dojo.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- IPANDAAI: {
- name: 'Injective Panda AI',
- symbol: 'IPandaAI',
- decimals: 6,
- logo: 'ipdai.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- COCK: {
- name: 'ROOSTER NINJA',
- symbol: 'COCK',
- decimals: 6,
- logo: 'cock.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- MOONIFY: {
- name: 'Moonify',
- symbol: 'MOONIFY',
- decimals: 6,
- logo: 'moonify.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- KARMA: {
- name: 'Karma',
- symbol: 'KARMA',
- decimals: 6,
- logo: 'karma.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- DREAM: {
- name: 'DREAM',
- symbol: 'DREAM',
- decimals: 6,
- logo: 'DREAM.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- DGNZ: {
- name: 'Injective Degens',
- symbol: 'DGNZ',
- decimals: 6,
- logo: 'DGNZ.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- INJECT: {
- name: 'Injectools',
- symbol: 'INJECT',
- decimals: 6,
- logo: 'INJECT.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- WAIFU: {
- name: 'Waifu',
- symbol: 'WAIFU',
- decimals: 6,
- logo: 'waifu-logo.png',
- coinGeckoId: '',
- tokenType: TokenType.TokenFactory,
- },
-
- APP: {
- name: 'Moon App',
- symbol: 'APP',
- decimals: 18,
- logo: 'app.jpeg',
- coinGeckoId: '',
- tokenType: TokenType.Erc20,
-
- erc20: {
- decimals: 18,
- address: '0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439',
- tokenType: TokenType.Erc20,
- },
- },
-} as Record
diff --git a/packages/token-metadata/src/utils.ts b/packages/token-metadata/src/utils.ts
deleted file mode 100644
index 8af135f81..000000000
--- a/packages/token-metadata/src/utils.ts
+++ /dev/null
@@ -1,387 +0,0 @@
-import { INJ_DENOM } from '@injectivelabs/utils'
-import {
- Token,
- TokenMeta,
- TokenType,
- TokenSource,
- IbcTokenMeta,
- Cw20TokenMeta,
- Cw20TokenSingle,
- TokenVerification,
- Cw20TokenMetaWithSource,
-} from './types'
-import { ibcBaseDenoms } from './tokens/tokens'
-import { getChannelIdFromPath } from './ibc'
-import {
- Network,
- getCw20AdapterContractForNetwork,
-} from '@injectivelabs/networks'
-import { TokenMetaUtilsFactory } from './TokenMetaUtilsFactory'
-
-const getCw20Meta = (
- token: Token,
-): Cw20TokenMetaWithSource | Cw20TokenMeta | undefined => {
- const denomToLowerCase = token.denom
- const cw20MetaFromCw20s = token.cw20s?.find((meta) =>
- denomToLowerCase.includes(meta.address),
- )
-
- return cw20MetaFromCw20s || token.cw20 || undefined
-}
-
-export const getIbcTokenMetaFromDenomTrace = ({
- hash,
- path,
- decimals,
- baseDenom,
-}: {
- decimals: number
- hash: string
- path: string
- baseDenom: string
-}): IbcTokenMeta => ({
- hash,
- path,
- baseDenom,
- decimals,
- channelId: getChannelIdFromPath(path),
- isNative: !baseDenom.startsWith('ibc'),
-})
-
-export const getTokenTypeFromDenom = (denom: string) => {
- if (denom === INJ_DENOM) {
- return TokenType.Native
- }
-
- if (isCw20ContractAddress(denom)) {
- return TokenType.Cw20
- }
-
- if (denom.startsWith('ibc')) {
- return TokenType.Ibc
- }
-
- if (denom.startsWith('factory/')) {
- return TokenType.TokenFactory
- }
-
- if (denom.startsWith('peggy')) {
- return TokenType.Erc20
- }
-
- if (denom.startsWith('share')) {
- return TokenType.InsuranceFund
- }
-
- return TokenType.Cw20
-}
-
-export const getTokenSymbol = (token: Token) => {
- if (token.denom.startsWith('factory/')) {
- const meta = getCw20Meta(token) as Cw20TokenMetaWithSource
-
- return meta?.symbol || token.symbol
- }
-
- if (token.denom.startsWith('peggy')) {
- return token.erc20?.symbol || token.symbol
- }
-
- if (token.denom.startsWith('ibc')) {
- return token.ibc?.symbol || token.symbol
- }
-
- return token.symbol
-}
-
-export const getTokenDecimals = (token: Token) => {
- if (token.denom === INJ_DENOM) {
- return token.decimals
- }
-
- if (isCw20ContractAddress(token.denom)) {
- return token.cw20?.decimals || token.decimals
- }
-
- if (token.denom.startsWith('factory/')) {
- const meta = getCw20Meta(token)
-
- return meta?.decimals || token.decimals
- }
-
- if (token.denom.startsWith('ibc')) {
- return token.ibc?.decimals || token.decimals
- }
-
- if (token.denom.startsWith('peggy')) {
- return token.erc20?.decimals || token.decimals
- }
-
- if (token.denom.startsWith('share')) {
- return token.decimals
- }
-
- return token.decimals
-}
-
-export const getTokenAddress = (token: Token) => {
- if (token.denom === INJ_DENOM) {
- return token.erc20?.address
- }
-
- if (token.denom.startsWith('inj')) {
- return token.cw20?.address
- }
-
- if (token.denom.startsWith('factory/')) {
- const [, , address] = token.denom
-
- return address
- }
-
- if (token.denom.startsWith('peggy')) {
- return token.erc20?.address
- }
-
- if (token.denom.startsWith('share')) {
- return ''
- }
-
- return ''
-}
-
-/**
- * This function can be used to get a token with
- * cw20 information when we have multiple
- * cw20 variations of the same token based on the address/denom
- */
-export const getCw20TokenSingle = (
- token: Token | TokenMeta,
- source?: TokenSource,
-): Cw20TokenSingle | undefined => {
- const { cw20, cw20s } = token
- const denom = (token as Token).denom || ''
-
- if (!cw20 && !cw20s) {
- return
- }
-
- if (cw20) {
- return {
- ...token,
- cw20,
- denom: cw20.address,
- tokenType: getTokenTypeFromDenom(cw20.address),
- }
- }
-
- if (cw20s) {
- if (source) {
- const cw20 = cw20s.find((cw20) => cw20.source === source)
-
- return cw20
- ? {
- ...token,
- cw20,
- denom: cw20.address,
- symbol: cw20.symbol,
- tokenType: getTokenTypeFromDenom(cw20.address),
- }
- : undefined
- }
-
- if (denom) {
- const [cw20Address] = denom.startsWith('inj')
- ? [denom]
- : denom.split('/').reverse()
-
- const cw20 = cw20s.find((cw20) => cw20.address === cw20Address)
-
- return cw20
- ? {
- ...token,
- cw20,
- denom: cw20.address,
- symbol: cw20.symbol,
- tokenType: getTokenTypeFromDenom(cw20.address),
- }
- : undefined
- }
- }
-
- return undefined
-}
-
-export const getTokenFromMeta = (meta: TokenMeta, denom?: string): Token => {
- const isBaseIbcDenom =
- ibcBaseDenoms.includes(denom || '') || meta.ibc?.baseDenom === denom
-
- const tokenType = isBaseIbcDenom
- ? TokenType.Ibc
- : getTokenTypeFromDenom(denom || '')
-
- const token = {
- ...meta,
- tokenType,
- denom: denom || '',
- }
-
- const tokenWithDecimalsAndSymbol = {
- ...token,
- tokenType,
- decimals: getTokenDecimals(token),
- symbol: getTokenSymbol(token),
- }
-
- if (![TokenType.TokenFactory, TokenType.Cw20].includes(tokenType)) {
- return tokenWithDecimalsAndSymbol
- }
-
- /**
- * If there are multiple cw20 variations
- * of the token we find the one that corresponds
- * to the contract address and set it on the cw20 field
- *
- * If there is only one cw20 version then we use that one
- * as the default version
- */
- if (tokenWithDecimalsAndSymbol.cw20) {
- return {
- ...tokenWithDecimalsAndSymbol,
- cw20s: [],
- }
- }
-
- if (tokenWithDecimalsAndSymbol.cw20s) {
- return {
- ...tokenWithDecimalsAndSymbol,
- ...getCw20TokenSingle({
- ...tokenWithDecimalsAndSymbol,
- denom,
- tokenType: TokenType.Cw20,
- }),
- tokenType,
- denom: tokenWithDecimalsAndSymbol.denom,
- }
- }
-
- return tokenWithDecimalsAndSymbol
-}
-
-export const getUnknownToken = (denom: string): Token => {
- return {
- denom,
- name: denom,
- symbol: denom,
- decimals: 18,
- logo: 'unknown.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- tokenVerification: TokenVerification.Unverified,
- } as Token
-}
-
-export const getUnknownTokenWithSymbol = (denom: string): Token => {
- return {
- denom,
- name: denom,
- symbol: 'UNKNOWN',
- decimals: 0,
- logo: 'unknown.png',
- coinGeckoId: '',
- tokenType: TokenType.Unknown,
- tokenVerification: TokenVerification.Unverified,
- } as Token
-}
-
-export const isCw20ContractAddress = (address: string) =>
- address.length === 42 && address.startsWith('inj')
-
-/**
- * Token factory denoms created by the adapter contract
- */
-export const getTokenFactoryDenomByAdapter = (
- cw20address: string,
- network: Network = Network.Mainnet,
-) => {
- return `factory/${getCw20AdapterContractForNetwork(network)}/${cw20address}`
-}
-
-export const getPeggyDenomFromSymbolOrName = (
- symbolOrName: string,
- network: Network = Network.Mainnet,
-) => {
- const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
- const metaFromSymbol = tokenMetaUtils.getMetaBySymbol(symbolOrName)
- const metaFromName = tokenMetaUtils.getMetaByName(symbolOrName)
-
- if (!metaFromSymbol && !metaFromName) {
- return
- }
-
- if (!metaFromSymbol?.erc20 && !metaFromName?.erc20) {
- return
- }
-
- return `peggy${(metaFromSymbol || metaFromName)?.erc20?.address}`
-}
-
-export const getIbcDenomFromSymbolOrName = (
- symbolOrName: string,
- network: Network = Network.Mainnet,
-) => {
- const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
- const metaFromName = tokenMetaUtils.getMetaBySymbol(symbolOrName)
- const metaFromSymbol = tokenMetaUtils.getMetaByName(symbolOrName)
-
- if (!metaFromSymbol && !metaFromName) {
- return
- }
-
- if (!metaFromSymbol?.ibc && !metaFromName?.ibc) {
- return
- }
-
- return `ibc/${(metaFromSymbol || metaFromName)?.ibc?.hash}`
-}
-
-export const getCw20FromSymbolOrName = (
- symbolOrName: string,
- network: Network = Network.Mainnet,
- source?: TokenSource,
-) => {
- const tokenMetaUtils = TokenMetaUtilsFactory.make(network)
- const metaFromName = tokenMetaUtils.getMetaBySymbol(symbolOrName)
- const metaFromSymbol = tokenMetaUtils.getMetaByName(symbolOrName)
-
- if (!metaFromSymbol && !metaFromName) {
- return
- }
-
- if (
- !metaFromSymbol?.cw20 &&
- !metaFromName?.cw20 &&
- !metaFromSymbol?.cw20s &&
- !metaFromName?.cw20s
- ) {
- return
- }
-
- const meta = (metaFromName || metaFromSymbol)!
-
- if (meta.cw20) {
- return getTokenFactoryDenomByAdapter(meta.cw20.address, network)
- }
-
- if (source) {
- const cw20 = meta?.cw20s?.find((cw20) => cw20.source === source)
-
- return cw20
- ? getTokenFactoryDenomByAdapter(cw20.address, network)
- : undefined
- }
-
- const [cw20] = meta.cw20s || []
-
- return getTokenFactoryDenomByAdapter(cw20.address, network)
-}
diff --git a/packages/ts-types/CHANGELOG.md b/packages/ts-types/CHANGELOG.md
index d072d9355..3b6c2a47b 100644
--- a/packages/ts-types/CHANGELOG.md
+++ b/packages/ts-types/CHANGELOG.md
@@ -3,46 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.5-beta.0...@injectivelabs/ts-types@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.11-beta.4...@injectivelabs/ts-types@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/ts-types
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.7...@injectivelabs/ts-types@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/ts-types
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.6...@injectivelabs/ts-types@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/ts-types
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.4-beta.0...@injectivelabs/ts-types@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.6-beta.5...@injectivelabs/ts-types@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/ts-types
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.5-beta.0...@injectivelabs/ts-types@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/ts-types
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.4-beta.0...@injectivelabs/ts-types@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/ts-types
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.3-beta.3...@injectivelabs/ts-types@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/ts-types
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.2-beta.0...@injectivelabs/ts-types@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/ts-types
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.1-beta.7...@injectivelabs/ts-types@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/ts-types
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/ts-types@1.14.0-beta.1...@injectivelabs/ts-types@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/ts-types
diff --git a/packages/ts-types/package.json b/packages/ts-types/package.json
index a4b5712e9..977ff4b40 100644
--- a/packages/ts-types/package.json
+++ b/packages/ts-types/package.json
@@ -1,14 +1,15 @@
{
"name": "@injectivelabs/ts-types",
"description": "List of types that can be reused throughout Injective's projects.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"files": [
"dist"
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,7 +28,7 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
diff --git a/packages/ts-types/src/cosmos.ts b/packages/ts-types/src/cosmos.ts
index 20d9873dd..60e84be88 100644
--- a/packages/ts-types/src/cosmos.ts
+++ b/packages/ts-types/src/cosmos.ts
@@ -25,6 +25,10 @@ export enum CosmosChainId {
Celestia = 'celestia',
Migaloo = 'migaloo-1',
Kujira = 'kaiyo-1',
+ Wormchain = 'wormchain',
+ Andromeda = 'andromeda-1',
+ Saga = 'ssc-1',
+ Neutron = 'neutron-1',
}
export enum TestnetCosmosChainId {
diff --git a/packages/ts-types/src/enums.ts b/packages/ts-types/src/enums.ts
index b6104cb72..5f729b5bb 100644
--- a/packages/ts-types/src/enums.ts
+++ b/packages/ts-types/src/enums.ts
@@ -4,6 +4,7 @@ export enum EthereumChainId {
Rinkeby = 4,
Goerli = 5,
Kovan = 42,
+ Sepolia = 11155111,
Injective = 888,
Ganache = 1337,
HardHat = 31337,
@@ -67,6 +68,7 @@ export enum MsgType {
MsgCreateBinaryOptionsMarketOrder = 'injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrder',
MsgCreateDerivativeLimitOrder = 'injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder',
MsgCreateDerivativeMarketOrder = 'injective.exchange.v1beta1.MsgCreateDerivativeMarketOrder',
+ MsgLiquidatePosition = 'injective.exchange.v1beta1.MsgLiquidatePosition',
MsgCreateSpotLimitOrder = 'injective.exchange.v1beta1.MsgCreateSpotLimitOrder',
MsgCreateSpotMarketOrder = 'injective.exchange.v1beta1.MsgCreateSpotMarketOrder',
MsgDeposit = 'injective.exchange.v1beta1.MsgDeposit',
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index 5acec933b..6cb64dd3b 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -3,46 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.5-beta.6...@injectivelabs/utils@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.11-beta.10...@injectivelabs/utils@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/utils
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.7...@injectivelabs/utils@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/utils
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.6...@injectivelabs/utils@1.14.7) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/utils
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.4-beta.0...@injectivelabs/utils@1.14.4) (2023-11-20)
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.6-beta.10...@injectivelabs/utils@1.14.6) (2024-03-01)
**Note:** Version bump only for package @injectivelabs/utils
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.5-beta.6...@injectivelabs/utils@1.14.5) (2024-01-11)
+**Note:** Version bump only for package @injectivelabs/utils
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.4-beta.0...@injectivelabs/utils@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/utils
## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.3-beta.4...@injectivelabs/utils@1.14.3) (2023-11-17)
**Note:** Version bump only for package @injectivelabs/utils
-
-
-
-
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.2-beta.1...@injectivelabs/utils@1.14.2) (2023-11-07)
**Note:** Version bump only for package @injectivelabs/utils
-
-
-
-
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.1-beta.6...@injectivelabs/utils@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/utils
-
-
-
-
## [1.14.1-beta.0](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/utils@1.14.0-beta.1...@injectivelabs/utils@1.14.1-beta.0) (2023-09-23)
**Note:** Version bump only for package @injectivelabs/utils
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 0f62628ec..7512f1e52 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/utils",
"description": "List of utils and helper functions that can be reused throughout Injective's projects.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.0",
"sideEffects": false,
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,7 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build": "tsc --build --force tsconfig.build.json && tsc --build --force tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,13 +28,13 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "axios": "^0.21.1",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "axios": "^1.6.4",
"bignumber.js": "^9.0.1",
"http-status-codes": "^2.2.0",
"link-module-alias": "^1.2.0",
diff --git a/packages/utils/src/constants.ts b/packages/utils/src/constants.ts
index 407a96e7b..92023ccf7 100644
--- a/packages/utils/src/constants.ts
+++ b/packages/utils/src/constants.ts
@@ -31,6 +31,9 @@ export const DEFAULT_STD_FEE = {
},
],
gas: DEFAULT_GAS_LIMIT.toString(),
+ payer: '',
+ granter: '',
+ feePayer: '',
}
export const DEFAULT_STD_FEE_BY_DENOM = (denom: string = 'inj') => ({
diff --git a/packages/utils/src/helpers.ts b/packages/utils/src/helpers.ts
index 62eb59443..89ff49f68 100644
--- a/packages/utils/src/helpers.ts
+++ b/packages/utils/src/helpers.ts
@@ -75,44 +75,97 @@ export const getStdFeeForToken = (
) => {
const gasPriceInBase =
gasPrice || new BigNumberInWei(DEFAULT_GAS_PRICE).toBase()
- const gasPriceScaled = new BigNumberInBase(gasPriceInBase).toWei(
- token.decimals,
- )
+ const gasPriceScaled = new BigNumberInBase(gasPriceInBase)
+ .toWei(token.decimals)
+ .toFixed(0)
+ const gasNormalized = new BigNumber(gasLimit || DEFAULT_GAS_LIMIT).toFixed(0)
return {
amount: [
{
denom: token.denom,
- amount: gasPriceScaled.times(DEFAULT_GAS_LIMIT).toFixed(),
+ amount: new BigNumberInBase(gasPriceScaled)
+ .times(gasNormalized)
+ .toFixed(),
},
],
- gas: (gasLimit || DEFAULT_GAS_LIMIT).toString(),
+ gas: gasNormalized,
}
}
-export const getStdFee = ({
- gas = DEFAULT_GAS_LIMIT.toString(),
- gasPrice = DEFAULT_GAS_PRICE,
- payer,
- granter,
- feePayer,
-}: {
+export const getStdFeeFromObject = (args?: {
gas?: string | number
payer?: string
granter?: string
gasPrice?: string | number
feePayer?: string
-}) => ({
- amount: [
- {
- denom: 'inj',
- amount: new BigNumber(gas).times(gasPrice).toString(),
- },
- ],
- gas: gas.toString(),
- payer /** for Web3Gateway fee delegation */,
- granter,
- feePayer,
-})
+}) => {
+ if (!args) {
+ return DEFAULT_STD_FEE
+ }
+
+ const {
+ gas = DEFAULT_GAS_LIMIT.toString(),
+ gasPrice = DEFAULT_GAS_PRICE,
+ payer,
+ granter,
+ feePayer,
+ } = args
+ const gasNormalized = new BigNumber(gas).toFixed(0)
+ const gasPriceNormalized = new BigNumber(gasPrice).toFixed(0)
+
+ return {
+ amount: [
+ {
+ denom: 'inj',
+ amount: new BigNumber(gasNormalized)
+ .times(gasPriceNormalized)
+ .toFixed(),
+ },
+ ],
+ gas: new BigNumber(gasNormalized).toFixed(),
+ payer /** for Web3Gateway fee delegation */,
+ granter,
+ feePayer,
+ }
+}
export const getDefaultStdFee = () => DEFAULT_STD_FEE
+
+export const getStdFeeFromString = (gasPrice: string) => {
+ const matchResult = gasPrice.match(/^([0-9.]+)([a-zA-Z][a-zA-Z0-9/:._-]*)$/)
+
+ if (!matchResult) {
+ throw new Error('Invalid gas price string')
+ }
+
+ const [_, amount] = matchResult
+ const gas = new BigNumberInBase(amount)
+ .toWei()
+ .dividedBy(DEFAULT_GAS_PRICE)
+ .toFixed(0)
+
+ return getStdFeeFromObject({ gas, gasPrice: DEFAULT_GAS_PRICE })
+}
+
+export const getStdFee = (
+ args?:
+ | string
+ | {
+ gas?: string | number
+ payer?: string
+ granter?: string
+ gasPrice?: string | number
+ feePayer?: string
+ },
+) => {
+ if (!args) {
+ return DEFAULT_STD_FEE
+ }
+
+ if (typeof args === 'string') {
+ return getStdFeeFromString(args)
+ }
+
+ return getStdFeeFromObject({ ...args })
+}
diff --git a/packages/wallet-ts/CHANGELOG.md b/packages/wallet-ts/CHANGELOG.md
index acea590bb..f45c3df1b 100644
--- a/packages/wallet-ts/CHANGELOG.md
+++ b/packages/wallet-ts/CHANGELOG.md
@@ -3,49 +3,52 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.5-beta.73...@injectivelabs/wallet-ts@1.14.5) (2024-01-11)
+## [1.14.11](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.11-beta.102...@injectivelabs/wallet-ts@1.14.11) (2024-06-10)
**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.10](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.8...@injectivelabs/wallet-ts@1.14.10) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.8](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.7...@injectivelabs/wallet-ts@1.14.8) (2024-03-03)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
-## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.4-beta.3...@injectivelabs/wallet-ts@1.14.4) (2023-11-20)
+## [1.14.7](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.7-beta.2...@injectivelabs/wallet-ts@1.14.7) (2024-03-03)
**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.7-beta.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.7-beta.0...@injectivelabs/wallet-ts@1.14.7-beta.1) (2024-03-02)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.6](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.6-beta.65...@injectivelabs/wallet-ts@1.14.6) (2024-03-01)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
-## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.3-beta.27...@injectivelabs/wallet-ts@1.14.3) (2023-11-17)
+## [1.14.5](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.5-beta.73...@injectivelabs/wallet-ts@1.14.5) (2024-01-11)
**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.4](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.4-beta.3...@injectivelabs/wallet-ts@1.14.4) (2023-11-20)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
+## [1.14.3](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.3-beta.27...@injectivelabs/wallet-ts@1.14.3) (2023-11-17)
+**Note:** Version bump only for package @injectivelabs/wallet-ts
## [1.14.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.2-beta.15...@injectivelabs/wallet-ts@1.14.2) (2023-11-07)
-
### Reverts
-* faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
-
-
-
-
+- faulty version ([6e25b3f](https://github.com/InjectiveLabs/injective-ts/commit/6e25b3f156d964666db8bc7885df653166aac523))
## [1.14.1](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.1-beta.25...@injectivelabs/wallet-ts@1.14.1) (2023-10-27)
**Note:** Version bump only for package @injectivelabs/wallet-ts
-
-
-
-
## [1.14.1-beta.2](https://github.com/InjectiveLabs/injective-ts/compare/@injectivelabs/wallet-ts@1.14.1-beta.1...@injectivelabs/wallet-ts@1.14.1-beta.2) (2023-09-24)
**Note:** Version bump only for package @injectivelabs/wallet-ts
diff --git a/packages/wallet-ts/package.json b/packages/wallet-ts/package.json
index dcd43fd00..3fb91a5de 100644
--- a/packages/wallet-ts/package.json
+++ b/packages/wallet-ts/package.json
@@ -1,13 +1,14 @@
{
"name": "@injectivelabs/wallet-ts",
"description": "A convenient way to use and interact with different types of wallets on Injective.",
- "version": "1.14.5",
+ "version": "1.14.12-beta.7",
"sideEffects": false,
"author": {
- "name": "Bojan Angjelkoski",
- "email": "bojan@injectivelabs.org"
+ "name": "InjectiveLabs",
+ "email": "admin@injectivelabs.org"
},
"license": "Apache-2.0",
+ "types": "dist/cjs/index.d.ts",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
@@ -18,7 +19,9 @@
},
"scripts": {
"postinstall": "link-module-alias",
- "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
+ "build:cjs": "BUILD_MODE=cjs node ./../../etc/replacements.js && tsc --build tsconfig.build.json",
+ "build:esm": "BUILD_MODE=esm node ./../../etc/replacements.js && tsc --build tsconfig.build.esm.json",
+ "build": "yarn build:esm && yarn build:cjs && yarn build:post && link-module-alias",
"build:watch": "tsc --build -w tsconfig.build.json && tsc -w --build tsconfig.build.esm.json && yarn build:post && link-module-alias",
"build:post": "shx cp ../../etc/stub/package.json.stub dist/cjs/package.json && shx cp ../../etc/stub/package.esm.json.stub dist/esm/package.json",
"clean": "tsc --build tsconfig.build.json --clean && tsc --build tsconfig.build.esm.json --clean && shx rm -rf coverage *.log junit.xml dist && jest --clearCache && shx mkdir -p dist",
@@ -27,32 +30,33 @@
"test:ci": "jest --coverage --ci --reporters='jest-junit'",
"coverage": "jest --coverage",
"coverage:show": "live-server coverage",
- "dev": "ts-node-dev -r tsconfig-paths/register src/index.ts",
+ "dev": "ts-node -r tsconfig-paths/register src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
"@cosmjs/launchpad": "0.27.1",
- "@cosmjs/proto-signing": "0.31.3",
- "@cosmjs/stargate": "^0.31.3",
+ "@cosmjs/proto-signing": "0.32.2",
+ "@cosmjs/stargate": "^0.32.2",
"@cosmostation/extension-client": "^0.1.15",
"@ethereumjs/common": "^3.1.1",
"@ethereumjs/tx": "^4.1.1",
- "@injectivelabs/exceptions": "^1.14.5",
- "@injectivelabs/networks": "^1.14.5",
- "@injectivelabs/sdk-ts": "^1.14.5",
- "@injectivelabs/ts-types": "^1.14.5",
- "@injectivelabs/utils": "^1.14.5",
- "@keplr-wallet/cosmos": "^0.11.58",
- "@keplr-wallet/types": "^0.11.58",
- "@ledgerhq/hw-app-cosmos": "^6.29.0",
- "@ledgerhq/hw-app-eth": "6.33.2",
- "@ledgerhq/hw-transport": "6.28.3",
- "@ledgerhq/hw-transport-webhid": "6.27.14",
- "@ledgerhq/hw-transport-webusb": "6.27.14",
+ "@injectivelabs/exceptions": "^1.14.12-beta.0",
+ "@injectivelabs/networks": "^1.14.12-beta.0",
+ "@injectivelabs/sdk-ts": "^1.14.12-beta.7",
+ "@injectivelabs/ts-types": "^1.14.12-beta.0",
+ "@injectivelabs/utils": "^1.14.12-beta.0",
+ "@keplr-wallet/cosmos": "^0.12.71",
+ "@keplr-wallet/types": "^0.12.71",
+ "@ledgerhq/hw-app-cosmos": "^6.29.5",
+ "@ledgerhq/hw-app-eth": "6.35.6",
+ "@ledgerhq/hw-transport": "6.30.4",
+ "@ledgerhq/hw-transport-webhid": "6.28.4",
+ "@ledgerhq/hw-transport-webusb": "6.28.4",
"@metamask/eth-sig-util": "^4.0.0",
- "@solana/wallet-adapter-wallets": "^0.19.5",
+ "@solana/wallet-adapter-wallets": "0.19.30",
"@toruslabs/torus-embed": "^1.39.0",
- "@trezor/connect-web": "^9.0.6",
+ "@trezor/connect-web": "9.2.1",
+ "@walletconnect/ethereum-provider": "^2.12.2",
"alchemy-sdk": "^2.6.3",
"eip1193-provider": "^1.0.1",
"eth-sig-util": "^3.0.1",
diff --git a/packages/wallet-ts/src/broadcaster/MsgBroadcaster.ts b/packages/wallet-ts/src/broadcaster/MsgBroadcaster.ts
index f6a527ecb..b94bee3d7 100644
--- a/packages/wallet-ts/src/broadcaster/MsgBroadcaster.ts
+++ b/packages/wallet-ts/src/broadcaster/MsgBroadcaster.ts
@@ -2,9 +2,11 @@ import {
TxGrpcApi,
hexToBuff,
PublicKey,
- SIGN_AMINO,
SIGN_DIRECT,
+ TxResponse,
hexToBase64,
+ SIGN_EIP712_V2,
+ SIGN_EIP712,
ChainGrpcAuthApi,
CosmosTxV1Beta1Tx,
createTxRawEIP712,
@@ -12,6 +14,7 @@ import {
getAminoStdSignDoc,
getEip712TypedData,
createWeb3Extension,
+ getEip712TypedDataV2,
ChainGrpcTendermintApi,
createTransactionWithSigners,
createTxRawFromSigResponse,
@@ -46,10 +49,31 @@ import {
MsgBroadcasterTxOptions,
MsgBroadcasterTxOptionsWithAddresses,
} from './types'
-import { isCosmosWallet } from '../strategies/wallet-strategy/utils'
+import {
+ isCosmosWallet,
+ isEip712V2OnlyWallet,
+} from '../strategies/wallet-strategy/utils'
import { Wallet, WalletDeviceType } from '../types'
import { createEip712StdSignDoc, KeplrWallet } from '../utils/wallets/keplr'
import { isCosmosAminoOnlyWallet } from '../utils'
+import { LeapWallet } from '../utils/wallets'
+import { checkIfTxRunOutOfGas } from './helper'
+
+const getEthereumWalletPubKey = ({
+ pubKey,
+ eip712TypedData,
+ signature,
+}: {
+ pubKey?: string
+ eip712TypedData: T
+ signature: string
+}) => {
+ if (pubKey) {
+ return pubKey
+ }
+
+ return hexToBase64(recoverTypedSignaturePubKey(eip712TypedData, signature))
+}
/**
* This class is used to broadcast transactions
@@ -65,17 +89,30 @@ export class MsgBroadcaster {
public chainId: ChainId
+ public txTimeout = DEFAULT_BLOCK_TIMEOUT_HEIGHT
+
+ public simulateTx: boolean = true
+
public ethereumChainId?: EthereumChainId
+ public gasBufferCoefficient: number = 1.2
+
constructor(options: MsgBroadcasterOptions) {
const networkInfo = getNetworkInfo(options.network)
- const endpoints =
- options.networkEndpoints || getNetworkEndpoints(options.network)
this.options = options
- this.chainId = networkInfo.chainId
- this.ethereumChainId = networkInfo.ethereumChainId
- this.endpoints = endpoints
+ this.simulateTx = options.simulateTx || true
+ this.txTimeout = options.txTimeout || DEFAULT_BLOCK_TIMEOUT_HEIGHT
+ this.gasBufferCoefficient = options.gasBufferCoefficient || 1.2
+ this.chainId = options.chainId || networkInfo.chainId
+ this.ethereumChainId =
+ options.ethereumChainId || networkInfo.ethereumChainId
+ this.endpoints = options.endpoints || getNetworkEndpoints(options.network)
+ }
+
+ setOptions(options: Partial) {
+ this.simulateTx = options.simulateTx || this.simulateTx
+ this.txTimeout = options.txTimeout || this.txTimeout
}
/**
@@ -100,9 +137,37 @@ export class MsgBroadcaster {
return isCosmosWallet(walletStrategy.wallet)
? this.broadcastCosmos(txWithAddresses)
+ : isEip712V2OnlyWallet(walletStrategy.wallet)
+ ? this.broadcastWeb3V2(txWithAddresses)
: this.broadcastWeb3(txWithAddresses)
}
+ /**
+ * Broadcasting the transaction using the client
+ * side approach for both cosmos and ethereum native wallets
+ * Note: using EIP712_V2 for Ethereum wallets
+ *
+ * @param tx
+ * @returns {string} transaction hash
+ */
+ async broadcastV2(tx: MsgBroadcasterTxOptions) {
+ const { options } = this
+ const { walletStrategy } = options
+ const txWithAddresses = {
+ ...tx,
+ ethereumAddress: getEthereumSignerAddress(
+ tx.injectiveAddress || tx.address,
+ ),
+ injectiveAddress: getInjectiveSignerAddress(
+ tx.injectiveAddress || tx.address,
+ ),
+ } as MsgBroadcasterTxOptionsWithAddresses
+
+ return isCosmosWallet(walletStrategy.wallet)
+ ? this.broadcastCosmos(txWithAddresses)
+ : this.broadcastWeb3V2(txWithAddresses)
+ }
+
/**
* Broadcasting the transaction using the client
* side approach for cosmos native wallets
@@ -166,7 +231,7 @@ export class MsgBroadcaster {
* @returns transaction hash
*/
private async broadcastWeb3(tx: MsgBroadcasterTxOptionsWithAddresses) {
- const { options, endpoints, chainId, ethereumChainId } = this
+ const { options, chainId, txTimeout, endpoints, ethereumChainId } = this
const { walletStrategy } = options
const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs]
@@ -185,16 +250,38 @@ export class MsgBroadcaster {
endpoints.grpc,
).fetchLatestBlock()
const latestHeight = latestBlock!.header!.height
- const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
- )
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(txTimeout)
const gas = (tx.gas?.gas || getGasPriceBasedOnMessage(msgs)).toString()
+ let stdFee = getStdFee({ ...tx.gas, gas })
+
+ /**
+ * Account has been created on chain
+ * and we can simulate the transaction
+ * to estimate the gas
+ **/
+ if (baseAccount.pubKey) {
+ const { stdFee: simulatedStdFee } = await this.getTxWithSignersAndStdFee({
+ chainId,
+ signMode: SIGN_EIP712_V2,
+ memo: tx.memo,
+ message: msgs,
+ timeoutHeight: timeoutHeight.toNumber(),
+ signers: {
+ pubKey: baseAccount.pubKey.key,
+ accountNumber: baseAccount.accountNumber,
+ sequence: baseAccount.sequence,
+ },
+ fee: stdFee,
+ })
+
+ stdFee = simulatedStdFee
+ }
/** EIP712 for signing on Ethereum wallets */
const eip712TypedData = getEip712TypedData({
msgs,
- fee: getStdFee({ ...tx.gas, gas }),
+ fee: stdFee,
tx: {
memo: tx.memo,
accountNumber: baseAccount.accountNumber.toString(),
@@ -206,23 +293,23 @@ export class MsgBroadcaster {
})
/** Signing on Ethereum */
- const signature = (await walletStrategy.signEip712TypedData(
+ const signature = await walletStrategy.signEip712TypedData(
JSON.stringify(eip712TypedData),
tx.ethereumAddress,
- )) as string
- const signatureBuff = hexToBuff(signature)
-
- /** Get Public Key of the signer */
- const publicKeyHex = recoverTypedSignaturePubKey(eip712TypedData, signature)
- const publicKeyBase64 = hexToBase64(publicKeyHex)
+ )
+ const pubKeyOrSignatureDerivedPubKey = getEthereumWalletPubKey({
+ pubKey: baseAccount.pubKey?.key,
+ eip712TypedData,
+ signature,
+ })
/** Preparing the transaction for client broadcasting */
const { txRaw } = createTransaction({
message: msgs,
memo: tx.memo,
- signMode: SIGN_AMINO,
- fee: getStdFee({ ...tx.gas, gas }),
- pubKey: publicKeyBase64,
+ signMode: SIGN_EIP712,
+ fee: stdFee,
+ pubKey: pubKeyOrSignatureDerivedPubKey,
sequence: baseAccount.sequence,
timeoutHeight: timeoutHeight.toNumber(),
accountNumber: baseAccount.accountNumber,
@@ -234,16 +321,124 @@ export class MsgBroadcaster {
})
const txRawEip712 = createTxRawEIP712(txRaw, web3Extension)
- if (options.simulateTx) {
- await this.simulateTxRaw(txRawEip712)
+ /** Append Signatures */
+ txRawEip712.signatures = [hexToBuff(signature)]
+
+ return walletStrategy.sendTransaction(txRawEip712, {
+ chainId,
+ endpoints,
+ txTimeout,
+ address: tx.injectiveAddress,
+ })
+ }
+
+ /**
+ * Prepare/sign/broadcast transaction using
+ * Ethereum native wallets on the client side.
+ *
+ * Note: Gas estimation not available
+ *
+ * @param tx The transaction that needs to be broadcasted
+ * @returns transaction hash
+ */
+ private async broadcastWeb3V2(tx: MsgBroadcasterTxOptionsWithAddresses) {
+ const { options, chainId, txTimeout, endpoints, ethereumChainId } = this
+ const { walletStrategy } = options
+ const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs]
+
+ if (!ethereumChainId) {
+ throw new GeneralException(new Error('Please provide ethereumChainId'))
}
+ /** Account Details * */
+ const accountDetails = await new ChainGrpcAuthApi(
+ endpoints.grpc,
+ ).fetchAccount(tx.injectiveAddress)
+ const { baseAccount } = accountDetails
+
+ /** Block Details */
+ const latestBlock = await new ChainGrpcTendermintApi(
+ endpoints.grpc,
+ ).fetchLatestBlock()
+ const latestHeight = latestBlock!.header!.height
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(txTimeout)
+
+ const gas = (tx.gas?.gas || getGasPriceBasedOnMessage(msgs)).toString()
+ let stdFee = getStdFee({ ...tx.gas, gas })
+
+ /**
+ * Account has been created on chain
+ * and we can simulate the transaction
+ * to estimate the gas
+ **/
+ if (baseAccount.pubKey) {
+ const { stdFee: simulatedStdFee } = await this.getTxWithSignersAndStdFee({
+ chainId,
+ signMode: SIGN_EIP712_V2,
+ memo: tx.memo,
+ message: msgs,
+ timeoutHeight: timeoutHeight.toNumber(),
+ signers: {
+ pubKey: baseAccount.pubKey.key,
+ accountNumber: baseAccount.accountNumber,
+ sequence: baseAccount.sequence,
+ },
+ fee: stdFee,
+ })
+
+ stdFee = simulatedStdFee
+ }
+
+ /** EIP712 for signing on Ethereum wallets */
+ const eip712TypedData = getEip712TypedDataV2({
+ msgs,
+ fee: stdFee,
+ tx: {
+ memo: tx.memo,
+ accountNumber: baseAccount.accountNumber.toString(),
+ sequence: baseAccount.sequence.toString(),
+ timeoutHeight: timeoutHeight.toFixed(),
+ chainId,
+ },
+ ethereumChainId,
+ })
+
+ /** Signing on Ethereum */
+ const signature = await walletStrategy.signEip712TypedData(
+ JSON.stringify(eip712TypedData),
+ tx.ethereumAddress,
+ )
+ const pubKeyOrSignatureDerivedPubKey = getEthereumWalletPubKey({
+ pubKey: baseAccount.pubKey?.key,
+ eip712TypedData,
+ signature,
+ })
+
+ /** Preparing the transaction for client broadcasting */
+ const { txRaw } = createTransaction({
+ message: msgs,
+ memo: tx.memo,
+ signMode: SIGN_EIP712_V2,
+ fee: stdFee,
+ pubKey: pubKeyOrSignatureDerivedPubKey,
+ sequence: baseAccount.sequence,
+ timeoutHeight: timeoutHeight.toNumber(),
+ accountNumber: baseAccount.accountNumber,
+ chainId,
+ })
+
+ const web3Extension = createWeb3Extension({
+ ethereumChainId,
+ })
+ const txRawEip712 = createTxRawEIP712(txRaw, web3Extension)
+
/** Append Signatures */
- txRawEip712.signatures = [signatureBuff]
+ txRawEip712.signatures = [hexToBuff(signature)]
return walletStrategy.sendTransaction(txRawEip712, {
chainId,
endpoints,
+ txTimeout,
address: tx.injectiveAddress,
})
}
@@ -257,8 +452,8 @@ export class MsgBroadcaster {
*/
private async broadcastWeb3WithFeeDelegation(
tx: MsgBroadcasterTxOptionsWithAddresses,
- ) {
- const { options, ethereumChainId, endpoints } = this
+ ): Promise {
+ const { options, simulateTx, ethereumChainId, endpoints } = this
const { walletStrategy } = options
const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs]
const web3Msgs = msgs.map((msg) => msg.toWeb3())
@@ -270,13 +465,14 @@ export class MsgBroadcaster {
const transactionApi = new IndexerGrpcTransactionApi(
endpoints.web3gw || endpoints.indexer,
)
+
const txResponse = await transactionApi.prepareTxRequest({
memo: tx.memo,
message: web3Msgs,
address: tx.ethereumAddress,
chainId: ethereumChainId,
gasLimit: getGasPriceBasedOnMessage(msgs),
- estimateGas: options.simulateTx || false,
+ estimateGas: simulateTx,
})
const signature = await walletStrategy.signEip712TypedData(
@@ -291,7 +487,38 @@ export class MsgBroadcaster {
chainId: ethereumChainId,
})
- return await new TxGrpcApi(endpoints.grpc).fetchTxPoll(response.txHash)
+ try {
+ const txResponse = await new TxGrpcApi(endpoints.grpc).fetchTxPoll(
+ response.txHash,
+ )
+
+ return txResponse
+ } catch (e) {
+ /**
+ * First MsgExec transaction with a PrivateKey wallet
+ * always runs out of gas for some reason, temporary solution
+ * to just broadcast the transaction twice
+ **/
+ if (
+ walletStrategy.wallet === Wallet.PrivateKey &&
+ checkIfTxRunOutOfGas(e)
+ ) {
+ /** Account Details * */
+ const accountDetails = await new ChainGrpcAuthApi(
+ endpoints.grpc,
+ ).fetchAccount(tx.injectiveAddress)
+ const { baseAccount } = accountDetails
+
+ /** We only do it on the first account tx fail */
+ if (baseAccount.sequence > 1) {
+ throw e
+ }
+
+ return await this.broadcastWeb3WithFeeDelegation(tx)
+ }
+
+ throw e
+ }
}
/**
@@ -302,21 +529,20 @@ export class MsgBroadcaster {
* @returns transaction hash
*/
private async broadcastCosmos(tx: MsgBroadcasterTxOptionsWithAddresses) {
- const { options, endpoints, chainId } = this
+ const { options, txTimeout, endpoints, chainId } = this
const { walletStrategy } = options
const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs]
/**
- * When using Ledger with Keplr we have
- * to send EIP712 to sign on Keplr
+ * When using Ledger with Keplr/Leap we have
+ * to send EIP712 to sign on Keplr/Leap
*/
- if (walletStrategy.getWallet() === Wallet.Keplr) {
+ if ([Wallet.Keplr, Wallet.Leap].includes(walletStrategy.getWallet())) {
const walletDeviceType = await walletStrategy.getWalletDeviceType()
- const isLedgerConnectedOnKeplr =
- walletDeviceType === WalletDeviceType.Hardware
+ const isLedgerConnected = walletDeviceType === WalletDeviceType.Hardware
- if (isLedgerConnectedOnKeplr) {
- return this.experimentalBroadcastKeplrWithLedger(tx)
+ if (isLedgerConnected) {
+ return this.experimentalBroadcastWalletThroughLedger(tx)
}
}
@@ -331,12 +557,10 @@ export class MsgBroadcaster {
endpoints.grpc,
).fetchLatestBlock()
const latestHeight = latestBlock!.header!.height
- const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
- )
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(txTimeout)
const signMode = isCosmosAminoOnlyWallet(walletStrategy.wallet)
- ? SIGN_AMINO
+ ? SIGN_EIP712
: SIGN_DIRECT
const pubKey = await walletStrategy.getPubKey(tx.injectiveAddress)
const gas = (tx.gas?.gas || getGasPriceBasedOnMessage(msgs)).toString()
@@ -374,13 +598,12 @@ export class MsgBroadcaster {
accountNumber: baseAccount.accountNumber,
})) as string
- console.log({ signature, signMode, aminoSignDoc })
-
txRaw.signatures = [Buffer.from(signature, 'base64')]
return walletStrategy.sendTransaction(txRaw, {
chainId,
endpoints,
+ txTimeout,
address: tx.injectiveAddress,
})
}
@@ -395,36 +618,43 @@ export class MsgBroadcaster {
return walletStrategy.sendTransaction(directSignResponse, {
chainId,
endpoints,
+ txTimeout,
address: tx.injectiveAddress,
})
}
/**
- * We use this method only when we want to broadcast a transaction using Ledger on Keplr for Injective
+ * We use this method only when we want to broadcast a transaction using Ledger on Keplr/Leap for Injective
*
* Note: Gas estimation not available
* @param tx the transaction that needs to be broadcasted
*/
- private async experimentalBroadcastKeplrWithLedger(
+ private async experimentalBroadcastWalletThroughLedger(
tx: MsgBroadcasterTxOptionsWithAddresses,
) {
- const { options, endpoints, chainId, ethereumChainId } = this
+ const {
+ options,
+ chainId,
+ txTimeout,
+ endpoints,
+ simulateTx,
+ ethereumChainId,
+ } = this
const { walletStrategy } = options
const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs]
/**
- * We can only use this method when Keplr is connected
- * with ledger
+ * We can NOT use this method
+ * when Ledger is connected through Keplr
*/
- if (walletStrategy.getWallet() === Wallet.Keplr) {
+ if ([Wallet.Keplr, Wallet.Leap].includes(walletStrategy.getWallet())) {
const walletDeviceType = await walletStrategy.getWalletDeviceType()
- const isLedgerConnectedOnKeplr =
- walletDeviceType === WalletDeviceType.Hardware
+ const isLedgerConnected = walletDeviceType === WalletDeviceType.Hardware
- if (!isLedgerConnectedOnKeplr) {
+ if (!isLedgerConnected) {
throw new GeneralException(
new Error(
- 'This method can only be used when Keplr is connected with Ledger',
+ `This method can only be used when Ledger is connected through ${walletStrategy.getWallet()}`,
),
)
}
@@ -434,10 +664,10 @@ export class MsgBroadcaster {
throw new GeneralException(new Error('Please provide ethereumChainId'))
}
- const keplrWallet = new KeplrWallet(chainId, {
- rest: endpoints.rest,
- rpc: endpoints.rpc,
- })
+ const wallet =
+ walletStrategy.getWallet() === Wallet.Keplr
+ ? new KeplrWallet(chainId)
+ : new LeapWallet(chainId)
/** Account Details * */
const accountDetails = await new ChainGrpcAuthApi(
@@ -450,9 +680,7 @@ export class MsgBroadcaster {
endpoints.grpc,
).fetchLatestBlock()
const latestHeight = latestBlock!.header!.height
- const timeoutHeight = new BigNumberInBase(latestHeight).plus(
- DEFAULT_BLOCK_TIMEOUT_HEIGHT,
- )
+ const timeoutHeight = new BigNumberInBase(latestHeight).plus(txTimeout)
const pubKey = await walletStrategy.getPubKey()
const gas = (tx.gas?.gas || getGasPriceBasedOnMessage(msgs)).toString()
@@ -471,7 +699,7 @@ export class MsgBroadcaster {
ethereumChainId,
})
- const aminoSignResponse = await keplrWallet.signEIP712CosmosTx({
+ const aminoSignResponse = await wallet.signEIP712CosmosTx({
eip712: eip712TypedData,
signDoc: createEip712StdSignDoc({
...tx,
@@ -492,7 +720,7 @@ export class MsgBroadcaster {
pubKey,
message: msgs,
memo: aminoSignResponse.signed.memo,
- signMode: SIGN_AMINO,
+ signMode: SIGN_EIP712,
fee: aminoSignResponse.signed.fee,
sequence: parseInt(aminoSignResponse.signed.sequence, 10),
timeoutHeight: parseInt(
@@ -509,7 +737,7 @@ export class MsgBroadcaster {
})
const txRawEip712 = createTxRawEIP712(txRaw, web3Extension)
- if (options.simulateTx) {
+ if (simulateTx) {
await this.simulateTxRaw(txRawEip712)
}
@@ -521,7 +749,10 @@ export class MsgBroadcaster {
txRawEip712.signatures = [signatureBuff]
/** Broadcast the transaction */
- const response = await new TxGrpcApi(endpoints.grpc).broadcast(txRawEip712)
+ const response = await new TxGrpcApi(endpoints.grpc).broadcast(
+ txRawEip712,
+ { txTimeout },
+ )
if (response.code !== 0) {
throw new TransactionException(new Error(response.rawLog), {
@@ -634,7 +865,10 @@ export class MsgBroadcaster {
address: tx.injectiveAddress,
txRaw: createTxRawFromSigResponse(directSignResponse),
signature: directSignResponse.signature.signature,
- pubKey: directSignResponse.signature.pub_key,
+ pubKey: directSignResponse.signature.pub_key || {
+ value: pubKey,
+ type: '/injective.crypto.v1beta1.ethsecp256k1.PubKey',
+ },
})
// Re-enable tx gas check removed above
@@ -682,18 +916,17 @@ export class MsgBroadcaster {
*
* If we want to simulate the transaction we set the
* gas limit based on the simulation and add a small multiplier
- * to be safe (factor of 1.2)
+ * to be safe (factor of 1.2 as default)
*/
private async getTxWithSignersAndStdFee(
args: CreateTransactionWithSignersArgs,
) {
- const { options } = this
- const { simulateTx } = options
+ const { simulateTx } = this
if (!simulateTx) {
return {
...createTransactionWithSigners(args),
- stdFee: getStdFee({ ...args.fee }),
+ stdFee: getStdFee(args.fee),
}
}
@@ -702,14 +935,16 @@ export class MsgBroadcaster {
if (!result.gasInfo?.gasUsed) {
return {
...createTransactionWithSigners(args),
- stdFee: getStdFee({ ...args.fee }),
+ stdFee: getStdFee(args.fee),
}
}
const stdGasFee = {
...getStdFee({
- ...args.fee,
- gas: new BigNumberInBase(result.gasInfo.gasUsed).times(1.2).toFixed(),
+ ...getStdFee(args.fee),
+ gas: new BigNumberInBase(result.gasInfo.gasUsed)
+ .times(this.gasBufferCoefficient)
+ .toFixed(),
}),
}
diff --git a/packages/wallet-ts/src/broadcaster/helper.ts b/packages/wallet-ts/src/broadcaster/helper.ts
new file mode 100644
index 000000000..e6fbe5b17
--- /dev/null
+++ b/packages/wallet-ts/src/broadcaster/helper.ts
@@ -0,0 +1,10 @@
+import { TransactionException } from '@injectivelabs/exceptions'
+
+export const checkIfTxRunOutOfGas = (e: unknown) => {
+ return (
+ e instanceof TransactionException &&
+ e.contextCode === 11 &&
+ e.contextModule === 'sdk' &&
+ e.originalMessage.includes('out of gas')
+ )
+}
diff --git a/packages/wallet-ts/src/broadcaster/types.ts b/packages/wallet-ts/src/broadcaster/types.ts
index 2cd34f149..86f347342 100644
--- a/packages/wallet-ts/src/broadcaster/types.ts
+++ b/packages/wallet-ts/src/broadcaster/types.ts
@@ -25,24 +25,24 @@ export interface MsgBroadcasterTxOptionsWithAddresses
export interface MsgBroadcasterOptions {
network: Network
- networkEndpoints?: NetworkEndpoints
+ endpoints?: NetworkEndpoints
/**
* Only used if we want to override the default
* endpoints taken from the network param
*
- * @deprecated - taken from the network parameter
+ * @deprecated - taken from the network parameter or use the endpoints
* */
- endpoints?: {
+ networkEndpoints?: {
indexerApi: string
sentryGrpcApi: string
sentryHttpApi: string
}
- /** @deprecated - taken from the network parameter */
chainId?: ChainId
- /** @deprecated - taken from the network parameter */
ethereumChainId?: EthereumChainId
feePayerPubKey?: string
simulateTx?: boolean
+ txTimeout?: number // blocks to wait for tx to be included in a block
walletStrategy: WalletStrategy
+ gasBufferCoefficient?: number
}
diff --git a/packages/wallet-ts/src/exports.ts b/packages/wallet-ts/src/exports.ts
new file mode 100644
index 000000000..b24105019
--- /dev/null
+++ b/packages/wallet-ts/src/exports.ts
@@ -0,0 +1 @@
+export * as UtilsWallets from './utils/wallets'
diff --git a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/CosmosWalletStrategy.ts b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/CosmosWalletStrategy.ts
index a61a4308a..8744cc2bd 100644
--- a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/CosmosWalletStrategy.ts
+++ b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/CosmosWalletStrategy.ts
@@ -14,6 +14,7 @@ import {
} from '../types/strategy'
import {} from '../../utils/utils'
import { isCosmosWallet } from '../wallet-strategy/utils'
+import { SendTransactionOptions } from '../wallet-strategy'
export const cosmosWallets = [
Wallet.Keplr,
@@ -108,8 +109,9 @@ export default class CosmosWalletStrategy {
public async sendTransaction(
tx: TxRaw | DirectSignResponse,
+ options: SendTransactionOptions
): Promise {
- return this.getStrategy().sendTransaction(tx)
+ return this.getStrategy().sendTransaction(tx, options)
}
public async signTransaction(transaction: {
diff --git a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Cosmostation.ts b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Cosmostation.ts
index 0220351ed..b8f68cf72 100644
--- a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Cosmostation.ts
+++ b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Cosmostation.ts
@@ -156,6 +156,7 @@ export default class Cosmostation implements ConcreteCosmosWalletStrategy {
),
signature: {
signature: signDirectResponse.signature,
+ pub_key: signDirectResponse.pub_key,
},
} as DirectSignResponse
} catch (e: unknown) {
diff --git a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Keplr.ts b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Keplr.ts
index 81d653abc..43ec63492 100644
--- a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Keplr.ts
+++ b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Keplr.ts
@@ -3,8 +3,8 @@ import { CosmosChainId } from '@injectivelabs/ts-types'
import {
TxRaw,
TxResponse,
+ waitTxBroadcasted,
createTxRawFromSigResponse,
- createCosmosSignDocFromSignDoc,
createSignDocFromTransaction,
} from '@injectivelabs/sdk-ts'
import type { DirectSignResponse } from '@cosmjs/proto-signing'
@@ -18,6 +18,8 @@ import { AminoSignResponse, StdSignDoc } from '@cosmjs/launchpad'
import { KeplrWallet } from '../../../utils/wallets/keplr'
import { ConcreteCosmosWalletStrategy } from '../../types/strategy'
import { WalletAction, WalletDeviceType } from '../../../types/enums'
+import { SendTransactionOptions } from '../../wallet-strategy'
+import { createCosmosSignDocFromSignDoc } from '../../../utils/cosmos'
export default class Keplr implements ConcreteCosmosWalletStrategy {
public chainId: CosmosChainId
@@ -63,14 +65,23 @@ export default class Keplr implements ConcreteCosmosWalletStrategy {
async sendTransaction(
transaction: DirectSignResponse | TxRaw,
+ options: SendTransactionOptions,
): Promise {
const { keplrWallet } = this
const txRaw = createTxRawFromSigResponse(transaction)
- try {
- return await keplrWallet.waitTxBroadcasted(
- await keplrWallet.broadcastTx(txRaw),
+ if (!options.endpoints) {
+ throw new CosmosWalletException(
+ new Error(
+ 'You have to pass endpoints within the options to broadcast transaction',
+ ),
)
+ }
+
+ try {
+ const txHash = await keplrWallet.broadcastTx(txRaw)
+
+ return await waitTxBroadcasted(txHash, options)
} catch (e: unknown) {
if (e instanceof TransactionException) {
throw e
diff --git a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Leap.ts b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Leap.ts
index 31f8fd0d6..c2c3c3251 100644
--- a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Leap.ts
+++ b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Leap.ts
@@ -9,8 +9,8 @@ import {
import {
TxRaw,
TxResponse,
+ waitTxBroadcasted,
createTxRawFromSigResponse,
- createCosmosSignDocFromSignDoc,
createSignDocFromTransaction,
} from '@injectivelabs/sdk-ts'
import type { DirectSignResponse } from '@cosmjs/proto-signing'
@@ -19,6 +19,8 @@ import { AminoSignResponse } from '@cosmjs/launchpad'
import { LeapWallet } from '../../../utils/wallets/leap'
import { WalletAction, WalletDeviceType } from '../../../types/enums'
import { ConcreteCosmosWalletStrategy } from '../../types/strategy'
+import { SendTransactionOptions } from '../../wallet-strategy'
+import { createCosmosSignDocFromSignDoc } from '../../../utils/cosmos'
export default class Leap implements ConcreteCosmosWalletStrategy {
public chainId: CosmosChainId
@@ -31,7 +33,12 @@ export default class Leap implements ConcreteCosmosWalletStrategy {
}
async getWalletDeviceType(): Promise {
- return Promise.resolve(WalletDeviceType.Browser)
+ const leapWallet = this.getLeapWallet()
+ const key = await leapWallet.getKey()
+
+ return key.isNanoLedger
+ ? Promise.resolve(WalletDeviceType.Hardware)
+ : Promise.resolve(WalletDeviceType.Browser)
}
async enable() {
@@ -59,14 +66,23 @@ export default class Leap implements ConcreteCosmosWalletStrategy {
async sendTransaction(
transaction: DirectSignResponse | TxRaw,
+ options: SendTransactionOptions,
): Promise {
const { leapWallet } = this
const txRaw = createTxRawFromSigResponse(transaction)
- try {
- return await leapWallet.waitTxBroadcasted(
- await leapWallet.broadcastTx(txRaw),
+ if (!options.endpoints) {
+ throw new CosmosWalletException(
+ new Error(
+ 'You have to pass endpoints within the options to broadcast transaction',
+ ),
)
+ }
+
+ try {
+ const txHash = await leapWallet.broadcastTx(txRaw)
+
+ return await waitTxBroadcasted(txHash, options)
} catch (e: unknown) {
throw new TransactionException(new Error((e as any).message), {
code: UnspecifiedErrorCode,
diff --git a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Ninji.ts b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Ninji.ts
index 2b768eb32..ed2d874b9 100644
--- a/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Ninji.ts
+++ b/packages/wallet-ts/src/strategies/cosmos-wallet-strategy/strategies/Ninji.ts
@@ -9,8 +9,8 @@ import {
import {
TxRaw,
TxResponse,
+ waitTxBroadcasted,
createTxRawFromSigResponse,
- createCosmosSignDocFromSignDoc,
createSignDocFromTransaction,
} from '@injectivelabs/sdk-ts'
import type { DirectSignResponse } from '@cosmjs/proto-signing'
@@ -19,6 +19,8 @@ import { AminoSignResponse } from '@cosmjs/launchpad'
import { NinjiWallet } from '../../../utils/wallets/ninji'
import { WalletAction, WalletDeviceType } from '../../../types/enums'
import { ConcreteCosmosWalletStrategy } from '../../types/strategy'
+import { SendTransactionOptions } from '../../wallet-strategy'
+import { createCosmosSignDocFromSignDoc } from '../../../utils/cosmos'
export default class Ninji implements ConcreteCosmosWalletStrategy {
public chainId: CosmosChainId
@@ -59,14 +61,23 @@ export default class Ninji implements ConcreteCosmosWalletStrategy {
async sendTransaction(
transaction: DirectSignResponse | TxRaw,
+ options: SendTransactionOptions,
): Promise {
const { ninjiWallet } = this
const txRaw = createTxRawFromSigResponse(transaction)
- try {
- return await ninjiWallet.waitTxBroadcasted(
- await ninjiWallet.broadcastTx(txRaw),
+ if (!options.endpoints) {
+ throw new CosmosWalletException(
+ new Error(
+ 'You have to pass endpoints within the options to broadcast transaction',
+ ),
)
+ }
+
+ try {
+ const txHash = await ninjiWallet.broadcastTx(txRaw)
+
+ return await waitTxBroadcasted(txHash, options)
} catch (e: unknown) {
throw new TransactionException(new Error((e as any).message), {
code: UnspecifiedErrorCode,
diff --git a/packages/wallet-ts/src/strategies/types/strategy.ts b/packages/wallet-ts/src/strategies/types/strategy.ts
index 2ffd0f65e..fd92772c5 100644
--- a/packages/wallet-ts/src/strategies/types/strategy.ts
+++ b/packages/wallet-ts/src/strategies/types/strategy.ts
@@ -7,6 +7,7 @@ import {
import type { TxRaw, TxResponse } from '@injectivelabs/sdk-ts'
import { AminoSignResponse, StdSignDoc } from '@keplr-wallet/types'
import { Wallet, WalletDeviceType } from '../../types/enums'
+import { SendTransactionOptions } from '../wallet-strategy'
export type onAccountChangeCallback = (account: string) => void
export type onChainIdChangeCallback = () => void
@@ -43,14 +44,17 @@ export interface ConcreteCosmosWalletStrategy {
* Perform validations and checks
* for the wallet (if the chain is supported, etc)
*/
- enable(): Promise
+ enable(args?: unknown): Promise
/**
* Sends Cosmos transaction. Returns a transaction hash
* @param transaction should implement TransactionConfig
* @param options
*/
- sendTransaction(transaction: DirectSignResponse | TxRaw): Promise
+ sendTransaction(
+ transaction: DirectSignResponse | TxRaw,
+ options: SendTransactionOptions,
+ ): Promise
signTransaction(transaction: {
txRaw: TxRaw
@@ -65,15 +69,20 @@ export interface ConcreteCosmosWalletStrategy {
}): Promise
}
+export interface WalletStrategyOptions {
+ privateKey?: string
+ metadata?: Record>
+}
+
export interface CosmosWalletStrategyArguments {
chainId: CosmosChainId
- endpoints?: { rpc: string; rest: string }
wallet?: Wallet
}
export interface WalletStrategyArguments
extends Omit {
chainId: ChainId
+ options?: WalletStrategyOptions
ethereumOptions?: WalletStrategyEthereumOptions
disabledWallets?: Wallet[]
wallet?: Wallet
@@ -97,6 +106,7 @@ export interface ConcreteWalletStrategy
options: {
address: string
chainId: ChainId
+ txTimeout?: number
endpoints?: {
rest: string
grpc: string
@@ -109,7 +119,7 @@ export interface ConcreteWalletStrategy
* Confirm the address on the wallet
* @param address address
*/
- confirm(address: string): Promise
+ getSessionOrConfirm(address?: string): Promise
/**
* Sends Ethereum transaction. Returns a transaction hash
@@ -168,15 +178,9 @@ export interface ConcreteWalletStrategy
getEthereumTransactionReceipt(txHash: string): void
- onAccountChange?(callback: onAccountChangeCallback): void
-
- onChainIdChange?(callback: onChainIdChangeCallback): void
-
- cancelOnChainIdChange?(): void
-
- cancelOnAccountChange?(): void
+ onAccountChange?(callback: onAccountChangeCallback): Promise | void
- cancelAllEvents?(): void
+ onChainIdChange?(callback: onChainIdChangeCallback): Promise | void
disconnect?(): Promise | void
}
diff --git a/packages/wallet-ts/src/strategies/wallet-strategy/WalletStrategy.ts b/packages/wallet-ts/src/strategies/wallet-strategy/WalletStrategy.ts
index 4e7c866aa..bc9791dfd 100644
--- a/packages/wallet-ts/src/strategies/wallet-strategy/WalletStrategy.ts
+++ b/packages/wallet-ts/src/strategies/wallet-strategy/WalletStrategy.ts
@@ -1,8 +1,4 @@
-import {
- AccountAddress,
- ChainId,
- EthereumChainId,
-} from '@injectivelabs/ts-types'
+import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types'
import { DirectSignResponse } from '@cosmjs/proto-signing'
import { GeneralException, WalletException } from '@injectivelabs/exceptions'
import { TxRaw, TxResponse } from '@injectivelabs/sdk-ts'
@@ -15,19 +11,25 @@ import {
WalletStrategyArguments,
EthereumWalletStrategyArgs,
WalletStrategyEthereumOptions,
+ WalletStrategyOptions,
} from '../types'
import Keplr from './strategies/Keplr'
import Leap from './strategies/Leap'
import Ninji from './strategies/Ninji'
import Trezor from './strategies/Trezor'
+import PrivateKey from './strategies/PrivateKey'
import LedgerLive from './strategies/Ledger/LedgerLive'
import LedgerLegacy from './strategies/Ledger/LedgerLegacy'
import Torus from './strategies/Torus'
import Phantom from './strategies/Phantom'
+import Okx from './strategies/Okx'
+import BitGet from './strategies/BitGet'
import Cosmostation from './strategies/Cosmostation'
import LedgerCosmos from './strategies/LedgerCosmos'
+import WalletConnect from './strategies/WalletConnect'
import { Wallet, WalletDeviceType } from '../../types/enums'
import { isEthWallet, isCosmosWallet } from './utils'
+import { SendTransactionOptions } from './types'
const getInitialWallet = (args: WalletStrategyArguments): Wallet => {
if (args.wallet) {
@@ -94,6 +96,20 @@ const createStrategy = ({
return new Torus(ethWalletArgs)
case Wallet.Phantom:
return new Phantom(ethWalletArgs)
+ case Wallet.OkxWallet:
+ return new Okx(ethWalletArgs)
+ case Wallet.BitGet:
+ return new BitGet(ethWalletArgs)
+ case Wallet.WalletConnect:
+ return new WalletConnect({
+ ...ethWalletArgs,
+ metadata: args.options?.metadata,
+ })
+ case Wallet.PrivateKey:
+ return new PrivateKey({
+ ...ethWalletArgs,
+ privateKey: args.options?.privateKey,
+ })
case Wallet.Keplr:
return new Keplr({ ...args })
case Wallet.Cosmostation:
@@ -126,7 +142,10 @@ export default class WalletStrategy {
public wallet: Wallet
+ public args: WalletStrategyArguments
+
constructor(args: WalletStrategyArguments) {
+ this.args = args
this.strategies = createStrategies(args)
this.wallet = getInitialWallet(args)
}
@@ -140,6 +159,30 @@ export default class WalletStrategy {
this.wallet = wallet
}
+ /**
+ * Case 1: Private Key is set dynamically
+ * If we have a dynamically set private key,
+ * we are creating a new PrivateKey strategy
+ * with the specified private key
+ *
+ * Case 2: Wallet Connect Metadata set dynamically
+ */
+ public setOptions(options?: WalletStrategyOptions) {
+ if (options?.privateKey) {
+ this.strategies[Wallet.PrivateKey] = createStrategy({
+ args: { ...this.args, options: { privateKey: options.privateKey } },
+ wallet: Wallet.PrivateKey,
+ })
+ }
+
+ if (options?.metadata) {
+ this.strategies[Wallet.WalletConnect] = createStrategy({
+ args: { ...this.args, options: { metadata: options.metadata } },
+ wallet: Wallet.WalletConnect,
+ })
+ }
+ }
+
public getStrategy(): ConcreteWalletStrategy {
if (!this.strategies[this.wallet]) {
throw new GeneralException(
@@ -162,12 +205,14 @@ export default class WalletStrategy {
return this.getStrategy().getPubKey(address)
}
- public enable(): Promise {
- return this.getStrategy().enable()
+ public enable(args?: unknown): Promise {
+ return this.getStrategy().enable(args)
}
- public async enableAndGetAddresses(): Promise {
- await this.getStrategy().enable()
+ public async enableAndGetAddresses(
+ args?: unknown,
+ ): Promise {
+ await this.getStrategy().enable(args)
return this.getStrategy().getAddresses()
}
@@ -180,21 +225,13 @@ export default class WalletStrategy {
return this.getStrategy().getEthereumTransactionReceipt(txHash)
}
- public async confirm(address: AccountAddress): Promise {
- return this.getStrategy().confirm(address)
+ public async getSessionOrConfirm(address?: AccountAddress): Promise {
+ return this.getStrategy().getSessionOrConfirm(address)
}
public async sendTransaction(
tx: DirectSignResponse | TxRaw,
- options: {
- address: AccountAddress
- chainId: ChainId
- endpoints?: {
- rest: string
- grpc: string
- tm?: string
- }
- },
+ options: SendTransactionOptions,
): Promise {
return this.getStrategy().sendTransaction(tx, options)
}
@@ -229,6 +266,11 @@ export default class WalletStrategy {
)
}
+ /** Phantom wallet needs enabling before signing */
+ if (this.wallet === Wallet.Phantom) {
+ await this.enable()
+ }
+
return this.getStrategy().signEip712TypedData(eip712TypedData, address)
}
@@ -271,39 +313,25 @@ export default class WalletStrategy {
}
}
- public onAccountChange(callback: onAccountChangeCallback): void {
+ public async onAccountChange(
+ callback: onAccountChangeCallback,
+ ): Promise {
if (this.getStrategy().onAccountChange) {
return this.getStrategy().onAccountChange!(callback)
}
}
- public onChainIdChange(callback: onChainIdChangeCallback): void {
+ public async onChainIdChange(
+ callback: onChainIdChangeCallback,
+ ): Promise {
if (this.getStrategy().onChainIdChange) {
return this.getStrategy().onChainIdChange!(callback)
}
}
- public cancelOnChainIdChange(): void {
- if (this.getStrategy().cancelOnChainIdChange) {
- return this.getStrategy().cancelOnChainIdChange!()
- }
- }
-
- public cancelAllEvents(): void {
- if (this.getStrategy().cancelAllEvents) {
- return this.getStrategy().cancelAllEvents!()
- }
- }
-
- public cancelOnAccountChange(): void {
- if (this.getStrategy().cancelOnAccountChange) {
- return this.getStrategy().cancelOnAccountChange!()
- }
- }
-
- public disconnect() {
+ public async disconnect() {
if (this.getStrategy().disconnect) {
- this.getStrategy().disconnect!()
+ await this.getStrategy().disconnect!()
}
}
}
diff --git a/packages/wallet-ts/src/strategies/wallet-strategy/strategies/Base.ts b/packages/wallet-ts/src/strategies/wallet-strategy/strategies/Base.ts
index 6ff092127..571e835e3 100644
--- a/packages/wallet-ts/src/strategies/wallet-strategy/strategies/Base.ts
+++ b/packages/wallet-ts/src/strategies/wallet-strategy/strategies/Base.ts
@@ -1,11 +1,14 @@
import { ChainId, EthereumChainId } from '@injectivelabs/ts-types'
import { WalletStrategyArguments } from '../../types'
+import { WalletEventListener } from '../../../types/enums'
export default abstract class BaseConcreteStrategy {
protected chainId: ChainId
protected ethereumChainId?: EthereumChainId
+ protected listeners: Partial> = {}
+
protected constructor({ chainId, ethereumOptions }: WalletStrategyArguments) {
this.ethereumChainId = ethereumOptions
? ethereumOptions.ethereumChainId
diff --git a/packages/wallet-ts/src/strategies/wallet-strategy/strategies/BitGet/index.ts b/packages/wallet-ts/src/strategies/wallet-strategy/strategies/BitGet/index.ts
new file mode 100644
index 000000000..da8a8e5b8
--- /dev/null
+++ b/packages/wallet-ts/src/strategies/wallet-strategy/strategies/BitGet/index.ts
@@ -0,0 +1,305 @@
+/* eslint-disable class-methods-use-this */
+import { sleep } from '@injectivelabs/utils'
+import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types'
+import {
+ ErrorType,
+ WalletException,
+ BitGetException,
+ UnspecifiedErrorCode,
+ TransactionException,
+} from '@injectivelabs/exceptions'
+import { DirectSignResponse } from '@cosmjs/proto-signing'
+import { TxRaw, toUtf8, TxGrpcApi, TxResponse } from '@injectivelabs/sdk-ts'
+import {
+ ConcreteWalletStrategy,
+ EthereumWalletStrategyArgs,
+} from '../../../types'
+import { BrowserEip1993Provider, SendTransactionOptions } from '../../types'
+import BaseConcreteStrategy from '../Base'
+import {
+ WalletAction,
+ WalletDeviceType,
+ WalletEventListener,
+} from '../../../../types/enums'
+import { getBitGetProvider } from './utils'
+
+export default class BitGet extends BaseConcreteStrategy implements ConcreteWalletStrategy {
+ constructor(args: EthereumWalletStrategyArgs) {
+ super(args)
+ }
+
+ async getWalletDeviceType(): Promise {
+ return Promise.resolve(WalletDeviceType.Browser)
+ }
+
+ async enable(): Promise {
+ return Promise.resolve(true)
+ }
+
+ public async disconnect() {
+ if (this.listeners[WalletEventListener.AccountChange]) {
+ const ethereum = await this.getEthereum()
+
+ ethereum.removeListener(
+ 'accountsChanged',
+ this.listeners[WalletEventListener.AccountChange],
+ )
+ }
+
+ if (this.listeners[WalletEventListener.ChainIdChange]) {
+ const ethereum = await this.getEthereum()
+
+ ethereum.removeListener(
+ 'chainChanged',
+ this.listeners[WalletEventListener.ChainIdChange],
+ )
+ }
+
+ this.listeners = {}
+ }
+
+ async getAddresses(): Promise {
+ const ethereum = await this.getEthereum()
+
+ try {
+ return await ethereum.request({
+ method: 'eth_requestAccounts',
+ })
+ } catch (e: unknown) {
+ throw new BitGetException(new Error((e as any).message), {
+ code: UnspecifiedErrorCode,
+ type: ErrorType.WalletError,
+ contextModule: WalletAction.GetAccounts,
+ })
+ }
+ }
+
+ // eslint-disable-next-line class-methods-use-this
+ async getSessionOrConfirm(address: AccountAddress): Promise