From aa592f8b9216c19770f5e507576023a53bd0ebdf Mon Sep 17 00:00:00 2001 From: OneEuroQuestion Date: Tue, 29 Oct 2024 17:55:29 +0100 Subject: [PATCH] mergingapr --- Makefile | 3 + dockercompose.env | 3 +- drizzle/0034_pretty_steve_rogers.sql | 7 + drizzle/meta/0034_snapshot.json | 1631 +++ drizzle/meta/_journal.json | 7 + src/executils/getblock.ts | 2 +- src/indexer.ts | 3 +- .../blockchainEntitiesStakeUpdater.ts | 2 +- src/indexer/classes/CoinGeko/CoinGekoCache.ts | 67 + src/indexer/classes/CoinGeko/denoms.json | 11499 ++++++++++++++++ .../classes/RpcOnDemandEndpointCache.ts | 127 + ...ntCache.ts => RpcPeriodicEndpointCache.ts} | 90 +- src/indexer/eventDebug.ts | 2 +- src/indexer/indexerConsts.ts | 5 +- src/indexer/restrpc_agregators/AprMonitor.ts | 356 + .../restrpc_agregators/ChainWalletApi.ts | 18 +- .../restrpc_agregators/ProviderSpecMoniker.ts | 2 +- .../RestRpcAgreagorsCaller.ts | 15 +- .../restrpc_agregators/SubscriptionList.ts | 4 +- .../{utils.ts => indexerRestRpcUtils.ts} | 21 + src/indexer/rpcUtils.ts | 17 - src/indexer/{ => utils}/indexerUtils.ts | 0 .../rpc.ts => indexer/utils/lavajsRpc.ts} | 12 +- src/indexer/utils/restRpc.ts | 37 + src/query/handlers/ajax/aprHandler.ts | 30 + .../provider/providerStakesHandler.ts | 2 +- src/query/handlers/spec/specStakesHandler.ts | 2 +- src/query/queryRoutes.ts | 6 + src/schemas/jsinfoSchema/jsinfoSchema.ts | 15 + src/utils/utils.ts | 17 +- tsconfig.json | 4 +- 31 files changed, 13932 insertions(+), 74 deletions(-) create mode 100644 drizzle/0034_pretty_steve_rogers.sql create mode 100644 drizzle/meta/0034_snapshot.json create mode 100644 src/indexer/classes/CoinGeko/CoinGekoCache.ts create mode 100644 src/indexer/classes/CoinGeko/denoms.json create mode 100644 src/indexer/classes/RpcOnDemandEndpointCache.ts rename src/indexer/classes/{RpcEndpointCache.ts => RpcPeriodicEndpointCache.ts} (74%) create mode 100644 src/indexer/restrpc_agregators/AprMonitor.ts rename src/indexer/restrpc_agregators/{utils.ts => indexerRestRpcUtils.ts} (65%) delete mode 100644 src/indexer/rpcUtils.ts rename src/indexer/{ => utils}/indexerUtils.ts (100%) rename src/{utils/rpc.ts => indexer/utils/lavajsRpc.ts} (76%) create mode 100644 src/indexer/utils/restRpc.ts create mode 100644 src/query/handlers/ajax/aprHandler.ts diff --git a/Makefile b/Makefile index 852effe..9cd5c59 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,9 @@ bun_create_migrations: bun_build: bun run build --verbose +bun_clean_cache: + bun pm cache rm + docker_build: docker build --progress=plain -t bun-docker . diff --git a/dockercompose.env b/dockercompose.env index 715ad3d..9604291 100644 --- a/dockercompose.env +++ b/dockercompose.env @@ -3,7 +3,8 @@ JSINFO_READ_POSTGRESQL_URL=postgres://postgres:postgres@postgres-jsinfo:5432/jsi RELAYS_READ_POSTGRESQL_URL=postgres://postgres:postgres@postgres-relays:5432/relays JSINFO_QUERY_PORT=8081 JSINFO_QUERY_HOST=0.0.0.0 -JSINFO_INDEXER_LAVA_RPC=https://public-rpc.lavanet.xyz/ +JSINFO_INDEXER_LAVA_RPC=https://lava.tendermintrpc.lava.build:443 +JSINFO_INDEXER_LAVA_REST_RPC_URL=https://lava.lava.build:443 JSINFO_INDEXER_START_BLOCK=917064 JSINFO_INDEXER_SAVE_CACHE=0 JSINFO_INDEXER_READ_CACHE=0 diff --git a/drizzle/0034_pretty_steve_rogers.sql b/drizzle/0034_pretty_steve_rogers.sql new file mode 100644 index 0000000..edd9e34 --- /dev/null +++ b/drizzle/0034_pretty_steve_rogers.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS "apr" ( + "key" text PRIMARY KEY NOT NULL, + "value" real NOT NULL, + "timestamp" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE INDEX IF NOT EXISTS "aprIdx" ON "apr" ("key"); \ No newline at end of file diff --git a/drizzle/meta/0034_snapshot.json b/drizzle/meta/0034_snapshot.json new file mode 100644 index 0000000..668a9e7 --- /dev/null +++ b/drizzle/meta/0034_snapshot.json @@ -0,0 +1,1631 @@ +{ + "id": "62d7e5ca-4160-4c8b-bf32-d144f0bf21d6", + "prevId": "8f218c7a-01c2-4165-868d-1192161b4fb3", + "version": "5", + "dialect": "pg", + "tables": { + "agg_consumer_alltime_relay_payments": { + "name": "agg_consumer_alltime_relay_payments", + "schema": "", + "columns": { + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggConsumerAllTimeIdx": { + "name": "aggConsumerAllTimeIdx", + "columns": [ + "spec_id", + "consumer" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "agg_consumer_daily_relay_payments": { + "name": "agg_consumer_daily_relay_payments", + "schema": "", + "columns": { + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dateday": { + "name": "dateday", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggConsumerDailyIdx": { + "name": "aggConsumerDailyIdx", + "columns": [ + "dateday", + "spec_id", + "consumer" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "agg_consumer_hourly_relay_payments": { + "name": "agg_consumer_hourly_relay_payments", + "schema": "", + "columns": { + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "datehour": { + "name": "datehour", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggConsumerHourlyIdx": { + "name": "aggConsumerHourlyIdx", + "columns": [ + "datehour", + "spec_id", + "consumer" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "apr": { + "name": "apr", + "schema": "", + "columns": { + "key": { + "name": "key", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "value": { + "name": "value", + "type": "real", + "primaryKey": false, + "notNull": true + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "aprIdx": { + "name": "aprIdx", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "blocks": { + "name": "blocks", + "schema": "", + "columns": { + "height": { + "name": "height", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "datetime": { + "name": "datetime", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "blocks_height_unique": { + "name": "blocks_height_unique", + "nullsNotDistinct": false, + "columns": [ + "height" + ] + } + } + }, + "conflict_responses": { + "name": "conflict_responses", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vote_id": { + "name": "vote_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "request_block": { + "name": "request_block", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vote_deadline": { + "name": "vote_deadline", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "api_interface": { + "name": "api_interface", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "api_URL": { + "name": "api_URL", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "connection_type": { + "name": "connection_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "request_data": { + "name": "request_data", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "conflict_votes": { + "name": "conflict_votes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "vote_id": { + "name": "vote_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "conflict_votes_provider_idx": { + "name": "conflict_votes_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "consumer_subscription_list": { + "name": "consumer_subscription_list", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "plan": { + "name": "plan", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fulltext": { + "name": "fulltext", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdat": { + "name": "createdat", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "cslidx": { + "name": "cslidx", + "columns": [ + "consumer" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "dual_stacking_delegator_rewards": { + "name": "dual_stacking_delegator_rewards", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "chain_id": { + "name": "chain_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "amount": { + "name": "amount", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "denom": { + "name": "denom", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "dual_stacking_delegator_rewards_provider_idx": { + "name": "dual_stacking_delegator_rewards_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "t1": { + "name": "t1", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "t2": { + "name": "t2", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "t3": { + "name": "t3", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "b1": { + "name": "b1", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "b2": { + "name": "b2", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "b3": { + "name": "b3", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "i1": { + "name": "i1", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "i2": { + "name": "i2", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "i3": { + "name": "i3", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "r1": { + "name": "r1", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "r2": { + "name": "r2", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "r3": { + "name": "r3", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fulltext": { + "name": "fulltext", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "events_provider_idx": { + "name": "events_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "key_value_store": { + "name": "key_value_store", + "schema": "", + "columns": { + "key": { + "name": "key", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "key_value_store_key_idx": { + "name": "key_value_store_key_idx", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "provider_health2": { + "name": "provider_health2", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "guid": { + "name": "guid", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec": { + "name": "spec", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "geolocation": { + "name": "geolocation", + "type": "varchar(10)", + "primaryKey": false, + "notNull": false, + "default": "NULL" + }, + "interface": { + "name": "interface", + "type": "varchar(50)", + "primaryKey": false, + "notNull": false, + "default": "NULL" + }, + "status": { + "name": "status", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "data": { + "name": "data", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "default": "NULL" + } + }, + "indexes": { + "ph2idx": { + "name": "ph2idx", + "columns": [ + "provider", + "spec", + "geolocation", + "interface", + "guid" + ], + "isUnique": true + }, + "provider_health2_provider_idx": { + "name": "provider_health2_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + }, + "provider_health2_timestamp_idx": { + "name": "provider_health2_timestamp_idx", + "columns": [ + "timestamp" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "provider_latest_block_reports": { + "name": "provider_latest_block_reports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "chain_id": { + "name": "chain_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "chain_block_height": { + "name": "chain_block_height", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "provider_latest_block_reports_provider_idx": { + "name": "provider_latest_block_reports_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "provider_reported": { + "name": "provider_reported", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cu": { + "name": "cu", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "disconnections": { + "name": "disconnections", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "epoch": { + "name": "epoch", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "errors": { + "name": "errors", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "datetime": { + "name": "datetime", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "total_complaint_this_epoch": { + "name": "total_complaint_this_epoch", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "provider_reported_provider_idx": { + "name": "provider_reported_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "provider_spec_moniker": { + "name": "provider_spec_moniker", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "moniker": { + "name": "moniker", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec": { + "name": "spec", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdat": { + "name": "createdat", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updatedat": { + "name": "updatedat", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "psmidx": { + "name": "psmidx", + "columns": [ + "provider", + "spec" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "provider_stakes": { + "name": "provider_stakes", + "schema": "", + "columns": { + "stake": { + "name": "stake", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "delegate_limit": { + "name": "delegate_limit", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "delegate_total": { + "name": "delegate_total", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "delegate_commission": { + "name": "delegate_commission", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "applied_height": { + "name": "applied_height", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "geolocation": { + "name": "geolocation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "addons": { + "name": "addons", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "extensions": { + "name": "extensions", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "providerStakesIdx": { + "name": "providerStakesIdx", + "columns": [ + "provider", + "spec_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "relay_payments": { + "name": "relay_payments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "relays": { + "name": "relays", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "cu": { + "name": "cu", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "pay": { + "name": "pay", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "datetime": { + "name": "datetime", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "qos_sync": { + "name": "qos_sync", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "qos_availability": { + "name": "qos_availability", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "qos_latency": { + "name": "qos_latency", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "qos_sync_exc": { + "name": "qos_sync_exc", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "qos_availability_exc": { + "name": "qos_availability_exc", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "qos_latency_exc": { + "name": "qos_latency_exc", + "type": "real", + "primaryKey": false, + "notNull": false + }, + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "name_idx": { + "name": "name_idx", + "columns": [ + "spec_id" + ], + "isUnique": false + }, + "ts_idx": { + "name": "ts_idx", + "columns": [ + "datetime" + ], + "isUnique": false + }, + "consumer_idx": { + "name": "consumer_idx", + "columns": [ + "consumer" + ], + "isUnique": false + }, + "relay_payments_provider_idx": { + "name": "relay_payments_provider_idx", + "columns": [ + "provider" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "subscription_buys": { + "name": "subscription_buys", + "schema": "", + "columns": { + "block_id": { + "name": "block_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consumer": { + "name": "consumer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "number": { + "name": "number", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "plan": { + "name": "plan", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tx": { + "name": "tx", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "supply": { + "name": "supply", + "schema": "", + "columns": { + "key": { + "name": "key", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "amount": { + "name": "amount", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "timestamp": { + "name": "timestamp", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "supplyIdx": { + "name": "supplyIdx", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "agg_alltime_relay_payments": { + "name": "agg_alltime_relay_payments", + "schema": "", + "columns": { + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggAllTimeIdx": { + "name": "aggAllTimeIdx", + "columns": [ + "spec_id", + "provider" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "agg_daily_relay_payments": { + "name": "agg_daily_relay_payments", + "schema": "", + "columns": { + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dateday": { + "name": "dateday", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggDailyIdx": { + "name": "aggDailyIdx", + "columns": [ + "dateday", + "spec_id", + "provider" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "agg_hourly_relay_payments": { + "name": "agg_hourly_relay_payments", + "schema": "", + "columns": { + "provider": { + "name": "provider", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "datehour": { + "name": "datehour", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "spec_id": { + "name": "spec_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cusum": { + "name": "cusum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "relaysum": { + "name": "relaysum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "rewardsum": { + "name": "rewardsum", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "qossyncavg": { + "name": "qossyncavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityavg": { + "name": "qosavailabilityavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyavg": { + "name": "qoslatencyavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qossyncexcavg": { + "name": "qossyncexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qosavailabilityexcavg": { + "name": "qosavailabilityexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "qoslatencyexcavg": { + "name": "qoslatencyexcavg", + "type": "double precision", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "aggHourlyIdx": { + "name": "aggHourlyIdx", + "columns": [ + "datehour", + "spec_id", + "provider" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + } + }, + "enums": {}, + "schemas": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 52d4221..edf7357 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -239,6 +239,13 @@ "when": 1729851323266, "tag": "0033_silent_slayback", "breakpoints": true + }, + { + "idx": 34, + "version": "5", + "when": 1730216717821, + "tag": "0034_pretty_steve_rogers", + "breakpoints": true } ] } \ No newline at end of file diff --git a/src/executils/getblock.ts b/src/executils/getblock.ts index c0bc9c0..0296804 100644 --- a/src/executils/getblock.ts +++ b/src/executils/getblock.ts @@ -2,7 +2,7 @@ import { GetRpcBlock, GetRpcTxs } from "../indexer/lavaBlock"; import { logger } from "../utils/utils"; -import { ConnectToRpc, RpcConnection } from "../utils/rpc"; +import { ConnectToRpc, RpcConnection } from "../indexer/utils/lavajsRpc"; import * as indexerconsts from '../indexer/indexerConsts'; const printBlockAndTxs = async (height: number, rpcConnection: RpcConnection): Promise => { diff --git a/src/indexer.ts b/src/indexer.ts index 06df983..43f48ca 100644 --- a/src/indexer.ts +++ b/src/indexer.ts @@ -15,7 +15,7 @@ import { GetOneLavaBlock } from './indexer/lavaBlock' import { EventDebug } from './indexer/eventDebug' import { LavaBlock } from './indexer/types' import { SyncBlockchainEntities } from './indexer/blockchainEntities/blockchainEntitiesSync' -import { ConnectToRpc, RpcConnection } from "./utils/rpc"; +import { ConnectToRpc, RpcConnection } from "./indexer/utils/lavajsRpc"; import { MigrateDb, GetJsinfoDb } from "./utils/dbUtils"; import { AggProviderAndConsumerRelayPayments, AggProviderAndConsumerRelayPaymentsSync } from "./indexer/agregators/aggProviderAndConsumerRelayPayments"; import { SaveTokenSupplyToDB } from './indexer/supply/syncSupply'; @@ -180,7 +180,6 @@ const indexer = async (): Promise => { logger.info('Done RestRpcAgreagorsCaller'); await SaveTokenSupplyToDB(db, rpcConnection.lavajsClient); logger.info('Done SaveTokenSupplyToDB'); - await fillUpBackoffRetry(db, rpcConnection); logger.info('Done fillUpBackoffRetry'); } diff --git a/src/indexer/blockchainEntities/blockchainEntitiesStakeUpdater.ts b/src/indexer/blockchainEntities/blockchainEntitiesStakeUpdater.ts index d25699c..0b0a779 100644 --- a/src/indexer/blockchainEntities/blockchainEntitiesStakeUpdater.ts +++ b/src/indexer/blockchainEntities/blockchainEntitiesStakeUpdater.ts @@ -2,7 +2,7 @@ import * as JsinfoSchema from '../../schemas/jsinfoSchema/jsinfoSchema'; import { StakeEntry } from '@lavanet/lavajs/dist/codegen/lavanet/lava/epochstorage/stake_entry'; -import { AppendUniqueItems, ToSignedBigIntOrMinusOne, ToSignedIntOrMinusOne } from '../indexerUtils'; +import { AppendUniqueItems, ToSignedBigIntOrMinusOne, ToSignedIntOrMinusOne } from '../utils/indexerUtils'; import { LavaClient } from '../types'; import { logger } from '../../utils/utils'; diff --git a/src/indexer/classes/CoinGeko/CoinGekoCache.ts b/src/indexer/classes/CoinGeko/CoinGekoCache.ts new file mode 100644 index 0000000..4b75526 --- /dev/null +++ b/src/indexer/classes/CoinGeko/CoinGekoCache.ts @@ -0,0 +1,67 @@ +import { logger, TruncateError } from "../../../utils/utils"; +import { MemoryCache } from "../MemoryCache"; +import { FetchRestData } from "../../utils/restRpc"; +import denomsData from "./denoms.json" assert { type: "json" }; + +export interface CoinGeckoRateResponse { + [coinGeckodenom: string]: { + usd: number + }; +} + +class CoinGekoCacheClass { + private cacheRefreshInterval = 5 * 60; // 5 minutes + + public async GetDenomToUSDRate(denom: string): Promise { + const coinGeckodenom = denomsData[denom as keyof typeof denomsData]; + if (!coinGeckodenom) { + throw new Error(`No matching id found in denoms.json for ${denom}`); + } + + const cacheKey = `coingecko-rate-${coinGeckodenom}`; + const cachedRate = await MemoryCache.getDict(cacheKey); + if (cachedRate) { + return cachedRate.rate; + } + + await this.fetchAndCacheDenomRate(coinGeckodenom); + const newCachedRate = await MemoryCache.getDict(cacheKey); + if (!newCachedRate) { + throw new Error(`Failed to cache rate for ${coinGeckodenom}`); + } + + return newCachedRate.rate; + } + + private async fetchAndCacheDenomRate(coinGeckodenom: string): Promise { + try { + const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coinGeckodenom}&vs_currencies=usd`; + const data = await FetchRestData( + url, + {}, + false, + 3, // retries + 2, // backoff + 1200, // timeout + 5000 // delay + ); + + const usdRate = data[coinGeckodenom]?.usd; + if (!usdRate) { + throw new Error(`No USD rate found for ${coinGeckodenom}`); + } + + await MemoryCache.setDict( + `coingecko-rate-${coinGeckodenom}`, + { rate: usdRate }, + this.cacheRefreshInterval + ); + logger.info(`Fetched and cached USD rate for ${coinGeckodenom}: ${usdRate}`); + } catch (error) { + logger.error(`Error fetching USD rate for ${coinGeckodenom}`, { error: TruncateError(error) }); + throw error; + } + } +} + +export const CoinGekoCache = new CoinGekoCacheClass(); \ No newline at end of file diff --git a/src/indexer/classes/CoinGeko/denoms.json b/src/indexer/classes/CoinGeko/denoms.json new file mode 100644 index 0000000..328da41 --- /dev/null +++ b/src/indexer/classes/CoinGeko/denoms.json @@ -0,0 +1,11499 @@ +{ + "7": "lucky7", + "42": "42-coin", + "777": "jackpot", + "2080": "2080", + "2192": "lernitas", + "4096": "4096", + "7007": "token7007", + "69420": "69420", + "zoc": "01coin", + "zcn": "0chain", + "0dog": "0dog", + "0kn": "0-knowledge-network", + "ome": "0-mee", + "vix": "vixco", + "zrx": "0x", + "0x0": "0x0-ai-ai-smart-contract", + "xfour": "0x404", + "wolf": "wolf-solana", + "zad": "0xadventure", + "0xaiswap": "0xaiswap", + "0xanon": "0xanon", + "0xb": "0xblack", + "coco": "coco-coin", + "oxd": "0xdao", + "cafe": "cafe", + "0xgas": "0xgasless-2", + "xgn": "0xgen", + "0xg": "0xgpu-ai", + "oxl": "0x-leverage", + "openli": "0xlp", + "0xlsd": "0xlsd", + "0xmr": "0xmonero", + "oxn": "0xnumber", + "0xos": "0xos-ai", + "scan": "0xscans", + "vpn": "0xvpn-org", + "1000bonk": "1000bonk", + "1000btt": "1000btt", + "1000rats": "1000rats", + "1000sats": "1000sats-ordinals", + "1000shib": "1000shib", + "1000troll": "1000troll", + "16dao": "16dao", + "1art": "1art", + "1ex": "1ex", + "water": "water-coin", + "1inch": "1inch", + "yv1inch": "1inch-yvault", + "intro": "1intro", + "1mdc": "1mdc", + "1mil": "1million-nfts", + "1mt": "1move token", + "1rt": "1reward-token", + "@btc25": "1rus-btc25", + "1rusd": "1rus-dao", + "1sol": "1sol", + "₿": "-2", + "pump": "pumpkin-cat", + "20ex": "20ex", + "21m": "21million", + "21x": "21x", + "vck": "28vck", + "2dai": "2dai-io", + "2fai": "2fai", + "2gcc": "2g-carbon-coin", + "moon": "moonscape-2", + "2omb": "2omb-finance", + "2shares": "2share", + "meow": "zero-tech", + "fit": "snkrz-fit", + "a3a": "3a-lending-protocol", + "3d3d": "3d3d", + "p3d": "3dpass", + "3km": "3-kingdoms-multiverse", + "pace": "3space-art", + "four": "the-4th-pillar", + "404a": "404aliens", + "bake": "bakerytoken", + "404blocks": "404blocks", + "top": "top-network", + "4chan": "4chan", + "4dc": "4dcoin", + "4dmaps": "4d-twin-maps-2", + "4int": "4int", + "nxtu": "4-next-unicorn", + "4tb": "4tb-coin", + "4win": "4trump", + "4wmm": "4-way-mirror-money", + "vgc": "5g-cash", + "5ire": "5ire", + "5mc": "5mc", + "fiw": "777fuckilluminatiworldwid", + "mph": "morpher", + "w8bit": "8bit-chain", + "coin": "swapbased-coin", + "8pay": "8pay", + "kids": "90-s-kid", + "9-5": "9-5", + "99btc": "99-bitcoins", + "stz": "99starz", + "9inch": "9inch", + "9to5": "9to5io", + "aa": "astarter", + "a4": "a4-finance", + "a51": "a51-finance", + "aaa": "moon-rabbit", + "lenfi": "aada-finance", + "ade": "aadex-finance", + "aag": "aag-ventures", + "an": "aann-ai", + "vark": "aardvark-2", + "aark": "aark-digital", + "arma": "aarma-2", + "aast": "aastoken", + "aave": "aave", + "aaave": "aave-v3-aave", + "aammbptbalweth": "aave-amm-bptbalweth", + "aammbptwbtcweth": "aave-amm-bptwbtcweth", + "aammdai": "aave-amm-dai", + "aammuniaaveweth": "aave-amm-uniaaveweth", + "aammunibatweth": "aave-amm-unibatweth", + "aammunicrvweth": "aave-amm-unicrvweth", + "aammunidaiusdc": "aave-amm-unidaiusdc", + "aammunidaiweth": "aave-amm-unidaiweth", + "aammunilinkweth": "aave-amm-unilinkweth", + "aammunimkrweth": "aave-amm-unimkrweth", + "aammunirenweth": "aave-amm-unirenweth", + "aammunisnxweth": "aave-amm-unisnxweth", + "aammuniuniweth": "aave-amm-uniuniweth", + "aammuniusdcweth": "aave-amm-uniusdcweth", + "aammuniwbtcusdc": "aave-amm-uniwbtcusdc", + "aammuniwbtcweth": "aave-amm-uniwbtcweth", + "aammuniyfiweth": "aave-amm-uniyfiweth", + "aammusdc": "aave-amm-usdc", + "aammusdt": "aave-amm-usdt", + "aammwbtc": "aave-amm-wbtc", + "aammweth": "aave-amm-weth", + "abal": "arch-balanced-portfolio", + "abpt": "aave-balancer-pool-token", + "abat": "aave-bat-v1", + "abusd": "aave-busd-v1", + "acrv": "aave-v3-crv", + "adai": "aave-v3-dai", + "aenj": "aave-enj-v1", + "aeth": "aave-eth-v1", + "ghst": "aavegotchi", + "alpha": "alpha-shards", + "fomo": "fomo-tocd", + "fud": "fud-the-pug", + "kek": "pepe-prophet", + "agusd": "aave-gusd", + "asteth": "aave-interest-bearing-steth", + "aknc": "aave-v3-knc", + "alink": "alink-ai", + "amana": "aave-mana-v1", + "amkr": "aave-v3-mkr", + "amaave": "aave-polygon-aave", + "amdai": "aave-polygon-dai", + "amusdc": "aave-polygon-usdc", + "amusdt": "aave-polygon-usdt", + "amwbtc": "aave-polygon-wbtc", + "amweth": "aave-polygon-weth", + "amwmatic": "aave-polygon-wmatic", + "arai": "aave-rai", + "aren": "aave-ren-v1", + "asnx": "aave-v3-snx", + "stkgho": "aave-stkgho", + "asusd": "aave-v3-susd", + "atusd": "aave-tusd-v1", + "auni": "aave-v3-uni", + "ausdc": "aave-v3-usdc", + "ausdt": "alloy-tether", + "a1inch": "aave-v3-1inch", + "aageur": "aave-v3-ageur", + "aarb": "aave-v3-arb", + "abtc.b": "aave-v3-btc-b", + "acbeth": "aave-v3-cbeth", + "adpi": "aave-v3-dpi", + "aens": "aave-v3-ens", + "aeure": "aave-v3-eure", + "aeurs": "aave-v3-eurs", + "afrax": "aave-v3-frax", + "aghst": "aave-v3-ghst", + "agno": "aave-v3-gno", + "aldo": "aave-v3-ldo", + "alusd": "alchemix-usd", + "amai": "aave-v3-mai", + "amaticx": "aave-v3-maticx", + "ametis": "aave-v3-metis", + "aop": "aave-v3-op", + "areth": "aave-v3-reth", + "arpl": "aave-v3-rpl", + "asavax": "aave-v3-savax", + "asdai": "aave-v3-sdai", + "astg": "aave-v3-stg", + "astmatic": "aave-v3-stmatic", + "asushi": "aave-v3-sushi", + "abasusdbc": "aave-v3-usdbc", + "ausdc.e": "aave-v3-usdc-e", + "awavax": "aave-v3-wavax", + "awbtc": "aave-wbtc-v1", + "aweth": "aave-weth", + "awmatic": "aave-v3-wmatic", + "awsteth": "aave-v3-wsteth", + "axsushi": "aave-xsushi", + "ayfi": "aave-yfi", + "yvaave": "aave-yvault", + "azrx": "aave-zrx-v1", + "abi": "abachi-2", + "abax": "abax", + "aabl": "abble", + "abccleo": "abccleo", + "abcde": "abcde-coin", + "meta": "metaverse-miner", + "abcnuri": "abcnuri", + "abcphar": "abcphar", + "abc": "angry-bulls-club", + "abds": "abds-token", + "abel": "abelian", + "abey": "abey", + "abg": "ab-group", + "able": "able-finance", + "abe": "aboard", + "aboat": "aboat-token-2", + "abond": "abond", + "abs": "abstradex", + "awt": "air-wing-token", + "aca": "acala", + "ausd": "aurelius-usd", + "acs": "acryptos-2", + "accord": "accord-ai", + "acfi": "accumulated-finance", + "ace": "metatrace-utility-token", + "act": "achain", + "achi": "achi-inu", + "achmed": "achmed-heart-and-sol", + "ack": "acknoledger", + "acm": "actinium", + "acn": "acorn-protocol", + "acq": "acquire-fi", + "acria": "acria", + "acx": "across-protocol", + "acsi": "acryptosi", + "acu": "acurast", + "aac": "acute-angle-cloud", + "adacash": "adacash", + "adao": "adadao", + "addy": "adamant", + "adm": "adamant-messenger", + "adana": "adanaspor-fan-token", + "adapad": "adapad", + "fren": "frencoin-2", + "adp": "adappter-token", + "tfbill": "adapt3r-digital-treasury-bill-fund", + "asw": "adaswap", + "adasol": "ada-the-dog", + "adax": "adax", + "add": "add-finance", + "dic": "addickted", + "adx": "adrena", + "adil": "adil-chain", + "matrix": "matrixswap", + "ado": "ado-network", + "adon": "adonis-2", + "ad": "adreward", + "adr": "adroverse", + "ads": "adshares", + "adult": "adult-playground", + "advt": "advantis", + "agld": "adventure-gold", + "adco": "advertise-coin", + "aeggs": "aeggs", + "ags": "collector-coin", + "aegis": "aegis-ai", + "elf": "the-land-elf-crossing", + "aelin": "aelin", + "aeon": "aeon", + "aeonodex": "aeonodex", + "aergo": "aergo", + "aerobud": "aerobud", + "aero": "aerovek-aviation", + "arnx": "aeron", + "aerosol": "aerosol", + "aesirx": "aesirx", + "aet": "aet", + "ae": "aeternity", + "aeg": "aether-games", + "ath": "athens", + "aeusd": "aeusd", + "aevo": "aevo-exchange", + "aevum": "aevum-ore", + "azr": "aezora", + "afen": "afen-blockchain", + "affi": "affi-network", + "ultraeths": "affine-ultraeths-2-0", + "afnty": "affinity", + "fyn": "affyn", + "afin": "afin-coin", + "afr": "afreum", + "ubu": "africarare", + "afx": "afrix", + "afro": "afrostar", + "afsui": "aftermath-staked-sui", + "fund": "unification", + "afyon": "afyonspor-fan-token", + "edc": "aga-rewards", + "agata": "agatech", + "aga": "agorahub", + "agve": "agave-token", + "agt": "avatago", + "agent": "agentlayer", + "usedcar": "a-gently-used-2001-honda", + "usedphone": "a-gently-used-nokia-3310", + "apes": "based-degen-apes", + "♒": "age-of-aquarius", + "aog": "smartofgiving", + "eura": "ageur", + "egeur.e": "ageur-plenty-bridge", + "agg": "amplifi-dao", + "agii": "agii", + "agi": "delysium", + "agio": "agio", + "agn": "agnus-ai", + "ago": "ago", + "agrs": "agoras-currency-of-tau", + "bld": "blackder-ai", + "dlt": "agrello", + "agrf": "agri-future-token", + "agro": "agro-global", + "aguri": "aguri-chan", + "agus": "agus", + "aht": "ahatoken", + "caw": "crow-with-knife", + "aia": "aiakita", + "aix": "aiakitax", + "aiat": "ai-analysis-token", + "aibcoin": "aiblock", + "aibot": "aibot", + "ait": "ait-protocol", + "aicode": "ai-code", + "ai": "sleepless-ai", + "ai.com": "ai-com", + "aic": "ai-companions", + "aicore": "aicore", + "aicr": "aicrew", + "aidp": "ai-depin", + "aidi": "aidi-finance-2", + "chatgpt": "ai-dragon", + "aie": "aiearn", + "aien": "aienglish", + "aig": "a-i-genesis", + "agx": "aigentx", + "aigpu": "aigpu-token", + "aih": "aihub", + "aiinu": "ai-inu", + "aimage": "aimage-tools", + "aim": "meta-oasis", + "aimbot": "aimbot", + "aimx": "mind-matrix", + "amc": "amc-3", + "ain": "ai-network", + "ainu": "anon-inu", + "aion": "aion", + "aioz": "aioz-network", + "aipad": "aipad", + "aipepe": "ai-pepe-king", + "aipets": "aipets", + "aipg": "ai-power-grid", + "aip": "ai-powers", + "atmt": "aiptp", + "air": "spacebar", + "airbtc": "airbtc", + "airi": "airight", + "airt": "airnft-token", + "apuff": "airpuff", + "ast": "airswap", + "airtnt": "airtnt", + "airtok": "airtok", + "anyone": "airtor-protocol", + "aiscii": "aiscii", + "shibai": "aishiba", + "aisig": "aisignal", + "ais": "aisociety", + "aisp": "ai-supreme", + "aisc": "ai-surf", + "aiswap": "aiswap", + "aitax": "aitaxbot", + "aitom": "aitom", + "aitt": "aittcoin", + "aiv": "aivoice", + "wai": "wienerai", + "awo": "aiwork", + "x": "x-xrc-20", + "ajna": "ajna-protocol", + "baju": "ajuna-network", + "ajun": "ajuna-network-2", + "aku": "akamaru", + "ak1111": "akashalife", + "akt": "akita-inu-2", + "aki": "aki-protocol", + "akita": "akita-inu-4", + "akta": "akita-inu-asa", + "akitax": "akitavax", + "akv": "akiverse-governance-token", + "akro": "akropolis", + "adel": "akropolis-delphi", + "afs": "aktionariat-alan-frei-company-tokenized-shares", + "axras": "aktionariat-axelra-early-stage-ag-tokenized-shares", + "bees": "bee-launchpad", + "cas": "kaspa-classic", + "cfes": "aktionariat-clever-forever-education-ag-tokenized-shares", + "ddcs": "aktionariat-ddc-schweiz-ag-tokenized-shares", + "fdos": "aktionariat-fieldoo-ag-tokenized-shares", + "fnls": "aktionariat-finelli-studios-ag-tokenized-shares", + "dgcs": "aktionariat-green-consensus-ag-tokenized-shares", + "gmcs": "aktionariat-green-monkey-club-ag-tokenized-shares", + "sias": "aktionariat-sia-swiss-influencer-award-ag-tokenized-shares", + "spos": "aktionariat-sportsparadise-switzerland-ag-tokenized-shares", + "tbos": "aktionariat-tbo-co-comon-accelerator-holding-ag-tokenized-shares", + "tvpls": "aktionariat-tv-plus-ag-tokenized-shares", + "vrgns": "aktionariat-vereign-ag-tokenized-shares", + "aldin": "alaaddin-ai", + "ald": "aladdin-dao", + "arusd": "aladdin-rusd", + "asdcrv": "aladdin-sdcrv", + "alan": "alan-the-alien", + "ala": "alanyaspor-fan-token", + "carat": "diamond-standard-carat", + "atp": "atlas-protocol", + "albedo": "albedo", + "albemarle": "albemarle-meme-token", + "albert": "albert-euro-2024", + "mist": "mist", + "alcx": "alchemix", + "aleth": "alchemix-eth", + "ach": "alchemy-pay", + "usdt": "viction-bridged-usdt-viction", + "rin": "aldrin", + "alea": "alea", + "aleo": "aleo", + "aleph": "aleph-im-wormhole", + "alph": "alephium", + "azero": "aleph-zero", + "ali": "kindness-for-the-soul-ali", + "alex": "alexgo", + "alexis": "alexis", + "susdt": "alex-wrapped-usdt", + "alf": "alf", + "sauber": "alfa-romeo-racing-orlen-fan-token", + "alfa": "alfa-society", + "algb": "algebra", + "chip": "blue-chip", + "gomint": "algomint", + "algo": "algowave", + "stbl": "algostable", + "abbc": "alibabacoin", + "dbaba": "alibaba-tokenized-stock-defichain", + "alice": "my-neighbor-alice", + "alca": "alicenet", + "aoc": "alickshundra-occasional-cortex", + "alien": "alienswap", + "alienb": "alienb", + "alb": "alienbase", + "acf": "alien-chicken-farm", + "a4m": "alienform", + "tlm": "alien-worlds", + "alif": "alif-coin", + "alme": "alita-2", + "alita": "alita-gold", + "alt": "aptos-launch-token", + "alm": "alium-finance", + "$ads": "alkimi", + "aart": "all-art", + "abr": "allbridge", + "aeeth": "allbridge-bridged-eth-fuse", + "sol": "wrapped-solana", + "assol": "allbridge-bridged-sol-fuse", + "asusdc": "allbridge-bridged-usdc-fuse", + "aeusdc": "allbridge-bridged-usdc-stacks", + "allcat": "all-cat-no-brakes", + "all": "alliance-fan-token", + "nxra": "allianceblock-nexera", + "allin": "all-in", + "aio": "all-in-one-wallet", + "asafe": "allsafe", + "bets": "betswirl", + "ats": "atlas-dex", + "aly": "ally", + "yobase": "all-your-base", + "ayb": "all-your-base-2", + "alman": "alman", + "amkt": "alongside-crypto-market-index", + "alpa": "alpaca", + "alpaca": "alpaca-finance", + "alpha ai": "alpha-ai", + "alphabet": "alphabet-erc404", + "ag": "alpha-gardeners", + "aikek": "alphakek-ai", + "anva": "alphanova", + "aqt": "alpha-quark-token", + "arabbit": "alpha-rabbit", + "arbot": "alpha-radar-bot", + "ascn": "alphascan", + "$alpha": "alpha-shares-v2", + "apad": "anypad", + "alphr": "alphr", + "alpine": "alpine-f1-team-fan-token", + "tava": "altava", + "altb": "altbase", + "altt": "altcoinist-token", + "ctrl": "ctrl", + "alter": "alter", + "asto": "altered-state-token", + "althea": "althea", + "altd": "altitude", + "aken": "altoken", + "altr": "altranium", + "asi": "altsignals", + "alu": "altura", + "aln": "aluna", + "jownes": "alux-jownes", + "alva": "alvara-protocol", + "walv": "alvey-chain", + "alxai": "alxai", + "amar": "amar-token", + "amas": "amasa", + "amt": "autominingtoken", + "iza": "amaterasufi-izanagi", + "omikami": "amaterasu-omikami", + "$amax": "amax", + "amazingteam": "amazingteamdao", + "damzn": "amazon-tokenized-stock-defichain", + "azy": "amazy", + "amb": "amber", + "amber": "amberdao", + "wallet": "ambire-wallet", + "ambt": "ambit-finance", + "ambo": "ambo", + "ambr": "ambra", + "ame": "amepay", + "america": "america1776", + "usa": "dedprz", + "uspepe": "american-pepe", + "ushiba": "american-shiba", + "$amo": "amino", + "ammx": "ammx", + "ami": "ammyi-coin", + "amapt": "amnis-aptos", + "stapt": "ditto-staked-aptos", + "amo": "amo", + "amon": "amond", + "amp": "amp-token", + "ampere": "amperechain", + "ampl": "ampleforth", + "forth": "ampleforth-governance-token", + "amu": "amulet-protocol", + "amtsol": "amulet-staked-sol-2", + "aha": "anagata", + "analos": "analos", + "zero": "zeroswapnft", + "🖕": "anarcho-catbus", + "anarchy": "anarchy", + "achf": "anchored-coins-chf", + "aeur": "anchored-coins-eur", + "anc": "anchor-protocol", + "anchor": "anchorswap", + "a8": "ancient8", + "taw": "ancient-world", + "andi": "andi", + "vonspeed": "andrea-von-speed", + "andr": "andromeda-2", + "deb": "anduschain", + "andy": "andy-the-wisguy", + "badcat": "badcat", + "candy": "candy-token", + "angle": "angle-protocol", + "stusd": "midas-stusd", + "usda": "angle-usd", + "agla": "angola", + "anb": "angryb", + "angryslerf": "angryslerf", + "anima": "apeiron-anima", + "anml": "animal-concerts-token", + "anim": "animalia", + "am": "aston-martin-cognizant-fan-token", + "anime": "anime-base", + "ani": "anime-token", + "wynn": "anita-max-wynn", + "anka": "ankaragucu-fan-token", + "ankr": "ankr", + "ankreth": "ankreth", + "ankrftm": "ankr-reward-bearing-ftm", + "ankrmatic": "ankr-reward-earning-matic", + "ankrbnb": "ankr-staked-bnb", + "ankrflow": "ankr-staked-flow", + "anok": "anokas-network", + "anom": "anomus-coin", + "anon": "anonymous", + "atec": "anontech", + "awm": "another-world", + "hobbes": "hobbes-new", + "awp": "ansem-wif-photographer", + "ansom": "ansom", + "agov": "answer-governance", + "antt": "antara-raiders-royals", + "atf": "arithfi", + "tune": "antimatter", + "ams": "antmons", + "abn": "antofy", + "any": "anyswap", + "susdz": "anzen-staked-usdz", + "usdz": "zonko-usdz", + "ao": "ao-computer", + "aok": "aok", + "apc": "apin-pulse", + "ape": "linea-bridged-ape-linea", + "apepe": "ape-and-pepe", + "aped": "aped-3", + "aprs": "apeironnft", + "nft": "nft-protocol", + "aptr": "aperture-finance", + "agb": "apes-go-bananas", + "banana": "world-record-banana", + "apetardio": "apetardio", + "apewifhat": "apewifhat", + "apex": "apex-token-2", + "apfc": "apf-coin", + "api3": "api3", + "apt": "aptos", + "nctr": "dust-city-nectar", + "apm": "apm-coin", + "apl": "apollon-limassol", + "apollo": "apollo-protocol-ceres", + "ftw": "friendtech33", + "ans": "apollo-name-service", + "apx": "astropepex", + "appc": "appcoins", + "$acat": "apple-cat", + "pie": "sports-pie", + "daapl": "apple-tokenized-stock-defichain", + "aprt": "apricot", + "april": "april", + "apn": "apron", + "aps": "apsis", + "apd": "aptopad", + "apu": "apu-s-club", + "apugurl": "apu-gurl", + "apw": "apwine", + "apy": "apy-finance", + "apys": "apyswap", + "vision": "visiongame", + "aqtis": "aqtis", + "$aqua": "aquastake", + "aquagoat": "aqua-goat", + "aqla": "aqualibre", + "aqdc": "aquanee", + "aquari": "aquari", + "aqua": "planet-finance", + "ars": "aquarius-loan", + "arab": "arab-cat", + "dubx": "arabianchain", + "agon": "arabian-dragon", + "abic": "arabic", + "acre": "arable-protocol", + "ara": "ara-token", + "ant": "aragon", + "aidoge": "arbdoge-ai", + "adoge": "arbidoge", + "arbinauts": "arbinauts", + "nyan": "nyan-meme-coin", + "arbi": "arbitrum-ecosystem-index", + "rbis": "arbismart-token", + "alp": "arbitrove-alp", + "arb": "osmosis-allarb", + "wbtc": "zksync-bridged-wbtc-zksync", + "weth": "zora-bridged-weth-zora-network", + "arx": "arcs", + "arbpad": "arbitrumpad", + "aius": "arbius", + "arbs": "arbswap", + "arbus": "arbus", + "arbuz": "arbuz", + "arc": "archly-finance", + "arca": "arca", + "arcade": "arcadefi", + "arcd": "arcade-protocol", + "arcadium": "arcadium", + "arcusd": "arcana-2", + "xar": "arcana-token", + "abt": "arcblock", + "aagg": "arch-aggressive-portfolio", + "archa": "archangel-token", + "bow": "archerswap-bow", + "hunt": "hunt-token", + "uco": "archethic", + "arch": "archway", + "arcx": "architex", + "archi": "archi-token", + "arcai": "archive-ai", + "al": "archloot", + "arcona": "arcona", + "dana": "ardana", + "ardr": "ardor", + "aes": "aree-shards", + "arena": "arena-token", + "area": "areon-network", + "ares": "ares-protocol", + "arg": "argonon-helium", + "argo": "argo-finance", + "agc": "argocoin", + "argon": "argon", + "argy": "argy-bargy-token", + "ari10": "ari10", + "ria": "calvaria-doe", + "aria20": "arianee", + "chikun": "arise-chikun", + "arv": "ariva", + "arix": "arix", + "99cents": "arizona-iced-tea", + "ark": "ark", + "diko": "arkadiko-protocol", + "$arken": "arken-finance", + "arker": "arker-2", + "arkm": "arkham", + "darkk": "ark-innovation-etf-defichain", + "arki": "arkitech", + "akre": "arkreen-token", + "arks": "arkstart", + "arky": "arky", + "ab": "arma-block", + "armor": "armor", + "afg": "army-of-fortune-gem", + "afc": "arsenal-fan-token", + "arnc": "arnoya-classic", + "arpa": "arpa", + "arq": "arqma", + "arqx": "arqx-ai", + "arrc": "arrland-arrc", + "rum": "arrland-rum", + "arrow": "arrow-token", + "aby": "artbyte", + "ac": "artcoin", + "cpa-97530": "artcpaclub", + "adf": "art-de-finance", + "artem": "artem", + "mis": "mithril-share", + "atai": "artemisai", + "artr": "artery", + "artfi": "artfi", + "arth": "arth", + "arsw": "arthswap", + "aii": "artificial-idiot", + "ainn": "artificial-neural-network-ordinals", + "atnt": "artizen", + "artl": "artl", + "$mart": "artmeta", + "atr": "artrade", + "artx": "artx", + "arty": "artyfact", + "ar": "arweave", + "aya": "aryacoin", + "eeur": "e-money-eur", + "egbp": "aryze-egbp", + "eusd": "eusd-new", + "asan": "asan-verse", + "asap": "asap-sniper-bot", + "asd": "asd", + "asdi": "asdi", + "asdir": "asdi-reward", + "odin": "odin-protocol", + "ash": "ash-token", + "asia": "asia-coin", + "irene": "asian-mother", + "asix": "asix", + "asm": "assemble-protocol", + "aso": "aso-finance", + "aspo": "aspo-world", + "asr": "as-roma-fan-token", + "justice": "assangedao", + "asnt": "assent-protocol", + "aset": "assetlink", + "mntl": "assetmantle", + "astr": "stargate-bridged-astr-astar-zkevm", + "$xcastr": "astar-moonbeam", + "atc": "autochain", + "astx": "asterix", + "roids": "asteroids", + "asteroid": "asteroid-shiba", + "avl": "aston-villa-fan-token", + "astra": "astra-protocol-2", + "astradao": "astra-dao-2", + "astrafer": "astrafer", + "xac": "astral-credits", + "glxy": "astrals-glxy", + "$rvv": "astra-nova", + "aznt": "astrazion", + "rcbeth": "astrid-restaked-cbeth", + "rreth": "astrid-restaked-reth", + "astro": "astrotools", + "abb": "astro-babies", + "elonone": "astroelon", + "astrl": "astrolescent", + "astroc": "astroport", + "spaces": "astrospaces-io", + "axv": "astrovault", + "xarch": "astrovault-xarch", + "xatom": "astrovault-xatom", + "xjkl": "astrovault-xjkl", + "asva": "asva", + "asx": "asymetrix", + "asy": "asyagro", + "atri": "atari", + "atb": "atb", + "atem": "atem-network", + "olea": "athena-returns-olea", + "aem": "atheneum", + "atlas": "star-atlas", + "navi": "natus-vincere-fan-token", + "usv": "atlas-usv", + "atm": "atletico-madrid", + "atomarc20": "atomicals", + "atom1": "atomone", + "atrno": "atrno", + "atrofa": "atrofarm", + "pine": "pine", + "atk": "attack-wagon", + "atrs": "attarius", + "att": "attila", + "tua": "atua-ai", + "auction": "auction", + "acl": "auction-light", + "auc": "auctus", + "audt": "auditchain", + "audio": "audius-wormhole", + "rep": "republican", + "omen": "augury-finance", + "auki": "auki-labs", + "aurabal": "aura-bal", + "aura": "aura-on-sol", + "ang": "aureus-nummus-gold", + "ply": "plenty-ply", + "auri": "aurivis", + "aur": "auroracoin", + "idex": "aurora-dao", + "aurora": "auroratoken", + "aury": "aurory", + "acg": "aurum-gold", + "ax": "aurusx", + "aseed": "ausd-seed-karura", + "ass": "australian-safe-shepherd", + "aut": "autentic", + "autism": "autism", + "auto": "auto", + "aai": "aventis-ai", + "txl": "autobahn-network", + "au": "autocrypto", + "lay3r": "autolayer", + "ata": "automata", + "atx": "automatix", + "atn": "auton", + "niox": "autonio", + "olas": "autonolas", + "ussd": "autonomous-secure-dollar", + "jaws": "autoshark", + "autos": "autosingle", + "autumn": "autumn", + "aux": "aux-coin", + "avb": "avabot", + "avac": "avacoach", + "avacn": "avacoin", + "avex": "avadex-token", + "ava": "concierge-io", + "avail": "avail", + "avax": "binance-peg-avalanche", + "dai": "zksync-erc20-bridged-dai-zksync", + "xava": "avalaunch", + "avalox": "avalox", + "avg": "avaocado-dao", + "": "monad", + "avatly": "avatly-2", + "avav": "avav-asc-20", + "nochill": "avax-has-no-chill", + "lama": "avaxlama", + "avxt": "avaxtars", + "atech": "avaxtech", + "avent": "aventa", + "avtm": "aventis-metaverse", + "avt": "aventus", + "avs": "aves", + "avi": "aviator", + "avn": "avnrich", + "avinoc": "avinoc", + "avive": "avive", + "avo": "avoteo", + "almc": "awkward-look-monkey-club", + "awk": "awkward-monkey", + "axe": "axe-cap", + "axel": "axel", + "axl": "axl-inu", + "axlfrxeth": "axelar-bridged-frax-ether", + "usdc.axl": "axelar-bridged-usdc-cosmos", + "axlusdt": "axelar-usdt", + "axlw": "axel-wrapped", + "axiav3": "axia", + "axial": "axial-token", + "axs": "axie-infinity", + "axset": "axie-infinity-shard-wormhole", + "axm": "axiome", + "axn": "axion", + "axis": "axis-token", + "axlusdc": "ibc-bridged-axlusdc-xpla", + "axlwbtc": "axlwbtc", + "axleth": "axlweth", + "axo": "axo", + "axol": "axol", + "axgt": "axondao-governance-token", + "ayin": "ayin", + "az": "azbit", + "azc": "azcoiner", + "azit": "azit", + "azuki": "azuki", + "azur": "azur-token", + "b01": "b0rder1ess", + "bicoin": "b1coin", + "b20": "b20", + "b2baby": "b2baby", + "b2b": "b2b-token", + "b2share": "b2share", + "bxx": "baanx", + "baas": "baasid", + "baba": "baba", + "bbc": "bull-btc-club", + "babyag": "baba-yaga", + "bax": "babb", + "bbl": "blockblend-2", + "$fish": "babelfish-2", + "baby": "metababy", + "babyakita": "babyakita", + "barb": "baby-arbitrum", + "baby arof": "baby-arof", + "bb": "bouncebit", + "bbeer": "baby-beercoin", + "babybnb": "baby-bnb", + "babybnbtig": "babybnbtiger", + "babybonk": "babybonk-2", + "babybrett": "baby-brett", + "bbrett": "baby-brett-on-base", + "babycat": "baby-cat", + "babycate": "babycate", + "bcoq": "bcoq-inu", + "babycrash": "babycrash", + "babydoge2.0": "babydoge2-0", + "army": "babydogearmy", + "babydogecash": "baby-doge-cash", + "babydoge": "save-baby-doge", + "$babydogeinu": "baby-doge-inu", + "babywif": "babydogwifhat", + "babydojo": "babydojo", + "babydragon": "baby-dragon-2", + "babyelon": "baby-elon", + "babyfloki": "baby-floki", + "babyflokicoin": "baby-floki-coin", + "bfloki": "bitfloki", + "babygrok": "baby-grok", + "babygrokce": "babygrokceo", + "babygrok x": "babygrok-x", + "babyhamster": "baby-hamster", + "babykitty": "babykitty", + "$babylong": "babylong", + "babi": "babylons", + "blovely": "baby-lovely-inu", + "babymeme": "baby-meme-coin", + "bonkey": "baby-monkey", + "babymusk": "baby-musk-2", + "babymyro": "babymyro-2", + "babybomeow": "baby-of-bomeow", + "babypeipei": "baby-peipei", + "babypepe": "babypepefi", + "babypork": "baby-pepe-fork", + "peper": "baby-pepe-on-eth", + "bepe": "blast-pepe", + "smbtc": "babypie-staked-btc", + "mbtc": "micro-bitcoin-finance", + "babyrats": "baby-rats", + "babyrwa": "babyrwa", + "shark": "sharky-fi", + "babyshark": "baby-shark-2", + "bashtank": "baby-shark-tank", + "babyshibainu": "baby-shiba-inu", + "babyshib": "baby-shiba-inu-erc", + "babyslerf": "baby-slerf", + "bs9000": "babysmurf9000", + "babysnek": "babysnek", + "babysol": "babysol", + "babysora": "baby-sora", + "bsg": "baby-squid-game", + "babytomcat": "baby-tomcat", + "babytroll": "baby-troll", + "babytrump": "baby-trump-bsc", + "babyx": "babyx-swap", + "bbyxrp": "babyxrp", + "kitten": "baby-zeek", + "bacgames": "bac-games", + "bjuno": "backbone-labs-staked-juno", + "bkuji": "backbone-staked-kujira", + "bosmo": "backbone-staked-osmo", + "bgoogl": "backed-alphabet-class-a", + "bcoin": "bomber-coin", + "bcspx": "backed-cspx-core-s-p-500", + "berna": "backed-erna-bond", + "bernx": "backed-ernx-bond", + "bgme": "backed-gamestop-corp", + "bc3m": "backed-govies-0-6-months-euro", + "bhigh": "backed-high-high-yield-corp-bond", + "bib01": "backed-ib01-treasury-bond-0-1yr", + "bibta": "backed-ibta-treasury-bond-1-3yr", + "bmsft": "backed-microsoft", + "bmstr": "backed-microstrategy", + "bniu": "backed-niu-technologies", + "bcsbgc3": "backed-swiss-domestic-government-bond-0-3", + "btsla": "backed-tesla", + "bzpr1": "backed-zpr1-1-3-month-t-bill", + "notes": "backstage-pass-notes", + "bacon": "bacondao", + "badger": "badger-dao", + "bbadger": "badger-sett-badger", + "bad": "bad-token", + "bafi": "bafi-finance-token", + "bag": "tehbag", + "bagel": "bagel-coin", + "bahamas": "bahamas", + "bai": "blockai", + "baked": "baked-token", + "tbake": "bakerytools", + "bava": "baklava", + "bnusd": "balanced-dollars", + "bal": "balancer", + "b-80bal-20weth": "balancer-80-bal-20-weth", + "dlp": "balancer-80-rdnt-20-weth", + "stabal3": "balancer-stable-usd", + "usdc-usdbc-axlusdc": "balancer-usdc-usdbc-axlusdc", + "baln": "balance-tokens", + "bald": "bald", + "baldo": "bald-dog", + "bali": "bali-skull", + "bufc": "bali-united-fc-fan-token", + "bof": "balls-of-fate", + "bsp": "ballswap", + "bart": "reptilianzuckerbidenbartcoin", + "ball": "game-5-ball", + "balpha": "balpha", + "bam": "bambi", + "bambit": "bambit", + "bmbo": "bamboo-coin", + "bamboo": "bamboo-on-base", + "bbo": "bamboo-token-c90b31ff-8355-41d6-a495-2b16418524c2", + "🏦": "bamk-of-nakamoto-dollar", + "bcat": "bug-cat", + "bana": "shibana", + "bsh": "banana-superhero", + "btw": "banana-tape-wall", + "bna": "bnacoin", + "ban": "banano", + "bnt": "bancor", + "vbnt": "bancor-governance-token", + "band": "band-protocol", + "bands": "bands-2", + "bps": "base-pro-shops", + "$bane": "bane", + "bank": "float-protocol", + "bnk": "bankera", + "$bank": "bankercoin", + "bed": "bankless-bed-index", + "vlt": "bankroll-vault", + "bsl": "bsclaunch", + "bars": "silver-standard", + "cbu": "banque-universal", + "banksy": "bansky", + "xbn": "bantu", + "banus": "banus-finance", + "banx": "banx", + "baos": "baobaosol", + "b-baoeth-eth-bpt": "baoeth-eth-stablepool", + "bao": "bao-finance-v2", + "solana": "solana-beach", + "bark": "barking", + "bond": "barnbridge", + "brtr": "barter", + "base": "rebasechain", + "baseai": "baseai", + "bape": "baseape", + "boon": "base-baboon", + "bbq": "basebearcute", + "$bbook": "base-book", + "bros": "crypto-bros", + "based": "based-money-finance", + "basedai": "basedai", + "bbb": "based-baby", + "bober": "bober", + "$boshi": "based-boshi", + "brett": "brett-memecoin", + "cap": "cap-2", + "bunny": "pancake-bunny", + "chad": "chad-scanner", + "bsdeth": "based-eth", + "fpepe": "based-father-pepe", + "fink": "fink-different", + "bip": "based-internet-panda-runes", + "lambow": "based-lambow", + "dog": "the-doge-nft", + "peach": "based-peaches", + "beng": "based-peng", + "pepe": "tezos-pepe", + "potato": "potato-3", + "rabbit": "rich-rabbit", + "brate": "based-rate", + "bshare": "based-rate-share", + "soap": "based-sbf-wif-soap", + "bshib": "based-shiba-inu", + "bsb": "based-street-bets", + "bsw": "biswap", + "bfrog": "basefrog", + "tybg": "base-god", + "gulp": "basegulp", + "baseheroes": "baseheroes", + "binu": "blast-inu-2", + "lordy": "base-lord", + "benji": "taylor-swift-s-cat", + "safe": "safe-token", + "street": "base-street", + "bswap": "baseswap", + "btama": "basetama", + "basex": "base-terminal", + "bvm": "bvm", + "bsx": "basix", + "bxt": "basex-token", + "bat": "basic-attention-token", + "bac": "basis-cash", + "bags": "basis-gold-share-heco", + "basis": "basis-markets", + "bas": "basis-share", + "bskt": "basketcoin", + "bvr": "basketballverse-2", + "bkn": "brickken", + "bsmti": "basmati", + "baso": "baso-finance", + "btc": "osmosis-allbtc", + "gfly": "battlefly", + "bft": "the-big-five", + "ibat": "battle-infinity", + "pet": "petcoin-2", + "btl": "bitlocus", + "bwo": "battle-world", + "$bawls": "bawls-onu", + "baye": "bayesian", + "bzr": "bazaars", + "bazed": "bazed-games", + "bazinga": "bazinga-2", + "rtb": "bbs-network", + "bcpay": "bcpay-fintech", + "bcre": "bcrepe", + "bcube": "b-cube-ai", + "bdo": "bdollar", + "becn": "beacon", + "beam": "beam-2", + "usdc": "zksync-bridged-usdc-zksync", + "glint": "glint-coin", + "beamx": "beamx", + "bean": "killer-bean", + "bitb": "bean-cash", + "beany": "beany", + "bear": "teddy-bear", + "beardy": "beardy-dragon", + "beat": "beat-2", + "bgn": "beatgen-nft", + "star": "starheroes", + "lott": "beauty-bakery-linked-operation-transaction-technology", + "bebe": "bebe-on-base", + "bee": "globees", + "beef": "pepebull", + "beftm": "beefy-escrowed-fantom", + "bifi": "bifi", + "beeg": "beeg-blue-whale", + "bnode": "beenode", + "beep": "beep-coin", + "beer": "beer-money", + "beets": "beethoven-x", + "buzz": "buzz-the-bellboy", + "beet": "flappybee", + "bfht": "befasterholdertoken", + "befe": "befe", + "befi": "befi-labs", + "fiu": "befitter", + "b4fwx": "be-for-fwx", + "befy": "befy", + "beg": "beg", + "eye": "soleye-offchain-tracker", + "bdx": "beldex", + "befx": "belifex", + "bel": "bellscoin", + "bell": "bell-curve-money", + "long": "nobiko-coin", + "belt": "belt", + "beluga": "beluga-fi", + "bcn": "bytecoin", + "stton": "bemo-staked-ton", + "ben": "ben-2", + "$ben": "bencoin", + "bend": "benddao", + "bdin": "benddao-bdin-ordinals", + "beni": "beni", + "tybeng": "benji-bananas", + "qi": "qiswap", + "savax": "benqi-liquid-staked-avax", + "finale": "ben-s-finale", + "bent": "bent-finance", + "bendog": "ben-the-dog", + "bento": "bento", + "benyke": "benyke-finance", + "bzn": "benzene", + "bleo": "bep20-leo", + "becoin": "bepay", + "bepro": "bepro-network", + "bera": "berachain-bera", + "berf": "berf", + "bergerdoge": "bergerdoge", + "bmda": "bermuda", + "berry": "strawberry-ai", + "bry": "berry-data", + "besa": "besa-gaming-company", + "bjk": "besiktas", + "bsk-baa025": "beskar", + "beta": "beta-finance", + "bet": "betfin-token", + "bbot": "betbot", + "crypto": "betbuinu", + "bte": "bitweb", + "becx": "bethel", + "betz": "bet-lounge", + "bsgg": "betswap-gg", + "betted": "betted", + "bff": "betterfan", + "btb": "bitbar", + "bemd": "betterment-digital", + "byn": "beyond-finance", + "bp": "bunnypark", + "bezo": "bezo", + "bezoge": "bezoge-earth", + "bfg": "bfg-token", + "bficgold": "bficgold", + "bfic": "bficoin", + "bha": "bha", + "bhbd": "bhbd", + "bhive": "bhive", + "bhat": "bhnetwork", + "bho": "bho-network", + "biao": "biaoqing-tron", + "bib": "bib", + "bibi": "bibi-2", + "bibi2.0": "bibi2-0", + "bibl": "biblecoin", + "btru": "biblical-truth", + "bix": "bibox-token", + "bics": "biceps", + "bicho": "bicho", + "bicity": "bicity-ai-projects", + "bic": "biconbase", + "bico": "biconomy", + "bit": "bitnet-io", + "slav": "bictory", + "bid": "bidao", + "bisc": "bidao-smart-chain", + "stbtc": "bido-staked-bitcoin", + "bidp": "bid-protocol", + "bidz": "bidz-coin", + "bfc": "bologna-fc-fan-token", + "bnb": "ronweasleytrumptoadn64inu", + "eth": "the-infinite-garden", + "matic": "matic-network", + "bnc": "bifrost-native-coin", + "vastr": "bifrost-voucher-astr", + "vmanta": "bifrost-voucher-manta", + "$bud": "big-bud", + "bcx": "blockx", + "bdp": "big-data-protocol", + "bde": "big-defi-energy", + "big": "big-eyes", + "$floppa": "big-floppa", + "bigsb": "bigshortbets", + "bigtime": "big-time", + "tom": "tom-finance", + "mbtyc": "big-tycoon", + "biis": "biis-ordinals", + "brt": "bikerush", + "tryb": "bilira", + "billi": "billion-dollar-dog-runes", + "bdc": "billion-dollar-cat-runes", + "bhc": "black-hole-coin", + "bvt": "bovineverse-bvt", + "bill": "bill-the-bear", + "billy": "billy", + "bim": "bim", + "bimbo": "bimbo-the-dog", + "bmon": "binamon", + "btcb": "bitcoin-on-base", + "bsc-usd": "binance-bridged-usdt-bnb-smart-chain", + "binancedog": "binancedog-2", + "beth": "okx-beth", + "bch": "bitcoin-cash", + "busd": "thundercore-bridged-busd-thundercore", + "ada": "cardano", + "doge": "doge-on-pulsechain", + "eos": "eos", + "fil": "filecoin", + "firo": "zcoin", + "iotx": "iotex", + "ltc": "litecoin", + "ont": "ontology", + "dot": "xcdot", + "shib": "shibwifhatcoin", + "xrp": "warioxrpdumbledoreyugioh69inu", + "bnsol": "binance-staked-sol", + "bbtc": "bouncebit-btc", + "byte": "byteai", + "bnry": "binary-holdings", + "0101": "binary-swap", + "bnx": "binaryx-2", + "bcnt": "bincentive", + "bin": "binemon", + "catbingolo": "bingo-2", + "bingo": "bingo-3", + "bingus": "bingus-the-cat", + "bsr": "binstarter", + "char": "biochar", + "bkpt": "biokript", + "sbkpt": "biokriptx", + "biofi": "biometric-financial", + "$biop": "biop", + "biot": "biopassport", + "bopb": "biopop", + "bip1": "bip1", + "bir": "birake", + "birb": "birb-3", + "birddog": "bird-dog-on-sol", + "$birdie": "birdie", + "birds": "birdies", + "bird": "luckybird", + "birdón": "birdon", + "ping": "birdsping", + "biskit": "biskit-protocol", + "bis": "bismuth", + "biso": "biso", + "bist": "bistroo", + "b2m": "bit2me", + "xbit": "bitago-2", + "bitard": "bitard", + "btrs": "bitball-treasure", + "bitbedr": "bitbedr", + "bbt": "bitboost", + "brawl": "bitbrawl", + "bcna": "bitcanna", + "castle": "bitcastle", + "bitcat": "bitcat", + "bchec": "bitchemical-token", + "blok": "bloktopia", + "bitci": "bitcicoin", + "boge": "boge", + "bedu": "bitci-edu", + "brace": "bitci-racing-token", + "btx": "bitnex-ai", + "cat": "sol-cat", + "bcs": "bitclouds", + "btc2": "bitcoin-2", + "btc20": "bitcoin20", + "btc2.0": "bitcoin-2-0", + "bitcoinai": "bitcoin-ai", + "bca": "bitcoiva", + "btc.b": "bitcoin-avalanche-bridged-btc-b", + "btcbam": "bitcoinbam", + "bbcc": "bitcoin-black-credit-card", + "btc.z": "bitcoin-bridged-zed20", + "cdy": "bitcoin-candy", + "bsv": "bsv", + "1cat": "bitcoin-cats", + "bcd": "blockchat", + "gargoyle": "bitcoin-dog", + "bitwallet": "bitcoin-e-wallet", + "bcf": "bitcoin-fast", + "god": "god-coin", + "btg": "bitcoin-gold", + "btcinu": "bitcoin-inu", + "bnsx": "bitcoin-name-service-system", + "btcpay": "bitcoin-pay", + "xbc": "bitcoin-plus", + "btcw": "bitcoinpow", + "btcp": "bitcoin-pro", + "puppet": "puppet-on-sol", + "bsov": "bitcoinsov", + "xbtx": "bitcoin-subsidium", + "bitton": "bitcoin-ton", + "btct": "bitcoin-trc20", + "btty": "bitcointry-token", + "btcusd": "bitcoin-usd-btcfi", + "btcv": "bitcoin-vault", + "wzrd": "wizardia", + "btcz": "bitcoinz", + "cone": "bitcone", + "bdt": "blackdragon-token", + "bt": "bitenium-token", + "bf": "bitforex", + "bgvt": "bit-game-verse-token", + "bitg": "bitgate", + "wish": "bitgenie", + "bgb": "bitget-token", + "bwb": "bitget-wallet-token", + "bgai": "bitgrok-ai", + "bth": "bit-hotel", + "kub": "bitkub-coin", + "marks": "marksman", + "btmt": "bitmarkets-token", + "bmx": "bmx", + "bmex": "bitmex-token", + "bnq": "bitnasdaq", + "btn": "butane-token", + "bito": "bito-coin", + "bitorb": "bitorbit", + "btrm": "bitrium", + "btoro": "bitoro-network", + "best": "bitpanda-ecosystem-token", + "bpro": "bitpro", + "brise": "bitrise-token", + "brock": "bitrock", + "brw": "bitrock-wallet-token", + "btr": "btrips", + "brune": "bitrunes", + "bits": "bitswap", + "bcut": "bitscrunch-token", + "bts": "bitshares", + "shiba": "shiba-armstrong", + "btsg": "bitsong", + "spwn": "bitspawn", + "$bssb": "bitstable-finance", + "store": "bit-store-coin", + "tao": "tao-meme", + "bitt": "bittoken", + "btt": "bittorrent", + "bttold": "bittorrent-old", + "tbo": "biturbo", + "bxr": "bitxor", + "bty": "bityuan", + "bi": "bivreost", + "biza": "bizauto", + "bl00p": "bl00p", + "black": "black-token", + "bccoin": "blackcardcoin", + "blk": "blackcoin", + "blackcroc": "blackcroc", + "blackdragon": "black-dragon", + "blkc": "blackhat-coin", + "jack": "jack-the-goat", + "blf": "blacklatexfist", + "bplc": "blackpearl-chain", + "bpx": "black-phoenix", + "bpt": "blackpool-token", + "buidl": "blackrock-usd-institutional-digital-liquidity-fund", + "bs": "bullshits404", + "swan": "black-swan", + "blacky": "blacky", + "blade": "bladeswap", + "blake": "blake", + "blank": "blank", + "blarb": "blarb", + "blast": "safeblast", + "btard": "blastardio", + "bd": "blastdex", + "blstr": "blaster", + "$bres": "blastfi-ecosystem-token", + "bfx": "blast-futures-token", + "hoge": "hoge-finance", + "bpepe": "blastin-pepes", + "off": "blastoff", + "blastup": "blastup", + "bsol": "blazestake-staked-sol", + "blazex": "blazex", + "blendr": "blendr-network", + "blepe": "blepe-the-blue", + "blerf": "blerf", + "blec": "bless-global-credit", + "bles": "blind-boxes", + "bgg1": "blinks-gg", + "blin": "blin-metaverse", + "blitz": "blitz-labs", + "blob": "blob-avax", + "blobs": "blobs", + "bly": "blocery", + "block": "blocknet", + "arcas": "block-ape-scissors", + "bbank": "blockbank", + "bbox": "blockbox", + "bcdn": "blockcdn", + "bcb": "blockchain-bets", + "brwl": "blockchain-brawlers", + "bcdt": "blockchain-certified-data-token", + "xccx": "blockchaincoinx", + "bcug": "blockchain-cuties-universe-governance", + "bcl": "blockchain-island", + "bcmc": "blockchain-monster-hunt", + "bcp": "blockchainpeople", + "guild": "blockchainspace", + "defend": "blockdefend-ai", + "bdrop": "blockdrop", + "bgpt": "blockgpt", + "bls": "bluesale", + "lrds": "blocklords", + "mate": "virtumate", + "bro$": "blockrock", + "blocks": "blocks", + "$forge": "blocksmith-labs-forge", + "bspt": "blocksport", + "bst": "blocksquare", + "stx": "stox", + "tools": "tools", + "vee": "vee-finance", + "bloc": "stasis-network", + "blt": "bullets", + "blocx": "blocx-2", + "bpad": "blokpad", + "blm": "blombard", + "$blood": "blood-2", + "blood": "impostors-blood", + "bc": "old-bitcoin", + "$bls": "bloodloop", + "bloom": "bloomer", + "cdt": "collateralized-debt-token", + "blox": "the-blox-project", + "bxc": "bloxies-coin", + "blxm": "bloxmove-erc20", + "myrc": "blox-myrc", + "bsim": "bloxsim", + "blu": "blubird", + "blub": "blub", + "blubi": "blubi", + "blubia": "blubia", + "bla": "blueart", + "benx": "bluebenx-2", + "blb": "blueberry", + "bcor": "bluecore", + "blue": "the-cat-is-blue", + "bluefloki": "bluefloki", + "booby": "blue-footed-booby", + "bluefrog": "blue-frog", + "kirby": "blue-kirby", + "bldt": "bluelotusdao", + "move": "movement", + "$blue": "blue-on-base", + "oblue": "blueprint-oblue", + "blues": "blueshift", + "bluesparrow": "bluesparrow-token", + "whale": "white-whale", + "blunny": "blunny", + "blur": "blur", + "blurt": "blurt", + "blz": "bluzelle", + "bw": "blwise", + "bm2k": "bm2k", + "bmax": "bmax", + "bmt": "bmchain-token", + "bmoney": "brett-is-based", + "$bmp": "bmp", + "wmlt": "bmx-wrapped-mode-liquidity-token", + "koge": "bnb48-club-token", + "bbk": "bnb-bank", + "poseidon": "bnb-cat", + "bnbd": "bnb-diamond", + "bnbking": "bnbking", + "pets": "solpets", + "bnbtiger": "bnbtiger", + "$bnbtiger": "bnb-tiger", + "bnb whales": "bnb-whales", + "swipes": "bndr", + "bnvda": "bndva-backed-nvidia", + "b3x": "bnext-b3x", + "bnsd": "bnsd-finance", + "bns": "bns-token", + "fa$h": "bnv", + "bob": "bob-token", + "boba": "boba-network", + "psps": "bobacat", + "bfi": "boba-finance", + "bobaoppa": "boba-oppa", + "bobby": "independence-token", + "bobc": "bobcoin", + "bobo": "bobo-the-bear", + "bobs": "bobs", + "bobuki": "bobuki-neko", + "chica": "chica-chain", + "bodav2": "boda-token", + "bodge": "bodge", + "bdrm": "bodrumspor-fan-token", + "boe": "boe", + "bog": "bogged-finance", + "boggy": "boggy-coin", + "bogus": "bogus", + "$bojack": "bojack", + "boai": "bolic-ai", + "boli": "bolivarcoin", + "bolt": "huebel-bolt", + "$bolt": "bolt-token-023ba86e-eb38-41a1-8d32-8b48ecfcb2c7", + "bomb": "lollybomb", + "bombo": "bombo", + "bclat": "bomboclat", + "boom": "the-wonders", + "bome 2.0": "bome-ai", + "bcro": "bonded-cronos", + "bdxn": "bondex", + "bondly": "bondly", + "bone": "bone-token", + "$boner": "boner", + "bswp": "bonerium-boneswap", + "bones": "soul-dog-city-bones", + "fida": "bonfida", + "bonfire": "bonfire", + "bong": "bonk-wif-glass", + "bongo": "bongo-cat", + "bonk": "bonk-on-eth", + "bonk 2.0": "bonk-2-0", + "bonk2.0": "bonk-2-0-sol", + "boby": "bonkbaby", + "bonkbest": "bonkbest", + "bonke": "bonke-base", + "bern": "bonkearn", + "bonki": "bonk-inu", + "bok": "bonklana", + "bonkfa": "bonk-of-america", + "bonksol": "bonk-staked-sol", + "bif": "bonkwifhat", + "bonsai": "bonsai-token", + "seed": "seed-photo", + "bonsaicoin": "bonsai-coin", + "bnsai": "bonsai-network", + "bonte": "bontecoin", + "bonus": "bonusblock", + "bonzai": "bonzai-depin", + "bonzi": "bonzi", + "$boo": "boo-2", + "stuff": "book-2", + "boam": "book-of-ai-meow", + "babybome": "book-of-baby-memes", + "bobe": "book-of-billionaires", + "boob": "book-of-bitcoin", + "$boob": "bookofbullrun", + "boobz": "book-of-buzz", + "bode": "book-of-derp", + "bomedoge": "book-of-doge-memes", + "dyor": "find-check", + "booe": "book-of-ethereum", + "bome": "book-of-meme", + "bome2": "book-of-meme-2-0", + "bomeow": "book-of-meow", + "bope": "book-of-pepe", + "bopi": "book-of-pumpfluencers", + "bool": "bool", + "boomer": "boomers-on-sol", + "xboo": "boo-mirrorworld", + "boop": "boop-2", + "boosey": "boosey", + "boost": "podfast", + "blusd": "boosted-lusd", + "booty": "pirate-dice", + "boppy": "boppy-the-bat", + "bora": "bora", + "bdcl bsc": "bordercolliebsc", + "brl": "borealis", + "$bored": "bored", + "boring": "boringdao", + "bor": "boringdao-[old]", + "bop": "boring-protocol", + "boris": "boris", + "bork": "bork-2", + "borpa": "borpa", + "gorples": "borpatoken", + "borzoi": "borzoi-coin", + "boa": "bosagora", + "boshi": "boshi", + "boson": "boson-protocol", + "boss": "bossswap", + "bossie": "bossie", + "boot": "bostrom", + "botc": "bot-compiler", + "btop": "botopiafinance", + "botto": "botto", + "bto": "bottos", + "botx": "botxcoin", + "bbusd": "bouncebit-usd", + "dvd": "bouncing-dvd", + "seals": "bouncing-seals", + "bountie": "bountie-hunter", + "bnty": "bounty0x", + "yu": "bountykinds-yu", + "bmc": "bountymarketcap", + "tyt": "bounty-temple", + "bowie": "bowie", + "bwld": "bowled-io", + "bxbt": "boxbet", + "b-dao": "box-dao", + "box": "defibox", + "boysclub": "matt-furie-s-boys-club", + "$boys": "boysclubbase", + "munchy": "boys-club-munchy", + "bozo": "the-official-bozo", + "bpinky": "bpinky", + "brc": "bracelet", + "brainers": "brainers", + "brain": "sebra-ai", + "brainlet": "brainlet-2", + "rot": "brainrot", + "btrst": "braintrust", + "bworm": "brain-worms", + "brand": "brandpad-finance", + "bpc": "brave-power-crystal", + "brcbot": "brc20-bot", + "bd20": "brc-20-dex", + "brcx": "brc20x", + "brct": "brc-app", + "brc20": "brc-on-the-erc", + "brcst": "brcstarter", + "brd": "bread", + "breed": "breederdao", + "brepe": "brepe", + "$brett": "brett0x66", + "brett2.0": "brett-2-0", + "brettei": "brettei", + "brettgold": "brett-gold", + "krett": "brett-killer", + "balt": "brett-s-cat", + "brogg": "brett-s-dog", + "brewlabs": "brewlabs", + "brex": "brex", + "brai": "bribeai", + "brick": "brick-token", + "brx": "bricks-exchange", + "brics": "brics-chain", + "gador": "bridgador", + "sandr": "bridged-andromeda", + "arb.e": "bridged-arbitrum-lightlink", + "link.e": "chainlink-plenty-bridge", + "crv": "curve-dao-token", + "dai.e": "bridged-dai-lightlink", + "dai[hts]": "bridged-dai-stablecoin-hashport", + "dog•go•to•the•moon": "bridged-dog-go-to-the-moon", + "knc_b": "bridged-kyber-network-crystal-bsc", + "knc_e": "bridged-kyber-network-crystal-ethereum", + "lobo•the•wolf•pup": "bridged-lobo-the-wolf-pup", + "trump": "pepe-3", + "om[hts]": "bridged-mantra-hashport", + "matic.e": "matic-plenty-bridge", + "sttia": "stride-staked-tia", + "usdt[hts]": "bridged-tether-hashport", + "usdt.e": "tether-rainbow-bridge", + "jusdt": "bridged-tether-ton-bridge", + "tia.n": "bridged-tia-hyperlane", + "tusd": "true-usd", + "uni.e": "bridged-uniswap-lightlink", + "usdc.e": "usdc-rainbow-bridge", + "usdbc": "bridged-usd-coin-base", + "jusdc": "jones-usdc", + "usde": "usde-2", + "usdt.z": "bridged-usdt-zedxion", + "weeth": "wrapped-eeth", + "wbtc[hts]": "bridged-wrapped-bitcoin-hashport", + "jwbtc": "bridged-wrapped-bitcoin-ton-bridge", + "wbtc.e": "wbtc-plenty-bridge", + "whbar": "wrapped-hbar", + "wsteth": "wrapped-steth", + "axl-wsteth": "bridged-wrapped-steth-axelar", + "bmi": "bridge-mutual", + "brg": "bridge-oracle", + "bcai": "bright-crypto-ai", + "bri": "brightpool", + "brix": "brix-gaming", + "bright": "bright-union", + "brish": "brish", + "britt": "britt", + "briun": "briun-armstrung", + "brla": "brla-digital-brla", + "brn": "brn-metaverse", + "broc": "broccoli-the-gangsta", + "bro": "brokkr", + "broge": "broge", + "$broke": "broke-again", + "brokie": "brokieinu", + "broton": "brokie-on-ton", + "brkl": "brokoli", + "broot": "broot", + "brs": "broovs-projects", + "bruh": "bruh-2", + "bruv": "bruv", + "brz": "brz", + "bscx": "bscex", + "bscm": "bscm", + "bscpad": "bscpad", + "start": "bscstarter", + "bscs": "bsc-station", + "bsk": "bsk", + "bscl": "bsocial-2", + "btaf": "btaf-token", + "btc2x-fli": "btc-2x-flexible-leverage-index", + "btcmeme": "btcmeme", + "btcpx": "btc-proxy", + "btcs": "btcs", + "btcst": "btc-standard-hashrate-token", + "btf": "btf", + "msot": "btour-chain", + "btse": "btse-token", + "btu": "btu-protocol", + "bubba": "bubba", + "bbf": "bubblefong", + "bubbles": "bubbles-2", + "bub": "lil-bub-on-sol", + "bubsy": "bubsy-ai", + "brrr": "burrow", + "buck": "coinbuck", + "bhig": "buckhath-coin", + "bucky": "bucky", + "buddha": "buddha", + "buddy": "buddyai", + "buff": "buff-coin", + "dogecoin": "ragingelonmarscoin", + "buffi": "bufficorn", + "buffs": "buffswap", + "buffy": "buffy", + "bug": "bug", + "bga": "bugna", + "bugs": "bugs-bunny", + "build": "buildai", + "bul": "bul", + "bulei": "bulei", + "bull": "tron-bull", + "aibb": "bullbear-ai", + "bullet": "bullet-game", + "bullish": "bullish", + "$bmc": "bullishmarketcap", + "$bull": "pitbull-2", + "blp": "bullperks", + "brbc": "bull-run-bets", + "bulls": "bulls-2", + "bsf": "bull-star-finance", + "bully": "bully-ze-bull", + "bump": "bumper", + "buna": "buna-games", + "bndl": "bundl", + "bund": "bundles", + "buni": "bunicorn", + "bunk": "bunkee", + "$bun": "bunnie", + "bg": "bunnypark-game", + "polybunny": "bunny-token-polygon", + "buy": "buying", + "burger": "crypto-burger", + "burn": "shiba-doge-burn", + "bfy": "burnify", + "circle": "you-looked", + "burnking": "burnking", + "burns": "burnsdefi", + "burp": "burp", + "burry": "burrial", + "burrrd": "burrrd", + "tmsh": "bursaspor-fan-token", + "busy": "busy-dao", + "butter": "butter-2", + "solvbtc": "solv-btc", + "butt": "buttman", + "fly": "hoppers-game", + "bfly": "butterfly-protocol-2", + "buu": "buu", + "dip": "etherisc", + "buz": "buz-economy", + "infra": "infrax", + "bwull": "bwull", + "bxh": "bxh", + "bxn": "bxn", + "byat": "byat", + "bbsol": "bybit-staked-sol", + "epix": "byepix", + "byin": "byin", + "bypass": "bypass", + "gbyte": "byteball", + "bnu": "bytenext", + "btm": "bytom", + "bze": "bzedge", + "bzrx": "bzx-protocol", + "caave": "caave", + "cabal": "cabal", + "caca": "caca", + "cacao": "cacao", + "abra": "cadabra-finance", + "wcadai": "cadai", + "cad": "caduceus-protocol", + "cbon": "cadinu-bonus", + "cdg": "cadog", + "cmp": "coinmarketprime", + "cbs": "cagdas-bodrumspor-fan-token", + "ca": "contract-address-meme", + "cicc": "caica-coin", + "cbank": "cairo-finance-cairo-bank", + "jenner": "caitlyn-jenner-eth", + "caj": "cajutel", + "cakebot": "cakebot-2", + "monsta": "cake-monster", + "ckp": "cakepie-xyz", + "kma": "calamari-network", + "clxy": "calaxy", + "cal": "calorie", + "cali": "calicoin", + "0xc": "callhub", + "clo": "callisto", + "come": "community-of-meme", + "chiln": "calm-bear-on-solana", + "clot": "camelot-protocol", + "grail": "camelot-token", + "camly": "camly-coin", + "cdn": "ceden", + "cadinu": "canadian-inuit-dog-2", + "cnr": "canary", + "ccc": "cute-cat-token", + "cndl": "candle-ai", + "candle": "candle-cat", + "corsi": "cane-corso", + "cft": "rc-celta-de-vigo-fan-token", + "crt": "carrot-2", + "canto": "canto", + "cinu": "canto-inu", + "glr": "canvas-n-glr", + "can": "channels", + "cau": "canxium", + "cds": "cats-do-something", + "cr": "chromium-dollar", + "cwr": "capo-was-right", + "capp": "cappasity", + "csun": "caprisun", + "capri": "caprisun-monkey", + "ctp": "ctomorrow-platform", + "tsugt": "captain-tsubasa", + "capy": "capybara-token", + "bara": "capybara-memecoin", + "cby": "cloud-binary", + "carbon": "carbon", + "csix": "carbon-browser", + "carb": "carbon-labs", + "cct": "coughing-cat", + "cet": "degen-cet", + "ceb": "carbon-emission-blockchain", + "cnb": "coinsbit-token", + "c4": "cardano-crocs-club", + "cgi": "cardanogpt", + "carda": "cardanum", + "$crdn": "cardence", + "cardi": "cardinals", + "crdc": "cardiocoin", + "card": "cardstack", + "care": "carecoin", + "cxo": "cargox", + "carlo": "carlo", + "carmin": "carmin", + "carr": "carnomaly", + "her": "herity-network", + "cvtx": "carrieverse", + "cre": "crypto-real-estate", + "cartel": "cartel-coin-2", + "ctsi": "cartesi", + "$cartman": "cartman", + "carv": "carv", + "cv": "carvertical", + "cc": "crypto-clubs-app-2", + "cbp": "cashbackpro", + "cow": "cow-protocol", + "ctt": "cryptotycoon", + "csc": "casinocoin", + "casinu": "casinu-inu", + "cspr": "casper-network", + "cspd": "casperpad", + "cassie 🐉": "cassie-dragon", + "cast": "castello-coin", + "cobe": "castle-of-blackwater", + "whales": "whales-market", + "catalorian": "catalorian", + "cata": "catamoto", + "atd": "catapult", + "cabo": "catbonk", + "catboy": "catboy-4", + "catch": "spacecatch", + "catchi": "catchiliz", + "cats": "ton-cats-jetton", + "catdog": "cat-dog", + "cbd": "greenheart-cbd", + "cuck": "cuckadoodledoo", + "cate": "cate-on-eth", + "catex": "catex", + "catt": "catex-token", + "catfish": "catfish", + "catfrogdogshark": "catfrogdogshark", + "catge": "catge-coin", + "cgf": "cat-getting-fade", + "catgirl": "catgirl", + "optig": "catgirl-optimus", + "catgpt": "catgpt", + "cgo": "comtech-gold", + "catheon": "catheon-gaming", + "boxeth": "cat-in-a-box-ether", + "mew": "cat-in-a-dogs-world", + "hodi": "cat-in-hoodie", + "catino": "catino", + "cati": "catizen", + "catman": "catman", + "catmouse": "cat-mouse", + "cato": "cato", + "eloncat": "elon-cat-2", + "nippy": "cat-on-catnip", + "catour": "catour", + "cok": "catownkimono", + "n64": "cat-poop-joystick", + "cts": "cats-coin-1722f9f2-68f8-4ad8-a123-2835ea18abc5", + "$cats": "cats-in-the-sats", + "cnc": "cornatto", + "cos": "contentos", + "solcat": "catsolhat", + "catstr": "catster", + "mewswifhat": "cats-wif-hats-in-a-dogs-world", + "catvax": "catvax", + "catwif": "catwifhat-3", + "cif": "catwifhat", + "$cwif": "catwifhat-2", + "melon": "melon-dog", + "catx": "catx", + "catz": "catzcoin", + "cavada": "cavada", + "cave": "cave", + "caviar": "caviar-meme", + "cvr": "caviar-3", + "lsulp": "caviarnine-lsu-pool-lp", + "cbdc": "central-bank-digital-currency-memecoin", + "cca": "cca", + "ccash": "c-cash", + "鸡鸡币 (ccb)": "ccb", + "found": "ccfound-2", + "ccgds": "ccgds", + "ccomp": "ccomp", + "cco": "ccore", + "cdai": "cdai", + "cdao": "coredaoswap", + "mcd": "cdbio", + "cbsl": "cebiolabs", + "cdfi": "cedefiai", + "ceek": "ceek", + "ceicat": "ceiling-cat", + "cekke": "cekke-cronje", + "celr": "celer-network", + "tia": "tia", + "celt": "celestial", + "cell": "cellmates", + "celo": "celo-wormhole", + "cusd": "stably-cusd", + "ceur": "celo-euro", + "ckes": "celo-kenyan-shilling", + "creal": "celo-real-creal", + "cel": "celsius-degree-token", + "cxeth": "celsiusx-wrapped-eth", + "cens": "censored-ai", + "cntr": "centaur", + "cent": "centaurify", + "cbit": "centbit", + "cenx": "centcex", + "cennz": "centrality", + "cns": "centric-cash", + "cfg": "centrifuge", + "cix": "centurion-invest", + "cerber": "cerberoge", + "crbrus": "cerberus-2", + "neuron": "cerebrum-dao", + "cere": "cere-network", + "ceres": "ceres", + "cerra": "cerra", + "ctk": "cryptyk", + "cerus": "cerus", + "cetes": "cetes", + "ceto": "ceto-swap", + "bceto": "ceto-swap-burned-ceto", + "cetus": "cetus-protocol", + "cfxq": "cfx-quantum", + "cb8": "chabit", + "chadcat": "chad-cat", + "putni": "chadimir-putni", + "xcn": "chain-2", + "c4e": "chain4energy", + "archive": "chainback", + "cbg": "chainbing", + "chaincade": "chaincade", + "crisis": "chain-crisis", + "cex": "coinmart-finance", + "factory": "chainfactory", + "flip": "chainflip", + "chain": "chain-games", + "xchng": "chainge-finance", + "cgpt": "chaingpt", + "cgpu": "chaingpu", + "cgg": "chain-guardians", + "ckbtc": "chain-key-bitcoin", + "cketh": "chain-key-ethereum", + "ckusdc": "chain-key-usdc", + "ckusdt": "chain-key-usdt", + "label": "chainlabel", + "link": "osmosis-alllink", + "cminer": "chainminer", + "cnet": "chainnet", + "cleg": "chain-of-legends", + "cpal": "chainpal", + "portx": "chainport", + "cp": "cypress", + "mira": "chains-of-war", + "chains": "chainswap-2", + "cswap": "cswap", + "pcx": "chainx", + "zoom": "chainzoom", + "chair": "chair", + "chambs": "chambs", + "champz": "champignons-of-arborethia", + "cag": "change", + "now": "changenow", + "cng": "coinnavigator", + "change": "changex", + "cz": "cz-on-hyperliquid", + "chap": "chappie", + "chapz": "chappyz", + "static": "chargedefi-static", + "ionx": "charged-particles", + "chdao": "charity-dao-token", + "c3": "charli3", + "charlie": "charlie", + "charm": "charm", + "cai": "cryptoai", + "chatai": "chatai", + "chat": "vectorchat-ai", + "chatni": "chatni", + "shield": "shield-protocol-2", + "chatfi": "chatxbt", + "chax": "chax", + "check": "check", + "checkr": "checkerchain", + "checks": "checks-token", + "checoin": "checoin", + "chedda": "chedda-2", + "cheeks": "cheeks", + "dawg": "dawg-coin", + "cheel": "cheelee", + "cheems": "cheems-token", + "cheepepe": "cheepepe", + "cheers": "cheersland", + "cheese": "cheese-swap", + "cb": "cheeseball", + "ccake": "cheesecakeswap", + "cheesed": "cheesed", + "chta": "cheetahcoin", + "cheez": "cheezburger-cat", + "chef": "chefdotfun", + "cheng": "chengshi", + "cheq": "cheqd-network", + "chry": "cherrylend", + "cher": "cherry-network", + "chess": "tranchess", + "chwy": "chwy", + "chewy": "chewyswap", + "chexbacca": "chexbacca", + "chex": "chex-token", + "xch": "chia", + "talk": "talken", + "chibi": "chibi", + "kfc": "kungfu-cat", + "chkn": "chickencoin", + "chickentown": "chicken-town", + "chicky": "chicky", + "cto": "chief-troll-officer-3", + "hua": "chihuahua", + "huahua": "chihuahua-token", + "chiitan": "chiitan", + "ckc": "chikincoin", + "egg": "waves-ducks", + "feed": "feeder-finance", + "fert": "chikn-fert", + "worm": "chikn-worm", + "o": "childhoods-end", + "caf": "childrens-aid-foundation", + "$cs": "child-support", + "chili": "chili", + "chz": "chiliz", + "chzinu": "chiliz-inu", + "$chill": "chillwhales", + "chilly": "chilly", + "wchi": "chimaera", + "chmpz": "chimpzee-chmpz", + "andwu": "chinese-andy", + "chrett": "chinese-brett", + "peipei": "peipei-sol", + "ctoshi": "chinese-toshi", + "chinu": "chinu-2", + "chipi": "chipi", + "chippy": "fish-n-chips", + "chi": "chi-usd", + "chrp": "chirpley", + "chitan": "chitan", + "ccy": "choccyswap", + "cho": "choise", + "cholo": "cholo-pepe", + "chomp": "chompcoin", + "chonk": "chonk-the-cat", + "chonky": "chonky", + "choo": "chooky-records", + "rich": "rich-on-sol", + "choppy": "choppy", + "chow": "chow-chow", + "chch": "chrischan", + "chr": "chronos-finance", + "xnl": "chronicle", + "chro": "chronicum", + "time": "wonderland", + "sphr": "chronos-worlds-sphere", + "chuanpu": "chuan-pu", + "cakita": "chubbyakita", + "chuchu": "chuchu", + "chuck": "chuck-on-eth", + "chucky": "chucky", + "chud": "chudjak", + "chmb": "chumbai-valley", + "chump": "chump-change", + "chunks": "chunks", + "machina": "church-of-the-machina", + "churro": "churro", + "cia": "furari", + "cias": "cias", + "cicca": "cicca-network", + "cnto": "ciento-exchange", + "cifd": "cifdaq", + "cifi": "circularity-finance", + "cig": "cigarette-token", + "cnd": "coinhound", + "cind": "cindrum", + "$cino": "cinogames", + "cpr": "cipher-2", + "cir": "circleswap", + "coval": "circuits-of-value", + "cirx": "circular-protocol", + "ciri": "ciri-coin", + "circ": "cirque-du-sol", + "cirq": "cirquity", + "cirus": "cirus", + "knight": "knightswap", + "ctl": "twelve-legions", + "xct": "citadel-one", + "fort": "forta", + "citty": "citty-meme-coin", + "toons": "city-boys", + "ctg": "cryptorg-token", + "0ne": "civfund-stone", + "cvc": "civic", + "civ": "civilization", + "ucjl": "cjournal", + "cla": "claimswap", + "clam": "clams", + "$clap": "clapcat", + "torch": "hercules-token", + "col": "clash-of-lilliput", + "clash": "clashub", + "cbtc": "classicbitcoin", + "usc": "usc-2", + "czz": "classzz", + "clay": "clay-nation", + "ccx": "conceal", + "clh": "cleardao", + "cpool": "clearpool", + "cle": "clecoin", + "cleo": "cleopatra", + "$cleo": "cleo-tech", + "clv": "clover-finance", + "clev": "clever-token", + "gigs": "climate101", + "cti": "community-inu", + "clip": "clip-finance", + "clippy": "clippy", + "$clippy": "clippy-ai", + "clips": "clips", + "ct": "cryptotwitter", + "cloak": "cloakcoin", + "cl1mpepe": "cloned-1mpepe", + "clapt": "cloned-aptos", + "clbnb": "cloned-bnb", + "clore": "clore-ai", + "closedai": "super-closed-source", + "cld": "cloud-ai", + "cloud": "solcloud", + "clbk": "cloudbric", + "ccfi": "cloudcoin-finance", + "cmnd": "cloudmind-ai", + "cname": "cloudname", + "cnai": "cloudnet-ai", + "cpet": "cloud-pet", + "ccs": "cloutcontracts", + "clown": "clown-sol", + "honk": "pepoclown", + "clp": "clp", + "chvs": "club-deportivo-fan-token", + "galo": "clube-atletico-mineiro-fan-token", + "mpwr": "clubrare-empower", + "san": "santiment-network-token", + "clu": "clucoin", + "cms": "cmusicai", + "cneta": "cneta", + "cnht": "cnh-tether", + "cnns": "cnns", + "co2": "co2dao", + "coal": "coalculus", + "cst": "crypto-samurai", + "cbk": "coinback", + "coby": "coby", + "coc": "coin-of-the-champions", + "cpoo": "cockapoo", + "$ccc": "coconut-chicken", + "combo": "furucombo", + "coda": "coda", + "codai": "codai", + "$codeg": "codegenie", + "coai": "codemong-ai-games", + "code": "code-token", + "cdx": "crossdex", + "codex": "codex-multichain", + "dino": "dinoswap", + "ctok": "codyfight", + "coffee": "coffee-club-token", + "cofi": "coinfi", + "coge": "cogecoin", + "cgntsol": "cogent-sol", + "cgv": "cogito-protocol", + "c98": "coin98", + "cyt": "coinary-token", + "cbpay": "coinbarpay", + "dcoin": "cryptodeliverycoin", + "cbbtc": "coinbase-wrapped-btc", + "cbeth": "coinbase-wrapped-staked-eth", + "cfi": "cyberfi", + "cbe": "coinbidex", + "coinbt": "coinbot", + "caps": "coin-capsule", + "clm": "coinclaim", + "collect": "coincollect", + "scc": "stakecube", + "cnct": "connect-2", + "edel": "coin-edelweis", + "cnfrg": "coinforge", + "chb": "coinhub", + "comew": "coin-in-meme-world", + "clt": "coinloan", + "clyc": "coinlocally", + "cmos": "coinmerge-os", + "xcm": "coinmetro", + "cpy": "coinpays", + "chp": "coinpoker", + "cracer": "coinracer-reloaded", + "coinrobot": "coinrobot-ai", + "trau": "coin-trau", + "cwt": "crosswallet", + "cnw": "crypto-network", + "cweb": "coinweb", + "cxpad": "coinxpad", + "coinye": "coinye-west", + "zix": "coinzix-token", + "ekoc": "coke-pets", + "cola": "cola-token-2", + "scb": "sacabam", + "cls": "coldstack", + "zeum": "colizeum", + "collab": "collab-land", + "colt": "collateral-network", + "colle": "colle-ai", + "colon": "colon", + "gtm": "colonizemars", + "cly": "colony", + "clny": "marscolony", + "coloredbitcoin (arc20)": "coloredbitcoin-arc-20", + "colx": "colossuscoinxt", + "$colr": "colr-coin", + "coma": "compound-meta", + "cmdx": "comdex", + "comet": "comet-token", + "cmn": "common", + "wlth": "common-wealth", + "comai": "commune-ai", + "cbt": "community-business-token", + ".com": "com-ordinals", + "cbot": "companionbot", + "cpc": "cryptoperformance-coin", + "cmfi": "compendium-fi", + "cmst": "composite", + "czrx": "compound-0x", + "cbat": "compound-basic-attention-token", + "clink": "compound-chainlink-token", + "ceth": "wrapped-ceth", + "comp": "compound-governance-token", + "cmkr": "compound-maker", + "csushi": "compound-sushi", + "cuni": "compound-uniswap", + "cusdc": "compound-usd-coin", + "cwbtc": "compound-wrapped-btc", + "cyfi": "compound-yearn-finance", + "dcn": "dentacoin", + "yvcomp": "comp-yvault", + "csas": "comsats", + "conan": "conan-2", + "cnv": "concave", + "cvp": "concentrated-voting-power", + "ctr": "creator-platform", + "cvt": "cybervein", + "ccd": "copycat-dao", + "condo": "condo", + "cntp": "conet-network", + "cfx": "cosmic-force-token-v2", + "coni": "coniun", + "cnfi": "connect-financial", + "cntm": "connectome", + "wct": "connect-token-wct", + "conx": "connex", + "next": "shopnext-loyalty-token", + "cvn": "consciousdao", + "dag": "constellation-labs", + "people": "constitutiondao-wormhole", + "ctn": "core-token-2", + "um": "continuum-world", + "ctcn": "contracoin", + "0xdev": "contract-dev-ai", + "ctus": "contractus", + "cycon": "conun", + "converge": "converge-bot", + "conv": "convergence", + "cvg": "convergence-finance", + "cjpy": "convertible-jpy-token", + "cvxcrv": "convex-crv", + "cvx": "convex-finance", + "cvxfpis": "convex-fpis", + "cvxfxn": "convex-fxn", + "cvxfxs": "convex-fxs", + "cvxprisma": "convex-prisma", + "conviction": "conviction", + "cook": "cook-3", + "ccat": "cook-cat", + "cookie": "cookiebase", + "catgame": "cookie-cat-game", + "♨": "cook-the-mempool", + "cool": "coolcoin", + "coomer": "coomer", + "coop": "coop-coin", + "cope": "cope-token", + "cop": "copiosa", + "copx": "copxtoken", + "copycat": "copycat-finance", + "coq": "coq-inu", + "coral": "coral-swap", + "cmcx": "core", + "core": "cvault-finance", + "xcb": "crypto-birds", + "coredao": "coredao", + "stcore": "coredao-staked-core", + "cid": "core-id", + "coke": "core-keeper", + "cstr": "corestarter", + "cor": "cortensor", + "coreum": "coreum", + "corgi": "welsh-corgi", + "corgiai": "corgiai", + "corx": "corionx", + "co": "corite", + "crtb": "coritiba-f-c-fan-token", + "corn": "solanacorn", + "cdog": "cyber-dog", + "cmt": "cornermarket", + "copi": "cornucopias", + "oooi": "corridor-finance", + "ctxc": "cortex", + "crtx": "cortexloop", + "lpu": "cortexlpu", + "cosa": "cosanta", + "coshi": "coshi-inu", + "cosg": "cosmic-champs", + "cosmic": "cosmicswap", + "$cosmic": "cosmic-on-base", + "magick": "cosmic-universe-magic-token", + "atom": "cosmos", + "cot": "cotrader", + "coss": "coss-2", + "cost": "costco-hot-dog", + "coti": "coti", + "gcoti": "coti-governance-token", + "cgs": "cougar-token", + "cbtm": "could-be-the-move", + "ccxx": "counosx", + "cec": "counterfire-economic-coin", + "xcp": "counterparty", + "cup": "couponbay", + "cqt": "covalent", + "cxt": "covalent-x-token", + "cove": "cove-dao", + "covn": "covenant-child", + "cov": "covesting", + "coveyfi": "cove-yfi", + "cowrie": "cowrie", + "cozy": "cozy-pepe", + "cpiggy": "cpiggy-bank-token", + "cpu": "cpucoin", + "cra": "crabada", + "crab": "crabby", + "crf": "crafting-finance", + "$cramer": "cramer-coin", + "crappy": "crappy-bird", + "crash": "crash-on-base", + "crts": "cratos", + "crazybunny": "crazy-bunny", + "cbunny": "crazy-bunny-equity-token", + "crazy": "crazy-frog", + "frog": "frogswap", + "cmonk": "crazy-monkey", + "crazypepe": "crazypepe-2", + "crc": "crazyrabbit", + "crazytiger": "crazy-tiger", + "crds": "crds", + "crm": "cream", + "cream": "cream-2", + "creamy": "creamy", + "create": "create-ai", + "cre8": "creaticles", + "cret": "creat-or", + "cbab": "crebit-2", + "$cbl": "credbull", + "cred": "cred-coin-pay", + "credi": "credefi", + "credit": "credit-2", + "ctc": "creditcoin-2", + "cs": "credits", + "creo": "creo-engine", + "mnlt": "crescentswap-moonlight", + "xcre": "cresio", + "creta": "creta-world", + "cri3x": "cri3x", + "cric": "cricket-foundation", + "seat": "seatlabnft", + "croak": "croakey", + "$croak": "croak_on_linea", + "vatreni": "croatian-ff-fan-token", + "crob": "cropto-barley-token", + "croc": "cropto-corn-token", + "crocdog": "crocdog", + "crochet": "crochet-world", + "$croco": "croco", + "crx": "mind-games-cortex", + "crodie": "crodie", + "crofam": "crofam", + "croge": "crogecoin", + "croginal": "croginal-cats", + "croissant": "croissant-games", + "crk": "croking", + "zkclmrs": "crolon-mars", + "crona": "cronaswap", + "cronk": "cronk", + "cronon": "crononymous", + "croid": "cronos-id", + "vrse": "cronosverse", + "cro": "crypto-com-chain", + "zkcro": "cronos-zkevm-cro", + "cronus": "cronus", + "cbx": "cropbytes", + "crp": "utopia", + "crof": "cropto-hazelnut-token", + "crow": "night-crows", + "cros": "cros", + "bridge": "octus-bridge", + "degen": "degen-the-otter", + "ciotx": "crosschain-iotx", + "xweth": "crosscurve-bridged-eth-fantom", + "xstable": "crosscurve-stable", + "crfi": "crossfi", + "xfi": "xfinance", + "cta": "cross-the-ages", + "crowd": "crowdswap", + "crw": "crown", + "crown": "crown-token-77469f91-69f6-44dd-b356-152e2c39c0cc", + "cws": "crowns", + "csov": "crown-sovereign", + "crwny": "crowny-token", + "crox": "crox", + "crtai": "crt-ai-network", + "oil": "petroleum-oil", + "crunch": "crunchcat", + "crnchy": "crunchy-network", + "crusader": "crusaders-of-crypto", + "crust": "crust-exchange", + "cru": "crust-network", + "csm": "crust-storage-market", + "crux": "cryptomines-reborn", + "crvusd": "curve-fi-usd-stablecoin-stargate", + "crying": "crying-cat", + "cryn": "cryn", + "cryo": "cryodao", + "cwar": "cryowar-token", + "crypsi": "crypsi-coin", + "crs": "crypsure", + "cpt": "cryptaur", + "crpt": "crypterium", + "ctx": "cryptex-finance", + "crypt": "cryptify", + "crai": "cryptify-ai", + "cryptiq": "cryptiq-web3", + "c2d": "crypto-2-debit", + "cair": "crypto-ai-robo", + "cart": "cryptoart-ai", + "caga": "crypto-asset-governance-alliance", + "$cbet": "crypto-bet", + "skill": "skill-issue", + "king": "king-of-memes", + "cbc": "cryptoboomcoin-official", + "cyce": "crypto-carbon-energy-2", + "ccr": "cryptocarsreborn", + "ccv2": "cryptocart", + "cht": "cyberharbor", + "cch": "cryptocoinhash", + "cdceth": "crypto-com-staked-eth", + "cem": "crypto-emergency", + "xpress": "cryptoexpress", + "cof": "cryptoforce", + "xchf": "cryptofranc", + "cgu": "crypto-global-united", + "crgpt": "cryptogpt", + "lai": "lockon-active-index", + "chft": "crypto-holding-frank-token", + "hub": "crypto-hub", + "crh": "crypto-hunters-coin", + "cip": "crypto-index-pool", + "cisla": "crypto-island", + "daddy": "daddy-tate", + "kit": "kitsune", + "tokki": "cryptokki", + "cku": "cryptoku", + "tech": "tech", + "eternal": "cryptomines-eternal", + "$crypton": "crypton-ai", + "cnf": "cryptoneur-network-foundation", + "cprx": "crypto-perx", + "$tos": "cryptopia", + "bcpi": "cryptopia-world", + "cpo": "cryptopolis", + "hoodie": "cryptopunk-7171-hoodie", + "ipunks": "cryptopunks-fraction-toke", + "raider": "crypto-raiders", + "roy": "crypto-royale", + "saga": "saga-2", + "sdg": "shadowfi-2", + "shares": "shares-finance", + "tank": "cryptotanks", + "totem": "dragonmaster-totem", + "ctex": "crypto-tex", + "ctf": "crypto-trading-fund", + "cu": "crypto-unicorns", + "cut": "cryptounity", + "yield": "yield-protocol", + "cvag": "crypto-village-accelerator-cvag", + "zoo": "zookeeper", + "zoon": "cryptozoon", + "crystal": "defi-kingdoms-crystal", + "cpfc": "crystal-palace-fan-token", + "crystl": "crystl-finance", + "csi": "csi888", + "nebo": "csp-dao-network", + "csr": "csr", + "ctez": "ctez", + "cth": "cthulhu-finance", + "qub": "cubechain", + "iland": "cuberium", + "cub": "cubigator", + "cbix-p": "cubiex-power", + "cubi": "cubiswap", + "cubt": "cubtoken", + "cudos": "cudos", + "culo": "culo", + "cult": "cult-dao", + "$cost": "culture-of-solana-token", + "cuminu": "cuminu", + "cummies": "cumrocket", + "cess": "cumulus-encrypted-storage-system", + "xcur": "curate", + "cure": "curecoin", + "cgt": "curio-gas-token", + "cve": "curvance", + "am3crv": "curve-fi-amdai-amusdc-amusdt", + "crvfrax": "curve-fi-frax-usdc", + "crvrenwsbtc": "curve-fi-renbtc-wbtc-sbtc", + "2crv": "curve-fi-usdc-usdt", + "crvy": "curve-inu", + "cvs": "curveswap", + "cty": "custodiy", + "cthulhu": "cute-cthulhu", + "cvip": "cvip", + "cvpad": "cv-pad", + "cvshot": "cvshots", + "gamer": "gamestation", + "cbr": "cyberblast-token", + "cyber": "cyberpunk-city", + "cydx": "cyberdex", + "cdoge": "cyber-doge-2", + "cydoge": "cyberdoge-2", + "gold": "swords-and-dungeons-gold", + "cyfm": "cyberfm", + "cypx": "cyberpixels", + "truck": "cybertruck", + "cy": "cyberyen", + "cybonk": "cybonk", + "bord": "cy-bord-cbrc-20", + "cyba": "cybria", + "cybro": "cybro", + "cyg": "cygnusdao", + "cyc": "cyclone-protocol", + "cys": "cyclos", + "cgusd": "cygnus-finance-global-usd", + "cypepe": "cypepe", + "cypher": "cypher-ai", + "cph": "cypherium", + "czol": "czolana", + "czpw": "czpow", + "d2x": "d2", + "d2": "d2-token", + "d3d": "d3d-social", + "dacat": "dacat", + "d/acc": "d-acc", + "dackie": "dackieswap", + "dckusd": "dackie-usd", + "dacxi": "dacxi", + "dada": "dada-3", + "daddydoge": "daddy-doge", + "dax": "daex", + "dafi": "dafi-protocol", + "xdag": "dagger", + "daii": "daii", + "dkd": "daikodex", + "dau": "daily-active-users", + "dly": "daily-finance", + "dfish": "dailyfish", + "drs": "dai-reflections", + "daisy": "daisy", + "dalgo": "dalgo", + "dall": "dall-doginals", + "dalma": "dalma-inu", + "damex": "damex-token", + "damoon": "damoon", + "beans": "moonbeans", + "triangle": "dancing-triangle", + "dank": "dank-2", + "ninjaz": "danketsu", + "danzo": "danzo", + "haus": "daohaus", + "vest": "vestige", + "dal": "daolaunch", + "dao": "dao-maker", + "daosol": "daosol", + "daop": "dao-space", + "rice": "daosquare", + "daot": "daoversal", + "dapp": "penpad-token", + "appa": "dappad", + "dap": "dap-the-dapper-dog", + "radar": "radar", + "dappx": "dappstore", + "darc": "darcmatter-coin", + "dark": "dark-protocol", + "sky": "sky-raiders", + "dec": "decentralized-runes", + "dknight": "darkknight", + "dmaga": "dark-maga", + "dmagic": "dark-magic", + "dmt": "dream-machine-token", + "dmd": "diamond", + "dks": "darkshield", + "dwolf": "dark-wolf", + "daruma": "daruma", + "kton": "darwinia-commitment-token", + "ring": "ring-protocol", + "dash": "dash-2", + "d2t": "dash-2-trade", + "dashd": "dash-diamond", + "dasia": "dasia", + "dan": "dastra-network", + "data": "streamr", + "dbrx": "databricks-ai", + "dtx": "databroker-dao", + "dhx": "datahighway", + "lake": "data-lake", + "dmc": "dominica-coin", + "dam": "datamine", + "dop": "drops-ownership-power", + "dav": "data-vital", + "waddup": "dat-boi", + "daumen": "daumenfrosch-2", + "$dave": "dave-coin", + "dc": "donaldcat", + "wtf": "what-the-fruck-runes", + "davinci": "davincigraph", + "dvinci": "davinci-jeremie", + "davis": "davis-cup-fan-token", + "dusd": "dusd", + "sdusd": "davos-protocol-staked-dusd", + "daw": "dawkoin", + "dawn": "dawn-protocol", + "dbd": "day-by-day", + "dayl": "daylight-protocol", + "dod": "day-of-defeat", + "dod100": "day-of-defeat-mini-100x", + "toni": "daytona-finance", + "dbuy": "doont-buy", + "dbx": "dbx-2", + "dxn": "dbxen", + "dcnx": "dcntrl-network", + "dcm": "ducky-city", + "dili": "d-community", + "dco": "dcomy", + "ding": "deadpxlz", + "dean": "dean-s-list", + "dep": "deapcoin", + "drace": "deathroad", + "death": "death-token", + "dbio": "debio-network", + "dbr": "dola-borrowing-right", + "dcnt": "decanect", + "dct": "degree-crypto-token", + "decats": "decats", + "dbnb": "decentrabnb", + "dcard": "decentracard", + "dcloud": "decentracloud", + "dce": "ducky-city-earn", + "mana": "decentraland-wormhole", + "dg": "degate", + "ice": "iron-finance", + "dad": "decentralized-advertising", + "dci": "dynamic-crypto-index", + "dcip": "decentralized-community-investment-protocol", + "detf": "decentralized-etf", + "dmcc": "decentralized-music-chain", + "dubi": "decentralized-universal-basic-income", + "dvp": "decentralized-vulnerability-platform", + "dmind": "decentramind", + "dxs": "decentrashop", + "dweb": "decentraweb", + "deod": "decentrawood", + "dmint": "decetralized-minting-atomicals", + "dnode": "decetranode", + "dechat": "dechat", + "del": "decimal", + "dio": "decimated", + "decko": "decko", + "dcr": "diecast-racer", + "dcrn": "decred-next", + "dcb": "decubate", + "deda": "dedacoin", + "dede": "dede-on-sol", + "dedi": "dedium", + "deebo": "deebo-the-bear", + "deen": "deenar-gold", + "dbc": "dhabicoin", + "dpr": "deeper-network", + "fakeai": "deepfakeai", + "deep": "deeployer", + "dfv": "deep-fucking-value-2", + "onion": "deeponion", + "deepr": "deepr", + "south": "deepsouth-ai", + "dps": "deepspace", + "love": "love-power-coin", + "deeznuts": "deez-nuts-2", + "dn": "deez-nuts-erc404", + "nuts": "thetanuts-finance", + "factr": "defactor", + "dfndr": "defender-bot", + "defi": "defiway", + "daog": "defi-all-odds-daogame", + "dfiat": "defiato", + "bram": "defibox-bram", + "dfi": "wrapped-dfi", + "dfc": "definder-capital", + "defido": "defino-base", + "dfy": "defi-for-you", + "dchf": "defi-franc", + "dfg": "defigram", + "ddao": "defi-hunters-dao", + "ira": "defi-ira", + "jewel": "defi-kingdoms", + "dfl": "defi-land", + "goldy": "defi-land-gold", + "money": "moremoney-usd", + "fina": "fina", + "dfa": "define", + "fin": "poolshark", + "defx": "definity", + "dfp2": "defiplaza", + "dpst": "defi-pool-share", + "dpi": "defipulse-index", + "drbt": "defi-robot", + "dss": "defi-shopping-stake", + "spot": "spot", + "sta": "sta-token", + "defit": "defit", + "fiwa": "defi-warrior", + "dwc": "dogwifcrocs", + "dyp": "dypius", + "defly": "defly", + "defrogs": "defrogs", + "svic": "vicpool-staked-vic", + "defy": "defy", + "dega": "dega-2", + "d三g三n": "degen-2", + "$db": "degen-base-2", + "danny": "degen-danny", + "dgneth": "degen-eth-staked-eth", + "dgen": "degen-knightsofdegen", + "kongz": "degen-kongz", + "dmai": "degenmasters-ai", + "dpad": "degenpad", + "pov": "pepe-original-version", + "dswap": "degenswap", + "dtf": "degen-traded-fund", + "dgw": "dgwtoken", + "dgnx": "degenx", + "dzoo": "degen-zoo", + "deg": "degis", + "degod": "degod", + "dego": "dego-finance", + "wef": "degwefhat", + "dhlt": "dehealth", + "heroes": "dehero-community-token", + "amg": "deherogame-amazing-token", + "dhv": "dehive", + "devt": "dehorizon", + "dhb": "dehub", + "hoshi": "dejitaru-hoshi", + "tsuka": "dejitaru-tsuka", + "dek": "dekbox", + "deai": "zero1-labs", + "dph": "delphibets", + "dpy": "delphy", + "delrey": "delrey-inu", + "deto": "delta-exchange-token", + "delta": "delta-financial", + "dlta": "delta-theta", + "deo": "player-2", + "demi": "demi", + "ouro": "demiourgos-holdings-ouroboros", + "dmlg": "demole", + "dmr": "demr", + "demx": "demx", + "d": "denarius", + "mxd": "denarius-mxd", + "dench": "denchcoin", + "de": "denet-file-token", + "dnz": "denizlispor-fan-token", + "dent": "dent", + "dentx": "dentnet", + "deorbit": "deorbit-network", + "d.o.g.e": "department-of-government-efficiency-3", + "depay": "depay", + "depindao": "depin-dao", + "depd": "depindao-ordinals", + "dpln": "deplan", + "deploy": "deployyyyer", + "daft": "deportivo-alaves-fan-token", + "zerc": "derace", + "dsrun": "derby-stars-run", + "deri": "deri-protocol", + "ddx": "derivadao", + "dermo": "dermophis-donaldtrumpi", + "dero": "dero", + "derp": "odung", + "dsai": "desend-ai", + "dsm": "desmos", + "deso": "deso", + "deco": "destiny-world", + "ds": "destorage", + "dsync": "destra-network", + "detensor": "detensor", + "deton": "deton", + "deus": "deus-finance-2", + "dem": "deutsche-emark", + "dvt": "safestake", + "deve": "develocity", + "dhub": "devhub-ai", + "dvk": "devikins", + "devil": "devil-finance", + "devin": "devin-on-solana", + "dif": "dev-is-fish", + "evo": "evoverses", + "fuelx": "devour-2", + "dev": "my-dog-is-the-dev", + "hixokdkekjcjdksicndnaiaihsbznnxnxnduje": "dev-smashed-his-keyboard", + "devve": "devvio", + "dewn": "dewn", + "dewy": "dewy", + "dexa": "dexa-coin", + "alot": "dexalot", + "dexana": "dexana", + "dxb": "dexbet", + "dck": "dexcheck", + "dexe": "dexe", + "dexed": "dexed", + "gdex": "dexfi-governance", + "dxgm": "dex-game", + "dexio": "dexioprotocol-v2", + "dxt": "dexit-finance", + "dxl": "dexlab", + "dex": "dex-message", + "dexnet": "dexnet", + "docswap": "dex-on-crypto", + "dxp": "dexpad", + "dxr": "dex-raiden", + "dexshare": "dexshare", + "desu": "dexsport", + "taos": "dextensor", + "dextr": "dexter-exchange", + "dmb": "dexter-moon-bot", + "dextf": "dextf", + "dt": "dexton", + "dext": "dextools", + "dtoro": "dextoro", + "dxc": "dex-trade-coin", + "dxo": "dextro", + "dez": "dez", + "df": "dforce-token", + "dfsm": "dfs-mafia", + "dfnd": "dfund", + "dfx": "dfx-finance", + "dfyn": "dfyn-network", + "dgi": "dgi-game", + "dhd": "dhd-coin-2", + "dhp": "dhealth", + "dht": "dhedge-dao", + "diac": "diabase", + "dia": "dia-data", + "dbz": "diamond-boyz-coin", + "dmck": "diamond-castle", + "diamond": "drake-s-dog", + "dlc": "diamond-launch", + "dmtc": "diamond-the-cat-coin", + "dibble": "dibbles", + "dshare": "dibs-share", + "$dice": "dice", + "dk": "dice-kingdom", + "$dicki": "dicki", + "didid": "didi-duck", + "die": "die-protocol", + "digg": "digg", + "dgb": "digibyte", + "dcask": "digicask-token", + "dft": "digifinextoken", + "dgh": "digihealth", + "dgmv": "digimetaverse", + "digi": "digiverse-2", + "dar": "mines-of-dalarnia", + "dba": "digital-bank-of-africa", + "xdb": "digitalbits", + "dgc": "digitalcoin", + "difi": "digital-files", + "difx": "digital-financial-exchange", + "digita": "digitaliga", + "xdn": "digitalnote", + "drc": "doric-network", + "dsb": "digital-standard", + "dgtx": "digitex-futures-exchange", + "digits": "digits-dao", + "dgx": "digix-gold", + "digau": "dignity-gold-2", + "diligent": "diligent-pepe", + "dill": "dillwifit", + "dilly": "dilly", + "dime": "dimecoin", + "dd": "duckdao", + "dimi": "diminutive-coin", + "dmtr": "dimitra", + "dimo": "dimo", + "dzg": "dinamo-zagreb-fan-token", + "aapl.d": "dinari-aapl-dshares", + "amc.d": "dinari-amc", + "amd.d": "dinari-amd", + "amzn.d": "dinari-amzn-dshares", + "arm.d": "dinari-arm", + "brk.a.d": "dinari-brk-a-d", + "coin.d": "dinari-coin", + "dis.d": "dinari-dis-dshares", + "gme.d": "dinari-gme", + "googl.d": "dinari-googl-dshares", + "meta.d": "dinari-meta-dshare", + "msft.d": "dinari-msft-dshares", + "nflx.d": "dinari-nflx-dshares", + "nvda.d": "dinari-nvda-dshares", + "pfe.d": "dinari-pfe-dshares", + "pld.d": "dinari-pld", + "pypl.d": "dinari-pypl-dshares", + "rddt.d": "dinari-rddt", + "riot.d": "dinari-riot", + "spy.d": "dinari-spy-dshares", + "tsla.d": "dinari-tsla-dshares", + "uber.d": "dinari-uber", + "usd+": "usd", + "usfr.d": "dinari-usfr-dshares", + "dint": "dinartether", + "dinero": "dinerobet", + "apxeth": "dinero-apxeth", + "pxeth": "dinero-staked-eth", + "dinger": "dinger-token", + "dingo": "dingocoin", + "dinj": "dinj", + "rawr": "dino-poker", + "dinoshi": "dinoshi", + "dinosol": "dinosol", + "dnxc": "dinox", + "dinu": "dogey-inu", + "dione": "dione", + "diq": "diqinu", + "dirty": "dirty-street-cats", + "ddos": "disbalancer", + "disknee": "diskneeplus", + "dude": "dude-injective", + "dnt": "space-guild-diamond-token", + "dith": "dither", + "diva": "diva-staking", + "diver": "divergence-protocol", + "dseth": "diversified-staked-eth", + "divi": "divi", + "dvnci": "divincipay", + "dzhv": "dizzyhavoc", + "djbonk": "djbonk", + "djcat": "djcat", + "djed": "djed", + "dka": "dkargo", + "dkey": "dkey-bank", + "dlcbtc": "dlc-link-dlcbtc", + "duck": "unit-protocol-duck", + "dmail": "dmail-network", + "dmx": "dymmax", + "dxct": "dnaxcat", + "dobi": "dobi", + "dock": "dock", + "evil": "doctor-evil", + "dcct": "docuchain", + "dms": "dragon-mainland-shards", + "dodo": "dodo-the-black-swan", + "cep": "dodreamchain", + "doeg": "doeg-wif-rerart", + "dogai": "dogai", + "doga": "dogita", + "collar": "dog-collar", + "doge1": "doge-1", + "doge-1": "satellite-doge-1-mission", + "doge-1sat": "doge-1satellite", + "doge2.0": "doge-2-0", + "doge69": "doge69", + "dogeai": "dogeai", + "dbit": "dogebits-drc-20", + "dobo": "donablock", + "dogb": "dogeboy-2", + "dogec": "dogecash", + "dogeceo": "doge-ceo", + "dogc": "dogeclub", + "doge2": "dogecoin-2", + "doge20": "dogecoin20", + "colana": "dogecola", + "dogecube": "dogecube", + "dogedi": "dogedi", + "omnom": "doge-eat-doge", + "(dofi20": "doge-floki-2-0", + "dofi": "doge-floki-coin", + "dogefood": "dogefood", + "votedoge": "doge-for-president", + "dogegf": "dogegf", + "dogegrok": "doge-grok", + "dgr": "dogegrow", + "dew": "doge-in-a-memes-world", + "kaki": "doge-kaki", + "dogeking": "dogeking", + "dgln": "dogelana", + "doge legio": "doge-legion", + "elonc": "dogelon-classic", + "elon": "dogelon-mars", + "dxlm": "doge-lumens", + "marley": "doge-marley", + "dome": "everdome", + "dogemob": "dogemob", + "dogo": "dogo-token", + "dogemoon": "dogemoon", + "dogegrokai": "doge-of-grok-ai", + "don": "thedonato-token", + "$doge": "doge-on-sol", + "dope": "dopamine", + "dogep": "doge-protocol", + "dogeshrek": "dogeshrek", + "squoge": "dogesquatch", + "dogether": "dogether", + "doget": "doge-token", + "dogeverse": "dogeverse", + "dwhl": "doge-whale", + "zilla": "dogezilla-2", + "dogmi": "dogfinity-2", + "dogga": "doggacoin", + "doggs": "doggensnout", + "dogs": "dogs-2", + "dogggo": "dogggo", + "doggo": "doggo-inu", + "doggy": "doggy-coin", + "dogi": "dogi", + "dosu": "doginal-kabosu-drc-20", + "doginme": "doginme", + "fire": "the-phoenix", + "dogira": "dogira", + "dogl": "doglibre", + "dogm": "dogmcoin", + "dognus": "dognus", + "wisdm": "dog-of-wisdom", + "$dog": "dog-ordinals", + "dogpad": "dogpad-finance", + "doe": "dogs-of-elon", + "spoon": "dog-spooning-cat", + "dogsrock": "dogs-rock", + "nelsol": "dog-walter", + "$wif2": "dogwif2-0", + "wifc": "dogwifceo", + "wif": "wif-secondchance", + "dogwifhat": "dogwifhat-eth", + "katana": "dogwifkatana", + "leg": "legia-warsaw-fan-token", + "nohat": "dogwifnohat", + "ninja": "shinobi-2", + "wifout": "dogwifouthat", + "pants": "dogwifpants", + "dwp": "dog-wif-pixels", + "wifsa": "dogwifsaudihat", + "wifs": "dogwifscarf", + "sd": "stader", + "dopu": "dog-with-purpose", + "dogy": "dogy", + "dor": "dor", + "dogz": "dogz", + "dhn": "dohrnii", + "doi": "doichain", + "dojo": "project-dojo", + "doai": "dojo-protocol", + "$dojo": "dojo-supercomputer", + "doke": "doke-inu", + "doki": "doki", + "dolan": "dolan-duck", + "dola": "dola-usd", + "dollar": "dollar-2", + "dmoon": "dollarmoon-2", + "doc": "dollar-on-chain", + "dsq": "dollarsqueeze", + "dolz": "dolz-io", + "domi": "domi", + "domdom": "dominator-domains", + "dom": "domus-ai", + "domo": "dony-montana", + "tremp": "donald-tremp", + "trump2024": "donald-trump", + "dona": "donaswap", + "doncat": "don-catblueone", + "donki": "don-don-donki", + "dong": "dongcoin", + "ddmt": "dongdaemun-token", + "dongo": "dongo-ai", + "donk": "donkey", + "donke": "donke", + "donkee": "donkee", + "doky": "donkey-king", + "dons": "dons", + "dbi": "don-t-buy-inu", + "bitcoin": "harrypotterobamasonic10inu", + "donut": "donut", + "doodoo": "doodoo", + "doogle": "doogle", + "dook": "dook", + "doomer": "doomer-on-base-cto", + "dopa": "dopameme", + "paper": "paper-fantom", + "dpx": "dopex", + "rdpx": "dopex-rebate-token", + "$dorab": "dorado-finance", + "dora": "dora-factory-2", + "dork": "dork", + "dorkl": "dork-lord-eth", + "dlord": "dork-lord-coin", + "dos": "dos-network", + "dose": "dose-token", + "dtbx": "dotblox", + "ddd": "scry-info", + "pink": "pink-elements", + "ded": "dot-is-ded", + "moov": "dotmoovs", + "dotz": "dotz", + "doug": "duck-the-doug", + "$doh": "doughge", + "hhgttg": "douglas-adams", + "dov": "dovu", + "dovi": "dovi", + "dovu": "dovu-2", + "dox": "doxcoin", + "dozy": "dozy-ordinals", + "dpex": "dpex", + "rating": "dprating", + "dbl": "dps-doubloon-2", + "dra": "dracoo-point", + "drac": "drac-ordinals", + "fang": "fang-token", + "dkp": "draggin-karma-points", + "draggy0x62": "draggy-0x62", + "draggy": "draggy-cto", + "drago": "drago", + "dma": "dragoma", + "drgn": "dragon-sun", + "dragon": "soldragon", + "dcau": "dragon-crypto-aurum", + "dragonking": "dragonking", + "licat": "dragon-licat", + "dst": "dragon-soul-token", + "dquick": "dragons-quick", + "dwif": "dragon-wif-hat", + "drgx": "dragonx-2", + "dragonx": "dragonx-win", + "nova": "nova-finance", + "dragy": "dragy", + "drako": "drako", + "munk": "dramatic-chipmunk", + "joy": "joystream", + "dream": "dream-token", + "dreams": "dreams-quest", + "dv": "dreamverse", + "drep": "drep-new", + "drf": "drife", + "drifty": "driftin-cat", + "drift": "drift-token", + "dsol": "drift-staked-sol", + "drink": "drink", + "drip": "drip-network", + "drv3": "drive3", + "drone": "drone", + "drop": "dropcoin-club", + "drops": "drops", + "datom": "drop-staked-atom", + "dwin": "drop-wireless-infrastructure", + "doctor": "dr-solwitz", + "dcc": "drunk-chicken-centipede", + "metal": "metal-blockchain", + "dsc": "dsc", + "mix": "mixmarvel", + "dsun": "dsun-token", + "dtec": "dtec-token", + "dti": "dt-inu", + "dtng": "dtng", + "trvl": "dtravel", + "dtsla": "dtsla", + "dual": "dual-finance", + "dua": "dua-token", + "dubbz": "dubbz", + "dubcat": "dubcat", + "$dub": "dub-duck", + "dub": "dubx", + "ducx": "ducatus", + "ddim": "duckdaodime", + "ducker": "duckereum", + "mmeta": "duckie-land-multi-metaverse", + "duckies": "duckies", + "$duckie": "duckie-the-meme-token", + "diat": "duck-in-a-truck", + "ducks": "ducks", + "degg": "duckydefi", + "ducky": "duckyduck", + "du": "du-coin", + "dudegen": "dudegen", + "dudiez": "dudiez-meme-token", + "duet": "duet-protocol", + "duge": "duge", + "duh": "duh", + "duk": "duk-on-sol", + "duke": "duke-inu-token", + "duko": "duko", + "gme": "gme", + "dummy": "dummy", + "dump": "dump-trade", + "dune": "dune404", + "dnd": "dungeonswap", + "grow": "valleydao", + "dupe": "dupe-the-duck", + "$wall": "du-rove-s-wall", + "dusk": "dusk-network", + "dust": "dust-protocol", + "dvi": "dvision-network", + "dvpn": "sentinel-group", + "dwake": "dwake-on-sol", + "dwog": "dwog-the-dog", + "dx": "dxchain", + "dxd": "dxdao", + "dyad": "dyad", + "ethdydx": "dydx", + "dydx": "dydx-wormhole", + "wethdydx": "dydx-wethdydx", + "dyl": "dyl", + "dym": "dymension", + "dyna": "dynamix", + "dynmt": "dynamite-token", + "dny": "dynasty-coin", + "dnx": "dynex", + "dyst": "dystopia", + "dysto": "dystoworld-ai", + "dyzilla": "dyzilla", + "eai": "eternalai", + "egl": "eagle-of-truth", + "early": "early-risers", + "ebet": "earnbet", + "earn": "powercity-earn-protocol", + "etv": "earntv", + "ess": "essentia", + "ebyt": "earthbyt", + "1earth": "earthfund", + "emt": "email-token", + "ez": "ez-pepe", + "ezswap": "ezswap-protocol", + "eave": "eaveai", + "eazy": "eazyswap-token", + "ebabil": "ebabil-io", + "frtn": "ebisusbay-fortune", + "ebit": "ebit-2", + "ebso": "eblockstock", + "ebox": "ebox", + "ebtc": "ether-fi-staked-btc", + "xec": "ecash", + "ect": "ecochain-token", + "prime": "solanaprime", + "eblock": "echoblock", + "echo": "echo-bot", + "ecp": "echodex-community-portion", + "eko": "echolink-2", + "eoth": "echo-of-the-horizon", + "eci": "e-c-inu", + "ecl": "ecl", + "eclip": "eclipse-fi", + "eco": "ormeus-ecosystem", + "ecb": "ecobal", + "ecoin": "ecoin-finance", + "omi": "ecomi", + "ecoreal": "ecoreal-estate", + "ecoterra": "ecoterra", + "ecox": "ecox", + "vtra": "e-c-vitoria-fan-token", + "edda": "eddaswap", + "edse": "eddie-seal", + "edlc": "edelcoin", + "eden": "paradisefi", + "edge": "edge", + "emc": "emercoin", + "egs": "emingunsirer", + "edgesol": "edgevana-staked-sol", + "fast": "fastswap-bsc-2", + "edg": "edgeware", + "bored": "edison-bored", + "edm": "edm", + "zeni": "edoverse-zeni", + "nfe": "edu3labs", + "edu": "edu-coin", + "edux": "edufex", + "edum": "edum", + "eeg": "eeg", + "ese": "eesee", + "eeyor": "eeyor", + "efx": "effect-network", + "efi": "efinity", + "efk": "efk-token", + "efcr": "eflancer", + "efun": "efun", + "egaz": "egaz", + "eggt": "egg-n-partners", + "eggp": "eggplant-finance", + "eggs": "eggs", + "eggy": "eggy-the-pet-egg", + "egax": "egochain", + "egod": "egodcoin", + "egold": "egold-project-2", + "egon": "egoncoin", + "egc": "evergrowcoin", + "esta": "egostation", + "eg": "eg-token", + "sphynx": "sphynx-labs-bae5b42e-5e37-4607-8691-b56d3a5f344c", + "ehash": "ehash", + "ele": "elementum", + "eigen": "eigenlayer", + "egp": "eigenpie", + "mankreth": "eigenpie-ankreth", + "mcbeth": "eigenpie-cbeth", + "methx": "eigenpie-ethx", + "msfrxeth": "eigenpie-frxeth", + "mlseth": "eigenpie-lseth", + "mmeth": "eigenpie-meth", + "msteth": "eigenpie-msteth", + "moeth": "eigenpie-oeth", + "moseth": "eigenpie-oseth", + "mreth": "eigenpie-reth", + "msweth": "eigenpie-sweth", + "mwbeth": "eigenpie-wbeth", + "emc2": "einsteinium", + "eiob": "eiob", + "eiqt": "eiqt-token", + "ey": "eiyaro", + "ekta": "ekta-2", + "ekubo": "ekubo-protocol", + "eefi": "elastic-finance-token", + "ela": "elastos", + "moosk": "elawn-moosk", + "chango": "el-changuito", + "elda": "eldarune", + "ede": "el-dorado-exchange-base", + "eca": "electra", + "xep": "electra-protocol", + "elcash": "electric-cash", + "evdc": "electric-vehicle-direct-currency", + "evz": "electric-vehicle-zone", + "elec": "electrify-asia", + "electron": "electron-arc-20", + "etn": "electroneum", + "efl": "electronicgulden", + "eltk": "elektrik", + "elmt": "element", + "pgt": "elemental-story", + "elephant": "elephant-money", + "trunk": "elephant-money-trunk", + "elepepe": "elephantpepe", + "$elev": "elevate-token", + "elgato": "el-gato-2", + "hipp": "el-hippo", + "goc": "eligma", + "xls": "elis", + "deusd": "elixir-deusd", + "elxr": "elixir-finance", + "elix": "elixir-token", + "whoren": "elizabath-whoren", + "elk": "elk-finance", + "elm": "ellerium", + "eps": "ellipsis", + "epx": "ellipsis-x", + "elmo": "elmoerc", + "eloin": "eloin", + "$elon": "elon", + "elon2024": "elon-2024", + "schrodinge": "elon-cat", + "ecat": "elon-cat-finance", + "edoge": "ethereum-doge", + "egt": "elon-goat", + "elonmars": "elon-mars", + "elonrwa": "elonrwa", + "catme": "elon-s-cat", + "et": "elon-trump", + "xmas": "elon-xmas", + "elo": "elosys", + "egld": "elrond-erd-2", + "ells": "elseverse-world", + "elux": "elucks", + "elu": "elumia", + "emagic": "elvishmagic", + "wiwi": "wiggly-willy", + "elfi": "elyfi", + "el": "elysia", + "els": "ethlas", + "lcmg": "elysiumg", + "royal": "royal", + "elys": "elys-network", + "ely": "elyssa", + "ember": "ember-sword", + "emdx": "emdx", + "eag": "emerging-assets-group", + "em": "eminer", + "emit": "emit", + "eml": "eml-protocol", + "emma": "emma", + "emmy": "emmy", + "$emoji": "emoji-erc20", + "ngm": "e-money", + "emr": "emorya-finance", + "emoti": "emoticoin", + "empire": "empire-token", + "emp": "export-mortos-platform", + "eshare v2": "emp-shares-v2", + "encs": "encoins", + "dna": "encrypgen", + "end": "endblock", + "endcex": "endpoint-cex-fan-token", + "egx": "enegra", + "nrg": "energy-token", + "esol": "energiswap-sol-energi", + "tsl": "energo", + "egrn": "energreen", + "e8": "energy8", + "deem": "energy-efficient-mortgage-tokenized-stock-defichain", + "eft": "everflow-token", + "ewt": "energy-web-token", + "enf": "enfineo", + "eng": "enigma-gaming", + "fury": "fanfury", + "enj": "enjincoin", + "ejs": "enjinstarter", + "enjoy": "enjoy", + "enki": "enki-protocol", + "enno": "enno-cash", + "eno": "eno", + "enoch": "enoch", + "hln": "holonus", + "eusdt": "enosys-usdt", + "enq": "enq-enecuum", + "nrch": "enreachdao", + "enrx": "enrex", + "ensue": "ensue", + "ngl": "gold-fever-native-gold", + "enter": "enter", + "entr": "enterdao", + "ents": "ents", + "edat": "envida", + "envi": "envi-foundation", + "vis": "envision-2", + "eon": "hyper-3", + "eosdac": "eosdac", + "eosc": "eosforce", + "wram": "eos-wrapped-ram", + "epep": "epep", + "epic": "epic-cash", + "💥": "epic-epic-epic-epic", + "epl": "epic-league", + "epct": "epics-token", + "epiko": "epiko", + "epik": "teh-epik-duck", + "aiepk": "epik-protocol", + "epoch": "epoch-island", + "eq9": "eq9-2", + "eqx": "eqifi", + "eqz": "equalizer", + "scale": "scalia-infrastructure", + "equal": "equalizer-dex", + "equ": "equation", + "vara": "vara-network", + "eqb": "equilibria-finance", + "ependle": "equilibria-finance-ependle", + "eq": "equilibrium-token", + "nox": "equinox-ecosystem", + "eqpay": "equitypay", + "era": "era-name-service", + "eape": "eraape", + "exrd": "e-radix", + "erb": "erbiechain", + "erg": "ergo", + "ergone": "ergone", + "ergopad": "ergopad", + "eric": "eric-the-goldfish", + "ampjuno": "eris-amplified-juno", + "ampmnta": "eris-staked-mnta", + "amposmo": "eris-amplified-osmo", + "ampwhale": "eris-amplified-whale", + "ampkuji": "eris-staked-kuji", + "$ernie": "ernie", + "$err": "error-404", + "ertha": "ertha", + "$esab": "esab", + "esco": "esco-coin", + "elg": "escoin-token", + "silv2": "escrowed-illuvium-2", + "eslbr": "escrowed-lbr", + "esprf": "escrowed-prf", + "esg": "esg", + "esgc": "esg-chain", + "esk": "eska", + "eses": "eskisehir-fan-token", + "esmx": "esm-x", + "espt": "esport", + "bahia": "esporte-clube-bahia-fan-token", + "espr": "espresso-bot", + "esx": "estatex", + "estee": "kaga-no-fuuka-go-sapporo-kagasou", + "etcpow": "etcpow", + "mind": "morpheus-labs", + "$glory": "eternity-glory-token", + "etf": "etf-the-token", + "etgm": "etgm-ordinals", + "eth 2.0": "eth-2-0", + "eth2": "eth2-staking-by-poolx", + "eth2x-fli": "eth-2x-flexible-leverage-index", + "eth3s": "eth3s", + "etha": "etha-lend", + "c2h6": "ethane", + "ethax": "ethax", + "ethdown": "ethdown", + "e": "etheism", + "ena": "ethena", + "sena": "ethena-staked-ena", + "susde": "ethena-staked-usde", + "ustb": "superstate-short-duration-us-government-securities-fund-ustb", + "etho": "ether-1", + "os": "ethereans", + "eth.z": "ethereum-bridged-zed20", + "etc": "ethereum-classic", + "ete": "ethereum-express", + "dis": "tosdis", + "ethg": "ethereum-gold-2", + "ethinu": "ethereum-inu", + "ebull": "ethereum-is-good", + "emax": "ethereummax", + "ethm": "ethereum-meta", + "ens": "ethereum-name-service", + "laputa": "ethereum-origins", + "eth+": "reserve-protocol-eth-plus", + "ethw": "ethereum-pow-iou", + "push": "push", + "ethv": "ethereum-volatility-index-token", + "etx": "ethereumx", + "ethfi": "ether-fi", + "weeth.base": "ether-fi-bridged-weeth-base", + "eeth": "evereth-2", + "weeths": "etherfi-weeths", + "egem": "ethergem", + "eland": "etherland", + "emon": "ethermon", + "ern": "ethos-reserve-note", + "ecld": "ethernity-cloud", + "fuel": "fuel-network", + "epets": "etherpets", + "etpos": "etherpos", + "scape": "etherscape", + "etr": "etherunes", + "vista": "ethervista", + "ethfai": "ethforestai", + "ethix": "ethichub", + "lend": "lendle", + "vgx": "ethos", + "3th": "ethos-2", + "ethos": "ethos-3", + "ethpad": "ethpad", + "$rock": "eth-rock-erc404", + "eths": "eth-stable-mori-finance", + "ethtz": "ethtez", + "ethup": "ethup", + "eti": "etica", + "tuk": "etuktuk", + "eul": "euler", + "euno": "euno", + "euri": "eurite", + "euro3": "euro3", + "eurc": "euro-coin", + "ecte": "eurocoinpay", + "euroe": "euroe-stablecoin", + "euft": "europe-fantasy-league", + "eutbl": "eutbl", + "$eva": "eva-ai", + "eva": "evanesco-network", + "ev": "evai-2", + "eveai": "eve-ai", + "eve": "eve-exchange", + "ezeth": "renzo-restaked-eth", + "ecet": "evercraft-ecotechnologies", + "evereth": "evereth", + "evx": "everex", + "id": "space-id", + "iq": "everipedia", + "eldg": "everlodge", + "evermoon": "evermoon-sol", + "evr": "evrmore", + "evrf": "everreflect", + "rise": "everrise-sol", + "ever": "ever-sol", + "efc": "everton-fan-token", + "hold": "hold-vip", + "evy": "everycoin", + "egame": "every-game", + "every": "everyworld", + "evilpepe": "evil-pepe", + "evin": "evin-token", + "evire": "evire", + "evmos": "evmos", + "evld": "evoload", + "$evol": "evolve", + "evry": "evrynet", + "evu": "evulus", + "exa": "exa", + "exaop": "exactly-op", + "exausdc.e": "exactly-usdc", + "exausdc": "exactly-usd-coin", + "exawbtc": "exactly-wbtc", + "exaweth": "exactly-weth", + "exawsteth": "exactly-wsteth", + "ext": "exatech", + "exc": "excalibur", + "xlon": "excelon", + "art": "salvor", + "excc": "exchangecoin", + "xgem": "exchange-genesis-ethlas-medium", + "xed": "exeedme", + "exgo": "exgo", + "exit": "exit-designer-token", + "exm": "exmo-coin", + "exnt": "exnetwork-token", + "exo": "exohood", + "exd": "exorde", + "sama": "exosama-network", + "exp": "expanse", + "xpc": "experience-chain", + "wis": "experty-wisdom-token", + "xdna": "extradna", + "extra": "extra-finance", + "xtrm": "extreme", + "exvg": "exverse", + "xyn": "exynos-protocol", + "eyebot": "eyebot", + "smilek": "eye-earn", + "eyes": "eyes-protocol", + "ezi": "ezillion", + "sword": "sword-2", + "tyrant": "fable-of-the-dragon", + "fab": "fabric", + "fabs": "fabs", + "welt": "fabwelt", + "dfb": "facebook-tokenized-stock-defichain", + "face": "facedao", + "fact": "orcfax", + "fctr": "factor", + "bkc": "facts", + "fwt": "freeway", + "fafy": "fafy-token", + "berc": "fair-berc20", + "ferc": "fairerc20", + "frx": "fairex", + "fcdp": "fairlight", + "tfs": "fairspin", + "fai": "futuresai", + "ftrb": "faith-tribe", + "f9": "falcon-nine", + "fah": "falcons", + "falcon": "falconsinu", + "fnt": "falcon-token", + "falx": "falx", + "$fmc": "fame-ai", + "fame": "fantom-maker", + "frp": "fame-reward-plus", + "fam": "family-2", + "guy": "family-guy", + "foxy": "foxy", + "foxes": "famous-fox-federation-floor-index", + "fanc": "fanc", + "fnc": "fancy-games", + "fand": "fandomdao", + "fti": "fanstime", + "ut": "ulord", + "fan": "superfans-tech", + "ftm": "fantom", + "rip": "skull-with-ripped-hood", + "ftg": "fantomgo", + "flibero": "fantom-libero-financial", + "fbux": "fantom-money-market", + "ftmo": "fantom-oasis", + "fsonic": "fantomsonicinu", + "fs": "fantomstarter", + "fusd": "fuse-dollar", + "fvm": "fantom-velocimeter", + "fton": "fanton-token", + "fnz": "fanzee-token", + "faptax": "faptax", + "fara": "faraland", + "far": "few-and-far", + "flower": "farcaster-flower", + "farm": "taxfarm-ing", + "frank": "farmer-frank", + "fox": "shapeshift-fox-token", + "fww": "farmers-world-wood", + "frtc": "fart-coin", + "farther": "farther", + "fastai": "fast-and-ai", + "lane": "fastlane", + "ftn": "fasttoken", + "fatality": "fatality-coin", + "fatcat": "tombili-the-fat-cat", + "fcat": "floki-cat", + "fatgf": "fatgf", + "fatguy": "fat-guy", + "$fathom": "fathom", + "fxd": "frax-doge", + "fthm": "fathom-protocol", + "fksk": "fatih-karagumruk-sk-fan-token", + "ftr": "fautor", + "favr": "favor", + "faya": "faya", + "fayd": "fayda-games", + "bar": "gold-standard", + "porto": "fc-porto", + "fcr": "fcr-coin", + "sion": "fc-sion-fan-token", + "fcuk": "fcuk", + "fear": "fear", + "fea": "feather", + "ftc": "feathercoin", + "feces": "feces", + "fedai": "federal-ai", + "tips": "just-the-tip", + "good": "good-entry", + "fgm": "feels-good-man-2", + "fefe": "fefe-on-eth", + "feg": "feg-token-2", + "nfd": "feisty-doge-nft", + "fei": "fei-usd", + "felicette": "felicette-the-space-cat", + "flx": "reflexer-ungovernance-token", + "felix": "felix-2", + "$peow": "felix-the-lazer-cat", + "fella": "fella", + "flz": "fellaz", + "fb": "fractal-bitcoin", + "fnnc": "fennec", + "fentanyl": "fentanyl-dragon", + "ferma": "ferma", + "ferret": "ferret-ai", + "fer": "ferro", + "frm": "ferrum-network", + "fet": "fetch-ai", + "fgds": "fgdswap", + "fhb": "fhb", + "chf24": "fiat24-chf", + "eur24": "fiat24-eur", + "usd24": "fiat24-usd", + "fiber": "fiber-network", + "fibo": "fibonacci", + "fo": "fibos", + "fdc": "fidance", + "fi": "fideum", + "fid": "fidira", + "fido": "fido", + "fidu": "fidu", + "fierdragon": "fierdragon", + "fiero": "fiero", + "fight": "fight-to-maga", + "sft": "fightly", + "fota": "fight-of-the-ages", + "fwin-ai": "fight-win-ai", + "sfil": "filecoin-standard-full-hashrate", + "fcp": "filipcoin", + "film": "filmcredits", + "filter": "filter-ai", + "fmc": "fimarkcoin-com", + "fbx": "firebot", + "fvt": "finance-vote", + "fff": "financial-freedom-formula", + "fts": "fortress", + "fnct": "financie-token", + "finc": "finceptor-token", + "finder": "gem-finder", + "findme": "findme", + "fra": "france-coin", + "fine": "woof", + "finedog": "finedog", + "finger": "finger-blast", + "prints": "fingerprints", + "fmt": "finminity", + "fins": "fins-token", + "ftx": "hairyplotterftx", + "finx": "finx", + "fxf": "finxflo", + "fio": "fio-protocol", + "fira": "fira-cronos", + "flame": "flame-2", + "fct": "firmachain", + "first": "first", + "fdusd": "first-digital-usd", + "grok": "grok-codes", + "firsthare": "firsthare", + "lolcat": "first-meme", + "sirius": "first-reply", + "fscc": "fisco", + "fico": "fish-crypto", + "tuna": "tunachain", + "koin": "koinos", + "fvs": "fishverse", + "$fishy": "fishy", + "fist": "fistbump", + "fbt": "fitburn-fbt", + "fitt": "fitmint", + "fiwb": "fiwb-doginals", + "fix00": "fix00", + "fjo": "fjord-foundry", + "fketh": "fketh", + "flack": "flack-exchange", + "flag": "for-loot-and-glory", + "fldx": "flair-dex", + "mengo": "flamengo-fan-token", + "fghst": "flamingghost", + "flm": "flamingo-finance", + "flap": "flap", + "flappy": "flappy", + "fevo": "flappy-bird-evolution", + "$fmb": "flappymoonbird", + "exfi": "flare-finance", + "flr": "flare-networks", + "1flr": "flare-token", + "flashdash": "flashdash", + "flash": "flash-protocol", + "ftt": "ftx-token", + "unit": "flat-money", + "qube": "flatqube", + "flay": "flayer", + "flex": "flexmeme", + "fgpu": "flexgpu", + "flexusd": "flex-usd", + "fkr": "flicker", + "fkrpro": "flickerpro", + "flight": "flightclupcoin", + "flipcat": "flipcat", + "fls": "floos", + "tim": "tourism-industry-metavers", + "flochi": "flochi-inu", + "floki": "shiba-floki", + "flokicash": "floki-cash", + "flokiceo": "floki-ceo", + "fork": "flokifork", + "flokis": "flokis", + "floof": "floof", + "floop": "floop", + "flrbrg": "floor-cheese-burger", + "flc": "flooring-lab-credit", + "uelem": "flooring-protocol-microelemental", + "ulp": "flooring-protocol-microlilpudgys", + "uppg": "flooring-protocol-micropudgypenguins", + "floppa": "floppa-cat", + "ffm": "florence-finance-medici", + "$flork": "flork", + "fdust": "flovatar-dust", + "flovi": "flovi-inu", + "flow": "velocimeter-flow", + "fm": "flowmatic", + "fxy": "floxypay", + "floyx": "floyx-new", + "flt": "fluence-2", + "fluffi": "fluffington", + "fluf": "fluffy-coin", + "fluff": "fluffys", + "fluid": "fluid-2", + "fdai": "flux-dai", + "fpt": "fluid-protocol", + "fusdt": "frapped-usdt", + "fldt": "fluidtokens", + "ftusd": "fluid-tusd", + "usdf": "fluid-usd", + "fusdc": "fluid-usd-coin", + "fweth": "fluid-wrapped-ether", + "fwsteth": "fluid-wrapped-staked-eth", + "flu": "fluminense-fc-fan-token", + "flurry": "flurry", + "flut": "flute", + "flux": "zelcash", + "fluxb": "fluxbot", + "ffrax": "flux-frax", + "shards": "solchicks-shards", + "fluxt": "flux-terminal", + "yin": "flux-yin", + "flycat": "flycat", + "fac": "flying-avocado-cat", + "fncy": "fncy", + "fnk": "fnkcom", + "foam": "foam-protocol", + "foc": "theforce-trade", + "fodl": "fodl-finance", + "fofar": "fofar-2", + "fofo": "fofo-token", + "fog": "fognet", + "foho": "foho-coin", + "fld": "fold", + "folo": "follow-token", + "fomeow": "fomeow", + "fomos": "fomosfi", + "fon": "inofi", + "fonzy": "fonzy", + "food": "food-token-2", + "fool": "fool", + "foom": "foom", + "fav": "football-at-alphaverse", + "xfc": "football-coin", + "fwc": "football-world-community", + "foox": "foox-ordinals", + "ffe": "forbidden-fruit-energy", + "frc": "freicoin", + "force": "force-3", + "forc": "forcefi", + "for": "fortuna-sittard-fan-token", + "fore": "fore-protocol", + "fry": "fryscrypto", + "foat": "forever-aid-token", + "fp": "frenpet", + "form": "formation-fi", + "finu": "formula-inu", + "fbg": "fort-block-games", + "audf": "forte-aud", + "ftsc": "fortress-chain-network", + "ifbill": "fortunafi-tokenized-short-term-u-s-treasury-bills-for-non-us-residents", + "fortune": "fortune-bets", + "fftb": "fortune-favours-the-brave", + "forward": "forward", + "fjlt-b24": "forwards-rec-bh-2024", + "fottie": "fottie", + "ftp": "fountain-protocol", + "foxe": "fox-europe", + "foxgirl": "foxgirl", + "foxsy": "foxsy-ai", + "fr33": "fr33-gpt", + "fcl": "fractal", + "ft": "fracton-protocol", + "frkt": "frakt-token", + "frame": "frame-token", + "frf": "france-rev-finance", + "zchf": "frankencoin", + "ffrog": "frankenfrog", + "frax": "fraxtal-bridged-frax-fraxtal", + "frxbullas": "frax-bullas", + "frxeth": "frax-ether", + "fpi": "frax-price-index", + "fpis": "frax-price-index-share", + "fxs": "linea-bridged-fxs-linea", + "fxtl": "fraxtal", + "keke": "keke-inu", + "freco": "freco-coin", + "$fred": "freddy-fazbear", + "fred": "fredenergy", + "frbk": "freebnk", + "solvbtc.b": "free-bridged-solvbtcb-core", + "solvbtc.m": "free-bridged-solvbtc-m-core", + "freecz": "freecz", + "fdm": "freedom-2", + "freed": "freedomcoin", + "free": "freerossdao", + "$fjb": "freedom-jobs-business", + "frel": "freela", + "$trump": "make-solana-great-again", + "zypto": "french-connection-finance", + "frepe": "fren-pepe", + "$fren": "frens-club", + "frenz": "frenz", + "fresco": "fresco", + "freth": "freth", + "xya": "freyala", + "frgx": "frgx-finance", + "fric": "frictionless", + "fckn": "fried-chicken", + "f3": "friend3", + "fwb": "friends-with-benefits-pro", + "friend": "friend-tech", + "frin": "fringe-finance", + "frog ceo": "frog-ceo", + "frogex": "froge-finance", + "froge": "frogevip", + "frgst": "froggies-token-2", + "froggy": "froggy", + "frogie": "frogie", + "peen": "frog-wif-peen", + "frokai": "frokai", + "frok": "frok-ai", + "fronk": "fronk", + "fanx": "frontfanz-2", + "front": "frontier-token", + "frr": "front-row", + "fodo": "froodoo", + "frosty": "frosty-the-polar-bear", + "froyo": "froyo-games", + "frug": "frug", + "frts": "fruits", + "fdt": "frutti-dino", + "fsn": "fsn", + "fsc": "fsociety", + "ftails": "ftails", + "elite": "ftm-guru", + "f2c": "ftribe-fighters", + "fu": "fu-money", + "fuack": "fuack", + "fuec": "fuertecoin", + "fufu": "fufu-token", + "fjc": "fujicoin", + "fjt": "fujitoken", + "fuku": "fuku-kun", + "ful": "fulcrom", + "funded": "funded", + "foy": "fund-of-yours", + "fun": "hyperfun", + "fnf": "funfi", + "fungi": "fungi", + "fung": "fungify-token", + "fuc": "funny-coin", + "$fur": "furio", + "volt": "volt-win", + "fuse": "fuse-network-token", + "fusion": "fusionbot", + "future": "futurespl", + "fst": "futureswap", + "fto": "futurocoin", + "fuxe": "fuxion-labs", + "fuze": "fuze-token", + "fuzn": "fuzion", + "fuzz": "fuzz-finance", + "fwog": "fwog", + "fxi": "fx1sports", + "fx": "fx-coin", + "fxdx": "fxdx", + "fxn": "fxn-token", + "feth": "f-x-protocol-fractional-eth", + "fxusd": "f-x-protocol-fxusd", + "xeth": "particles-money-xeth", + "rusd": "fx-rusd", + "fxst": "fx-stock-token", + "trsy": "fyde-treasury", + "g": "g-token", + "g8c": "g8coin", + "noosum": "gabin-noosum", + "gaga": "gaga-pepe", + "ggr": "gagarin", + "gaia": "gaia-everworld", + "gmrx": "gaimin", + "gains": "gains", + "gns": "gains-network", + "gusdc": "geist-usdc", + "gain$": "gainspot", + "gaj": "gaj", + "gala": "gala", + "gan": "galactic-arena-the-nftverse", + "music": "gala-music", + "gal": "project-galaxy", + "gxa": "galaxia", + "glxia": "galaxiaverse", + "glx": "galaxify", + "galaxis": "galaxis-token", + "galaxy": "galaxycoin", + "gcoin": "galaxy-fight-club", + "gfox": "galaxy-fox", + "gwt": "galaxy-war", + "galeon": "galeon", + "ize": "galvan", + "g3": "gam3s-gg", + "gbe": "gambex", + "gambit": "gambit-capital", + "gtc": "global-trust-coin", + "g7": "game7", + "gboy": "gameboy", + "game": "sportsology-game", + "gach": "game-changer", + "gmex": "game-coin", + "gmee": "gamee", + "gfs": "gamefantasystar", + "gft": "gifto", + "gafi": "gamefi", + "gfn": "gamefinity", + "gfx": "gamyfi-token", + "flp": "gameflip", + "gamefork": "gamefork", + "duel": "gamegpt", + "gai": "goku-money-gai", + "gmto": "game-meteor-coin", + "games": "gaming-stars-2", + "gome": "game-of-memes", + "gmy": "gameology", + "gof": "golff", + "gpn": "gamepass-network", + "gplan": "gameplan", + "gmr": "gamer", + "gau": "gamer-arena", + "ghx": "gamercoin", + "lfg": "lotofomogrow", + "gc": "grabcoinclub", + "gfal": "games-for-a-living", + "gmpd": "gamespad", + "dgme": "gamestop-tokenized-stock-defichain", + "gswap": "gameswap-org", + "gswift": "gameswift", + "hip": "hippo-token", + "gtt": "game-tournament-trophy", + "gtcoin": "game-tree", + "gg": "reboot", + "gzone": "gamezone", + "gami": "gami-world", + "gia": "gamia", + "gmm": "gamium", + "gamma": "green-planet", + "gs": "genesis-shards", + "gncat": "gannamcat", + "gap": "gapcoin", + "garbage": "garbage", + "lasagna": "garffeldo", + "garfi": "garfi", + "gari": "gari-network", + "grlc": "garlicoin", + "gary": "gary", + "gas": "gas-dao", + "gasc": "gaschameleon", + "gsfy": "gasify-ai", + "gast": "gas-turbo", + "gt": "gatechain-token", + "gate": "gatenet", + "mars": "mars-protocol-a7fcbcfb-fd61-4017-92f0-7ee9f9cc6da3", + "gat": "gather-2", + "gatsby": "gatsby-inu-new", + "gauss": "gauss0x", + "gav": "gavcoin", + "gltr": "gax-liquidity-token-reward", + "gay": "gay", + "gaypepe": "gay-pepe", + "gfk": "gaziantep-fk-fan-token", + "gcc": "gccoin", + "gcr": "golden-celestial-ratio", + "gdrt": "gdrt", + "gea": "gear-2", + "gear": "near-tinker-union-gear", + "gec": "greenenvironmentalcoins", + "gecko": "gecko-meme", + "ggp": "gogopool", + "geeq": "geeq", + "gdai": "geist-dai", + "geth": "guarded-ether", + "gftm": "geist-ftm", + "gfusdt": "geist-fusdt", + "gwbtc": "geist-wbtc", + "geke": "geke", + "gekko": "gekko", + "gel": "gelato", + "gos": "gelios", + "gmac": "gemach", + "gemai": "the-next-gem-ai", + "gem": "opal-2", + "gxt": "gem-exchange-and-trading", + "gef": "gemflow", + "gems": "gemtools", + "ghub": "the-gamehub", + "gusd": "gusd-token-49eca0d2-b7ae-4a58-bef7-2310688658f2", + "glink": "gemlink", + "gemston": "gemston", + "zgem": "gemswap-2", + "genai": "genuine-ai", + "gnx": "genaro-network", + "gbsk": "genclerbirligi-fan-token", + "gen": "genesis-2", + "wealth": "generational-wealth-2", + "ineth": "genesislrt-restaked-eth", + "gut": "genesis-universe", + "genesis": "genesis-worlds", + "gsys": "genesys", + "shdw": "shadowswap-token", + "genie": "geniebot", + "gnp": "genie-protocol", + "geni": "genius", + "gnus": "genius-ai", + "gensx": "genius-x", + "gens": "genshiro", + "iux": "geniux", + "genix": "genix", + "geno": "genomefi", + "$gene": "genomesdao", + "genome": "genomesdao-genome", + "ki": "genopet-ki", + "gene": "genopets", + "sec": "side-eye-cat", + "mv": "gensokishis-metaverse", + "genz": "genz-token", + "geo": "geodb", + "geod": "iotube-bridged-geod-iotex", + "jam": "tune-fm", + "glt": "geoleaf-2", + "geo$": "geopoly", + "germain": "germain-le-lynx-mascot-ps", + "ger": "germany-coin", + "gero": "gerowallet", + "gerta": "gerta", + "geta": "getaverse", + "kicks": "getkicks", + "get": "get-token", + "geuro": "geuro", + "gysr": "geyser", + "gfp": "gfinancepay", + "ggmt": "gg-metagame", + "ggtk": "gg-token", + "ghost": "ic-ghost", + "gha": "ghast", + "ghsi": "ghislaine-network", + "gho": "gho", + "gdag": "ghostdag-org", + "boo": "spookyswap", + "gm": "good-morning-3", + "gif": "goatwifhat", + "ghsy": "ghosty", + "ghzli": "ghozali-404", + "gmmt": "giant-mammoth", + "$gib": "gib", + "gib": "gibape", + "gict": "gictrade", + "giddy": "giddy", + "giff": "giffordwear", + "ghd": "giftedhands", + "gigacat": "gigacat", + "gcat": "gigacat-2", + "giga": "gigaswap", + "gigachad": "gigachad-eth", + "$giga": "gigachadgpt", + "gtx": "global-trading-xenocurren", + "giggle": "giggle-academy", + "ched": "giggleched", + "giko": "giko-cat", + "glg": "gilgeous", + "ginger": "pedro-raccoon", + "ginnan": "ginnan-the-cat", + "ginoa": "ginoa", + "ginza": "ginza-network", + "lore": "gitopia", + "gbt": "give-back-token", + "gvst": "givestation", + "giv": "giveth", + "gizmo": "gizmo", + "dgld": "gld-tokenized-stock-defichain", + "gleec": "gleec-coin", + "gleek": "gleek", + "glend": "glend", + "gli": "gli", + "glide": "glide-finance", + "glitch": "glitch", + "glch": "glitch-protocol", + "gtn": "relictumpro-genesis-token", + "glizzy": "glizzy", + "bsty": "globalboost", + "gbgc": "global-business-group-corporation", + "gcz": "globalchainz", + "gcb": "global-commercial-business", + "gdcc": "global-digital-cluster-co", + "glft": "global-fan-token", + "gip": "global-innovation-platform", + "gsc": "global-social-chain", + "gvc": "global-virtual-coin", + "gdt": "gradient-protocol", + "gbex": "globiance-exchange", + "usdglo": "glo-dollar", + "gloom": "gloom", + "glorp": "glorp", + "glk": "glouki", + "glow": "glow-token-8fba1e9e-5643-47b4-8fef-d0eef67af854", + "glub": "glub", + "gmbl": "gmbl-computer-chip", + "gmcoin": "gmcoin-2", + "gmeow": "gmeow-hyperliquid", + "gmfam": "gmfam", + "gmichi": "gmichi", + "gomining": "gmt-token", + "gmusd": "gmusd", + "gmx": "gmx", + "gnb": "gnb", + "gnd": "gnd-protocol", + "gnft": "gnft", + "gnobby": "gnobby", + "$gnome": "gnome", + "gnome": "gnomeland", + "gnomy": "gnomy", + "gno": "linea-bridged-gno-linea", + "gny": "gny", + "sluglord": "g-o", + "zkusd": "goal3", + "goal": "topgoal", + "goat": "sonic-the-goat", + "gtf": "goatly-farm", + "goa": "goat-protocol", + "◨": "gob-is-gob-is-gob", + "goblintown": "goblintown", + "gobtc": "gobtc", + "gbx": "gobyte", + "go": "gochain", + "charged": "gocharge-tech", + "gochu": "gochujangcoin", + "gcme": "gocryptome", + "oooooo": "goddog", + "gode": "gode-chain", + "goe": "god-of-ethereum", + "gods": "gods-unchained", + "gdz": "godzi", + "godz": "godzilla", + "goeth": "goeth", + "gfy": "go-fu-k-yourself", + "ggt": "go-game-token", + "gol": "goledo-2", + "ggavax": "gogopool-ggavax", + "gogo": "gogowifcone", + "gttm": "going-to-the-moon", + "gojobsc": "gojo-bsc", + "goku": "gokuswap", + "golc": "golcoin", + "gold8": "gold8", + "goldcat": "gold-cat", + "glc": "goldcoin", + "gldgov": "gold-dao", + "glb": "golden-ball", + "gld": "goldencoin", + "gdoge": "golden-doge", + "golden": "golden-inu-token", + "gkappa": "golden-kappa", + "gpaws": "golden-paws", + "gldx": "goldex-token", + "gfi": "gravity-finance", + "gix": "goldfinx", + "gpo": "goldpesa-option", + "gdv": "goldverse-game-token", + "glm": "golem", + "gltm": "golteum", + "gomd": "gomdori", + "gomu": "gomu-gator", + "gondola": "gondola", + "gone": "gone", + "gnfty": "gonfty", + "gong": "gong", + "gooch": "gooch", + "boy": "good-boy", + "heel": "good-dog", + "$g": "gooddollar", + "ggg": "good-games-guild", + "genslr": "good-gensler", + "$goodle": "goodle", + "gmeme": "goodmeme", + "gofurs": "good-old-fashioned-un-registered-security", + "gpcx": "good-person-coin", + "goo": "silly-goose", + "goofy": "goofy-inu", + "dgoogl": "google-tokenized-stock-defichain", + "googly": "googly-cat", + "goon": "goon-2", + "gob": "goons-of-balatroon", + "goose": "goose", + "gofx": "goosefx", + "gora": "goracle-network", + "gorilla": "gorilla-finance", + "giac": "gorilla-in-a-coupe", + "gosh": "gosh", + "gotem": "gotem", + "gotg": "got-guaranteed", + "gotti": "gotti-token", + "gou": "gou", + "gum": "gourmetgalaxy", + "galgo": "governance-algo", + "gohm": "governance-ohm", + "gvec": "governance-vec", + "gzil": "governance-zil", + "gdao": "governor-dao", + "govi": "govi", + "gov": "subdao", + "gmat": "gowithmi", + "gwgw": "gowrap", + "artg": "goya-giant-token", + "goz": "goztepe-s-k-fan-token", + "xgp": "gp-coin", + "g360": "gpt360", + "gptplus": "gptplus", + "gpt": "qna3-ai", + "gptv": "gptverse", + "gpubot": "gpubot", + "gpuinu": "gpu-inu", + "gpul": "gpulabs", + "gpx": "grabpenny", + "gracy": "gracy", + "graf": "smoking-giraffe", + "grai": "grai", + "gram": "solgram", + "gramg": "gram-gold", + "gramp": "gram-platinum", + "grams": "gram-silver", + "gslam": "gramslams", + "grain": "granary", + "gb": "grand-base", + "grape": "the-grapes-grape-coin", + "grp": "grape-2-2", + "gp": "nexus-asa", + "glq": "graphlinq-protocol", + "grass": "grass", + "grve": "grave", + "gio": "graviocoin", + "gravitas": "gravitas", + "grav": "graviton", + "gtron": "gravitron", + "gcx": "greasycex", + "gbd": "great-bounty-dealer", + "$grl": "greelance", + "gac": "greenart-coin", + "grbe": "green-beli", + "eben": "green-ben", + "gbtc": "growthdefi-gbtc", + "ged": "greendex", + "gnc": "greenercoin", + "ggc": "green-god-candle", + "$greengold": "greengold", + "$ggh": "green-grass-hopper", + "grnl": "greenlers", + "gle": "green-life-energy", + "gst-sol": "green-satoshi-token", + "gst-bsc": "green-satoshi-token-bsc", + "gst-eth": "green-satoshi-token-on-eth", + "ginux": "green-shiba-inu", + "gnt": "greentrust", + "gvr": "green-vs-redd", + "grwv": "greenwaves-2", + "gzx": "greenzonex", + "greg": "greg16676935420", + "grelf": "grelf", + "grc": "gridcoin-research", + "grim": "grimreaper", + "grin": "grin", + "gringo": "gringo", + "ghny": "grizzly-honey", + "grs": "groestlcoin", + "grok1.5": "grok1-5", + "$grok": "grok-2", + "grok2.0": "grok2-0", + "xai": "xai-corp", + "grokbank": "grok-bank", + "grokboy": "grokboy", + "grōk": "grok-by-grok-com", + "grokcat": "grok-cat", + "grokceo": "grok-ceo", + "gdx": "grokdogex", + "gelo": "grok-elo", + "grokgirl": "grok-girl", + "grokheroes": "grok-heroes", + "grokinu": "grok-inu", + "grokmoon": "grok-moon", + "grokqueen": "grok-queen", + "groktether": "groktether", + "gr": "grom", + "groove": "groove", + "groq": "groq", + "grv": "grove", + "gburn": "grovecoin-gburn", + "grw": "growsol", + "gro": "growth", + "groyper": "groyper", + "grug": "grug", + "grump": "grumpie", + "gse": "gsenetwork", + "gst": "gstcoin", + "gtai": "gt-protocol", + "gtrok": "gtrok", + "gua": "gua", + "guac": "guacamole", + "guap": "guapcoin", + "tee": "guarantee", + "guardai": "guardai", + "gobal": "guardians-of-the-ball", + "guard": "guardian-token", + "godex": "guard-of-decent", + "guccipepe": "guccipepe", + "guess": "guessonchain", + "gugu": "gugu", + "gui": "gui-inu", + "gf": "guildfi", + "gog": "guild-of-guardians", + "gulf": "gulfcoin-2", + "gummy": "gummy", + "gsts": "gunstar-metaverse", + "gurs": "gursonavax", + "guru": "guru-network", + "gus": "gus", + "guufy": "guufy", + "hole": "guys", + "gzlr": "guzzler", + "gxc": "gxchain", + "gyen": "gyen", + "gymnet": "gym-network", + "gyoshi": "gyoshi", + "gyoza": "gyoza", + "gyr": "gyre-token", + "gyfi": "gyroscope", + "gyd": "gyroscope-gyd", + "gw": "gyrowin", + "$h2": "h2", + "yfih2": "h2finance", + "h2o": "h2o-dao", + "h2on": "h2o-securities", + "habbo": "habbolana", + "habi": "habi", + "habibi": "habibi-sol", + "hac": "planet-hares", + "hacd": "hacash-diamond", + "hachi": "hachi-kun", + "hachiko": "hachiko-2", + "haki": "hachiko-era", + "inu": "inu-token-63736428-0d5c-4281-8038-3e62c35ac278", + "$hack": "hack", + "hai": "let-s-get-hai", + "hades": "hades-network", + "hasui": "haedal-staked-sui", + "haggord": "haggord", + "haha": "mother-of-memes-2", + "rizo": "rizo", + "haiperai": "haiperai", + "hair": "hairdao", + "hairy": "hairy-the-bene", + "hakka": "hakka-finance", + "haku": "hakuswap", + "hal": "halcyon", + "pe": "pe", + "piza": "pizza-cat", + "shib0.5": "half-shiba-inu", + "halo": "halonft-art", + "ho": "halo-network", + "halving": "halving", + "halvi": "halvi-solana", + "hami": "hamachi-finance", + "$hami": "hami", + "hust": "hamilton-ust", + "hammy": "sad-hamster", + "ham": "hamster", + "groomer": "hamster-groomers", + "hmstr": "hamster-kombat", + "hams": "hamsters", + "hana": "hana", + "han": "hanchain", + "forex": "handle-fi", + "hns": "handshake", + "handy": "handy", + "handz": "handz-of-gods", + "hanep": "haneplatform", + "hank": "hank", + "hut": "hibiki-run", + "hanu": "hanu-yokia", + "hapi": "hapi", + "happi": "happi-cat", + "smileai": "happyai", + "hbdc": "happy-birthday-coin", + "happy": "happyfans", + "hpc": "happy-puppy-club", + "$haram": "haram", + "harambe": "harambecoin", + "harambeai": "harambe-ai", + "hart": "hara-token", + "harbor": "harbor-2", + "hbr": "harbor-3", + "nick": "i-choose-rich-everytime", + "hare": "hare-token", + "quins": "harlequins-fan-token", + "one": "onetokenburn", + "1eth": "harmony-horizon-bridged-ceth-harmony-shard-0", + "harold": "harold", + "hrld": "haroldcoin", + "ethereum": "voldemorttrumprobotnik-10neko", + "hashai": "hashai", + "hbit": "hashbit-2", + "hsc": "hashcoin", + "hft": "hodl-finance", + "gard": "hashgard", + "hsk": "hashkey-ecopoints", + "hash": "hashpower-ai", + "pack": "hashpack", + "hpad": "hashpad-2", + "panda": "panda-swap", + "link[hts]": "hashport-bridged-link", + "qnt[hts]": "hashport-bridged-qnt", + "wavax[hts]": "hashport-bridged-wavax", + "mooo": "hashtagger", + "hashtag": "hashtag-united-fan-token", + "0xvox": "hashvox-ai", + "hat": "joe-hat-token", + "hatchy": "hatchypocket", + "htr": "hathor", + "htm": "hatom", + "hava": "hava-coin", + "hvh": "havah", + "hf": "have-fun-598a6209-8136-4282-a14c-1f2b2b5d0c26", + "xhv": "haven", + "h1": "haven1", + "cmps": "haven-s-compass", + "havoc": "havoc", + "snx": "havven", + "hawex": "hawex", + "hawk": "hawksight", + "hawktuah": "hawk-tuah", + "hay": "haycoin", + "hazel": "hazel", + "hbarbarian": "hbarbarian", + "hbarx": "hbarx", + "oki": "hdoki", + "hdl": "headline", + "hst": "headstarter", + "hewe": "health-and-wealth", + "hmd": "healthmedi", + "hnx": "heartx-utility-token", + "hto": "heavenland-hto", + "hebe": "hebeblock", + "hect": "hectic-turkey", + "hec": "heroeschained", + "hbar": "hedera-hashgraph", + "hlqt": "hedera-liquity", + "hchf": "hedera-swiss-franc", + "hedge": "hedge-on-sol", + "hedgehog": "hedgehog", + "hif": "hedgehog-in-the-fog", + "hpay": "hedgepay", + "hget": "hedget", + "hedg": "hedgetrade", + "ush": "unsheth", + "hdrn": "hedron", + "heehee": "heeeheee", + "hefe": "hefe", + "hefi": "hefi", + "$hege": "hege", + "hegic": "hegic", + "yvhegic": "hegic-yvault", + "hehe": "hehecat", + "hela": "hela", + "hlusd": "hela-usd", + "helga": "helga-inu", + "heli": "heliswap", + "copter": "helicopter-finance", + "hd": "heli-doge", + "lisusd": "helio-protocol-hay", + "hlx": "helios", + "usdc[hts]": "heliswap-bridged-usdc-hts", + "hnt": "helium", + "iot": "iotec-finance", + "mobile": "helium-mobile", + "hsol": "helius-staked-sol", + "hel": "hellar", + "hnc": "hot-n-cold-finance", + "htt": "hello-art", + "hello": "hello-labs", + "helmet": "helmet-insure", + "hkc": "helpkidz-coin", + "hem": "hemera", + "hms": "hemis", + "thc": "transhuman-coin", + "hemule": "hemule", + "hptf": "heptafranc", + "hte": "hepton", + "hera": "hero-arena", + "herb": "herbcoin", + "hmx": "hmx", + "hermes": "hermes-protocol", + "hez": "hermez-network-token", + "mudol2": "hero-blaze-three-kingdoms", + "he": "heroes-empires", + "mavia": "heroes-of-mavia", + "hon": "soul-society", + "htd": "heroes-td", + "rofi": "herofi-token-2", + "hero": "step-hero", + "hex": "pulsechain-bridged-hex-pulsechain", + "hexdc": "hex-dollar-coin", + "hoa": "hex-orange-address", + "usdx": "usdx-money-usdx", + "a2e": "heyflokiai", + "hibeanz": "hibeanz", + "hibs": "hiblocks", + "hi": "hi-dollar", + "hidoodles": "hidoodles", + "hiens3": "hiens3", + "hiens4": "hiens4", + "hifi": "hifi-finance", + "hifriends": "hifriends", + "high": "highstreet", + "higher": "my-pronouns-are-high-er", + "noon": "highnoon", + "hpb": "high-performance-blockchain", + "hyeth": "high-yield-eth-index", + "hyusd": "high-yield-usd-base", + "hikari": "hikari-protocol", + "hsf": "hillstone", + "hilo": "hilo-2", + "him": "human-intelligence-machin", + "himoonbirds": "himoonbirds", + "himo": "himo-world", + "hipenguins": "hipenguins", + "hpo": "humanscape", + "hton": "hipo-staked-ton", + "hrt": "hiro", + "hiseals": "hiseals", + "hta": "historia", + "hao": "historydao", + "hope": "hope-2", + "hit": "hitchain", + "hmkr": "hitmakr", + "hmu": "hit-meeee-upp", + "hive": "solhive", + "hbd": "hive_dollar", + "hgt": "hive-game-token", + "honey": "hivemapper", + "hny": "honey", + "hivp": "hiveswap", + "hvn": "hiveterminal", + "hivewater": "hivewater", + "hkava": "hkava", + "hmm": "hmmonsol", + "hnb": "hnb-protocol", + "hoc": "hocus-pocus-finance", + "hodl": "hold-on-for-dear-life-hodl", + "hod": "hodooi-com", + "hog": "hog", + "hoichi": "hoichi", + "$hokk": "hokkaido-inu", + "hoka": "hokkaido-inu-30bdfab6-dfb9-4fc0-b3c3-02bffe162ee4", + "hinu": "hokkaido-inu-token", + "doken": "hokkaido-ken", + "hokk": "hokkaidu-inu", + "hola": "hola", + "hfun": "hypurr-fun", + "hm": "horizon-blockchain", + "hldr": "holdr", + "hsusdc": "holdstation-usd-coin", + "ugold": "ugold-inc", + "hgold": "hollygold", + "hlg": "holograph", + "ride": "holoride", + "hot": "holotoken", + "hly": "holygrail", + "holy": "holygrails-io", + "hom": "hom", + "hts": "home3", + "simpson": "homer", + "homie": "homie", + "homiecoin": "homie-wars", + "hnst": "honest-mining", + "hoba": "honey-badger-2", + "hxd": "honeyland-honey", + "hkd": "hongkongdao", + "honkler": "honkler", + "hrm": "honorarium", + "hwt": "honor-world-token", + "hook": "hooked-protocol", + "hoops": "hoops", + "htn": "hoosat-network", + "hoot": "hootchain", + "hopper": "hopper-the-rabbit", + "hop": "hop-protocol", + "hoppy": "hoppy-token", + "hopr": "hopr", + "hord": "hord", + "hzn": "horizon-protocol", + "hrzn": "horizon-3", + "hornt": "hornt", + "$hrx": "horuslayer", + "hosky": "hosky", + "hostai": "host-ai", + "boxy": "hot-boxy", + "hotcross": "hot-cross", + "hotdoge": "hot-doge", + "htl": "hotelium", + "hotkey": "hotkeyswap", + "hotmoon": "hotmoon", + "hottie": "hottie-froggie", + "lock": "houdini-swap", + "wait": "hourglass", + "hgp": "hourglass-protocol", + "house": "house", + "hou": "houston-token", + "hov": "hover", + "howdy": "howdysol", + "how": "howinu", + "hwl": "howl-city", + "puff": "puff-the-dragon", + "tether": "hpohs888inu", + "hc": "hshare", + "hsuite": "hsuite", + "htx": "htx-dao", + "hbb": "hubble", + "swirlx": "hubswirl", + "finn": "huckleberry", + "hudi": "hudi", + "hug": "hug", + "huge": "hugewin", + "hghg": "hughug-coin", + "huhcat": "huh-cat", + "huhu": "huhu-cat", + "hulvin": "hulvin", + "huma": "huma-finance", + "hdao": "hyperdao", + "hmq": "humaniq", + "dply": "humanity-protocol-dply", + "$hmt": "humanize", + "hmnd": "humanode", + "hmt": "human-protocol", + "heart": "humans-ai", + "hcfw": "humanscarefoundationwater", + "hmng": "hummingbird-finance-2", + "hbot": "hummingbot", + "hum": "hummus", + "hump": "hump", + "hund": "hund", + "hundred": "hundred", + "hnd": "hundred-finance", + "hvi": "hungarian-vizsla-inu", + "hntr": "hunter", + "laptop": "hunter-biden-s-laptop", + "huntboden": "hunter-boden", + "hbtc": "huobi-btc-wormhole", + "ht": "huobi-token", + "lya": "huralya", + "hct": "hurricaneswap-token", + "husby": "husby", + "husd": "husd", + "hush": "hush", + "$husky": "husky-2", + "hus": "husky-ai", + "husky": "husky-avax", + "hxa": "hxacoin", + "hxro": "hxro", + "hydra": "tonhydra", + "hdx": "hydradx", + "hdn": "hydranet", + "hdv": "hydraverse", + "hdro": "hydro-protocol-2", + "hinj": "hydro-staked-inj", + "hydt": "hydt-protocol-hydt", + "hyc": "hyena-coin", + "hygt": "hygt", + "hyme": "hyme", + "hmtt": "hype-meme-token", + "hyper": "hyperchainx", + "hbt": "hyperbc", + "hype": "superrarebears-hype", + "hyco": "hypercomic", + "hypc": "hypercycle", + "hypt": "hyperdust", + "hgpt": "hypergpt", + "hyperai": "hyperhash-ai", + "hpy": "hyper-pay", + "pill": "hyperpill", + "hq": "hyperquant-2", + "hid": "hypersign-identity-token", + "hyp": "hypra", + "rupee": "hyruleswap", + "topia": "hytopia", + "hyve": "hyve", + "$agnt": "iagent-protocol", + "iag": "iagon", + "iamx": "iamx", + "iazuki": "iazuki", + "ibcx": "ibc-index", + "ibg": "ibg-token", + "ibh": "ibithub", + "ibs": "ibs", + "ibtc": "interbtc", + "bfr": "ibuffer-token", + "vel": "icarus-m-guild-war-velzeroth", + "wcore": "wrapped-core", + "iceland": "ice-land-on-eth", + "ichi": "legacy-ichi", + "icl": "ironclad-token", + "icom": "icommunity", + "icx": "ic-x", + "icnx": "icon-x-world", + "icsa": "icosa-eth", + "icpi": "icpi", + "ics": "icpswap-token", + "icpx": "icrypex-token", + "ict": "ictech", + "ic": "icy", + "icy": "icycro", + "idv": "idavoll-network", + "io": "io", + "idea": "ideaology", + "idyp": "idefiyieldprotocol", + "idna": "idena", + "ide": "ide-x-ai", + "ido": "interstellar-domain-order", + "idia": "idia", + "idle": "idle", + "idledaisafe": "idle-dai-risk-adjusted", + "idledaiyield": "idle-dai-yield", + "idlesusdyield": "idle-susd-yield", + "idletusdyield": "idle-tusd-yield", + "idleusdcsafe": "idle-usdc-risk-adjusted", + "idleusdcyield": "idle-usdc-yield", + "idleusdtsafe": "idle-usdt-risk-adjusted", + "idleusdtyield": "idle-usdt-yield", + "idlewbtcyield": "idle-wbtc-yield", + "idk": "i-dont-know", + "idoodles": "idoodles", + "idrx": "idrx", + "rlc": "iexec-rlc", + "ifarm": "ifarm", + "ifc": "infinitecoin", + "ignis": "ignis", + "fbtc": "ignition-fbtc", + "4token": "ignore-fud", + "igup": "iguverse", + "igu": "iguverse-igu", + "ihf": "ihf-smart-debase-token", + "iht": "iht-real-estate-protocol", + "ily": "iiii-lovvv-youuuu", + "ijc": "ijascoin", + "ikigai": "ikigai", + "capo": "ilcapo", + "ilc": "ilcoin", + "milk": "udder-chaos-milk", + "ilum": "illuminati", + "nati": "illuminaticoin", + "ix": "illuminex", + "illusion": "illusion", + "ilv": "illuvium", + "puppies": "i-love-puppies", + "lovesnoopy": "i-love-snoopy", + "bubble": "imaginary-ones", + "imagine": "imagine", + "imaro": "imaro", + "imayc": "imayc", + "lime": "lime-cat", + "imgnai": "imgnai", + "immo": "immortaldao", + "dara": "immutable", + "imx": "immutable-x", + "notket": "im-not-a-ket", + "imo": "imonster", + "imt": "imov", + "pact": "impactmarket-2", + "ime": "imperium-empires", + "ibex": "impermax-2", + "impls": "impls-finance", + "if": "impossible-finance", + "impt": "impt", + "inbred": "inbred-cat", + "incept": "incept", + "insfrxeth": "inceptionlrt-sfrxet", + "inlseth": "inception-restaked-lseth", + "inmeth": "inception-restaked-meth", + "inoseth": "inception-restaked-oseth", + "insteth": "inception-restaked-steth", + "insweth": "inception-restaked-sweth", + "inci": "inci-token", + "incr": "increment", + "iai": "inheritance-art", + "ixad": "index-avalanche-defi", + "btc2x": "index-coop-bitcoin-2x-index", + "cdeti": "index-coop-coindesk-eth-trend-index", + "index": "index-cooperative", + "eth2x-fli-p": "index-coop-eth-2x-flexible-leverage-index", + "eth2x": "index-coop-ethereum-2x-index", + "matic2x-fli-p": "index-coop-matic-2x-flexible-leverage-index", + "ndx": "indexed-finance", + "icc": "indian-call-center", + "indshib": "indian-shiba-inu", + "ictn": "indicaton", + "indi": "indigg", + "kcash": "indigg-kratos-cash", + "indy": "indigo-dao-governance-token", + "ieth": "instadapp-eth", + "$inr": "inery", + "inf": "socean-staked-sol", + "monie": "infiblue-world", + "infc": "infinect", + "infi": "infinite-2", + "inftee": "infinitee", + "torr": "infinitorr", + "ing": "influpia", + "ibit": "infinitybit-token", + "iex": "infinity-exchange", + "ipad": "infinity-pad-2", + "irt": "infinity-rocket-token", + "isky": "infinity-skies", + "ihc": "inflation-hedging-coin", + "ins": "insect", + "init": "initia", + "ikings": "injective-kings", + "$ipepe": "injective-pepes", + "inj": "injective-protocol", + "qunt": "injective-quants", + "injx": "injex-finance", + "ink": "ink-fantom", + "quill": "ink-finance", + "$trust": "in-memes-we-trust", + "inn": "innova", + "ino": "innovai", + "innbc": "innovative-bioresearch", + "inva": "innoviatrust", + "inovai": "inovai", + "ipwt": "in-pepe-we-trust", + "ipx": "ipx-token", + "labz": "insane-labz", + "insc": "insc", + "icda": "inscription-dao", + "instar": "insights-network", + "inx": "inx-token-2", + "insolvent": "insolvent", + "$insora": "insora-ai", + "insp": "inspire-ai", + "$insrt": "insrt-finance", + "xusdt": "wanchain-bridged-usdt-xdc-network", + "inst": "instadapp", + "idai": "instadapp-dai", + "ieth v2": "instadapp-eth-v2", + "iusdc": "instadapp-usdc", + "iwbtc": "instadapp-wbtc", + "isla": "insula", + "insur": "insurace", + "sure": "insure", + "ixt": "ix-token", + "itgr": "integral", + "teer": "integritee", + "ioc": "intelligence-on-chain", + "inqu": "intelliquant", + "isec": "intellisecure-systems", + "itx": "itronix", + "intl": "intelly", + "intx": "intexcoin", + "ibeth": "interest-bearing-eth", + "iceth": "interest-compounding-eth-index", + "🐒": "intergalactic", + "intr": "interlay", + "ilock": "interlock", + "inter": "inter-milan-fan-token", + "isc": "international-stable-currency", + "net": "netsis", + "icp": "internet-computer", + "idoge": "internet-doge", + "im": "internet-money-bsc", + "ioen": "internet-of-energy-network", + "int": "intrepid-token", + "intern": "interns", + "inxt": "internxt", + "itp": "interport-token", + "ist": "inter-stable-token", + "tox": "trollbox", + "inuinu": "inu-inu", + "inuko": "inuko-finance", + "iethv": "inverse-ethereum-volatility-index-token", + "inv": "inverse-finance", + "ivn": "investin", + "in": "investive", + "ivfun": "invest-zone", + "kieth": "invisible-cat", + "invite": "invite-token", + "iobusd": "iobusd", + "ioeth": "ioeth", + "ioi": "ioi-token", + "iol": "iolend", + "ion": "ziyon", + "inp": "ionic-pocket-token", + "ionusdt": "ionic-tether-usd", + "ionusdc": "ionic-usd-coin", + "iost": "iostoken", + "iota": "iota", + "tex": "iotexpad", + "ioshib": "iotexshiba", + "wifi": "wifi", + "wnt": "wicrypt", + "xnet": "xnet-mobile-2", + "iousdc": "iousdc", + "iousdt": "iousdt", + "iowbtc": "iowbtc", + "iown": "iown", + "ipmb": "ipmb", + "ipor": "ipor", + "ipv": "ipverse", + "iq50": "iq50", + "iqt": "iqt-token", + "irena": "irena-green-energy", + "ird": "iridium", + "iristoken": "iris-ecosystem", + "iris": "iris-token-2", + "iro": "iro-chan", + "ib": "iron-bank", + "ibeur": "iron-bank-euro", + "iron": "iron-stablecoin", + "titan": "titanswap", + "iryde": "iryde", + "iset-84e55e": "isengard-nft-marketplace", + "durth": "ishares-msci-world-etf-tokenized-stock-defichain", + "ishi": "ishi", + "ishib": "ishib", + "shk": "ishook", + "isikc": "isiklar-coin", + "isk": "iskra-token", + "islm": "islamic-coin", + "islami": "islamicoin", + "isa": "islander", + "isp": "ispolink", + "issp": "issp", + "ibfk": "istanbul-basaksehir-fan-token", + "iwft": "istanbul-wild-cats-fan-token", + "istep": "istep", + "ita": "italian-national-football-team-fan-token", + "itam": "itam-games", + "itc": "itc", + "item": "itemverse", + "itheum": "itheum", + "$ito": "ito", + "shrimple": "its-as-shrimple-as-that", + "itsb": "itsbloc", + "rock": "rockswap", + "over": "overprotocol", + "iucn": "iucn-coin", + "iusd": "izumi-bond-usd", + "ius": "iustitia-coin", + "ivpay": "ivendpay", + "ivex": "ivex", + "ivip": "ivipcoin", + "ivy": "ivy-live", + "shit": "shitcoin-on-ton", + "ixc": "ixcoin", + "ixi": "ixicash", + "ixir": "ixirswap", + "ixo": "ixo", + "ixs": "ix-swap", + "iykyk": "iykyk", + "izi": "izumi-finance", + "izzy": "izzy", + "jab": "jable", + "jace": "jace", + "jkl": "jackal-protocol", + "jbot": "jackbot", + "jfi": "jackpool-finance", + "jackpot": "jackpot-on-solana", + "$jacky": "jacky", + "jacy": "jacy", + "jade": "jaderoll", + "jaiho": "jaiho-crypto", + "jail": "jail", + "cuff": "jail-cat", + "jne": "jake-newman-enterprises", + "jala": "jalapeno-finance", + "jani": "jani", + "janny": "janny", + "japan": "japan-coin", + "jarvis": "jarvis-2", + "jrt": "jarvis-reward-token", + "jeur": "jarvis-synthetic-euro", + "jchf": "jarvis-synthetic-swiss-franc", + "jsm": "jaseonmun", + "fjlt-f24": "jasmine-forwards-voluntary-rec-front-half-2024-liquidity-token", + "jasmy": "jasmycoin", + "jason": "jason-sol", + "polluk": "jasse-polluk", + "meelay": "javor-meelay", + "jav": "javsphere", + "wjxn": "jax-network", + "jay": "jaypegggers", + "jcc": "jc-coin", + "jdc": "jd-coin", + "$jeet": "jeeter-on-solana", + "jefe": "jefe-2", + "jeff": "jeffworld-token", + "jj": "jjmoji-2", + "jelli": "jelli", + "jfish": "jellyfish-mobile", + "jly": "jellyverse", + "jen": "jen-coin", + "jhh": "jen-hsun-huang", + "jco": "jennyco", + "jensen": "jensen-huang-meme", + "boden": "jeo-boden", + "jerry": "jerry-inu", + "jwif": "jerrywifhat", + "jest": "jester", + "jesus": "jesus-on-sol", + "jet": "sathosi-airlines-token", + "jetcat": "jetcat", + "jts": "jetset", + "jetton": "jetton", + "jex": "jexchange", + "jfin": "jfin-coin", + "jigen": "jigen-2", + "stak": "jigstack", + "jillboden": "jill-boden", + "jimmy": "jimmy-on-solana", + "jind": "jindo-inu", + "jinko": "jinko-ai", + "jto": "jito-governance-token", + "jitosol": "jito-staked-sol", + "jizz": "jizzrocket", + "jk": "jk-coin", + "job": "jobchain", + "joe": "joe-coin", + "jeoing737": "joeing737", + "joel": "joel", + "jyc": "joe-yo-coin", + "jogeco": "jogeco-dog", + "jdoge": "john-doge", + "pork": "pork", + "john": "john-the-coin", + "jdt": "johor-darul-ta-zim-fc", + "jlt": "join-learn-and-thrive-token", + "jojo": "jojo-2", + "joker": "the-joker-coin", + "jok": "jokinthebox", + "jolt": "joltify", + "jonah": "jonah", + "$jones": "jones", + "jones": "jones-dao", + "jglp": "jones-glp", + "jfive": "jonny-five", + "joops": "joops", + "poowel": "joram-poowel", + "jose": "jose", + "josh": "josh", + "joule": "joule-2", + "jart": "journart", + "jovjou": "jovjou", + "jp": "jp", + "jpeg": "jpeg-d", + "jpgd": "jpeg-d-2", + "jpgc": "jpgoldcoin", + "jpg": "jpg-store", + "jsol": "jpool", + "jpyc": "jpy-coin", + "jtc": "jtc-network", + "judge": "judge-ai", + "jmtai": "judgment-ai", + "jgn": "juggernaut", + "jugni": "jugni", + "$juice": "juice", + "juc": "juice-2", + "jbx": "juicebox", + "juice": "juice-finance", + "jsp": "juicybet", + "jucysol": "juicy-staked-sol", + "jujube": "jujube", + "juld": "julswap", + "jumbo": "jumbo-exchange", + "jum": "jumoney", + "jmpt": "jumptoken", + "jungle": "jungledoge", + "jngl": "jungle-labz", + "junior": "junior", + "juno": "juno-network", + "jupbot": "jupbot", + "jup": "jupiter-exchange-solana", + "jlp": "jupiter-perpetuals-liquidity-provider-token", + "jupsol": "jupiter-staked-sol", + "jupu": "jupu", + "ju": "ju-rugan", + "jusd": "jusd", + "jst": "just", + "rocco": "just-a-rock", + "jm": "justmoney-2", + "usdj": "just-stablecoin", + "jtt": "justus", + "juv": "juventus-fan-token", + "jvt": "jvault-token", + "k21": "k21", + "knine": "k9-finance-dao", + "karcon": "kaarigar-connect", + "kabal": "kabal", + "kabo": "kabochan", + "kabosu": "kabosu-on-sol", + "$kabosu": "kabosu-3", + "kbc": "kibho-coin", + "kaby": "kaby-arena", + "kch": "kaching", + "kda": "kadena", + "kaeru": "kaeru-the-frog", + "kfn": "kafenio-coin", + "kage": "kage-network", + "kai": "kreaitor", + "klay": "klay-token", + "kdx": "kaidex", + "kaf": "kaif", + "kaiju": "kaijuno8", + "kzen": "kaizen", + "kaka": "kaka-nft-world", + "kakaxa": "kakaxa", + "kala": "kalax", + "klo": "kalao", + "$kalei": "kaleidocube", + "kalis": "kalichain", + "kalm": "kalmar", + "kama": "kamala-horris", + "kat": "karat", + "kmno": "kamino", + "kampay": "kampay", + "kan": "kan", + "okinami": "kanagawa-nami", + "kana": "kanaloa-network", + "kng": "kanga-exchange", + "kangal": "kangal", + "kang": "kangamoon", + "$roo": "kangaroo-the-jumping-co-in", + "ye": "mr-west", + "kaoya": "kaoya", + "kapi": "kapi-plara", + "kap": "kapital-dao", + "intellique": "karasou", + "umy": "karastar-umy", + "kcat": "karatecat", + "karate": "karate-combat", + "krb": "karbo", + "karen": "karen-hates-you", + "kls": "karlsen", + "karma": "sora-chameleon", + "knot": "karmaverse", + "karrat": "karrat", + "ksk": "karsiyaka-taraftar-token", + "kar": "karura", + "kas": "wrapped-kaspa", + "kmn": "kaspamining", + "kacy": "kassandra", + "kasta": "kasta", + "kata": "katana-inu", + "katchu": "katchusol", + "ktn": "kattana", + "katt": "katt-daddy", + "kava": "kava", + "hard": "kava-lend", + "swp": "sprint-2", + "kwt": "kawaii-islands", + "kcal": "kcal", + "kccpad": "kccpad", + "kdag": "kdag", + "kdl": "kdlaunch", + "kds": "kdswap", + "kebabs": "kebapp", + "kp3r": "keep3rv1", + "keep": "keep-network", + "kei": "kei-finance", + "keko": "keko", + "kelp": "kelp-dao", + "rseth": "layerzero-bridged-rseth-linea", + "kep": "kelp-earned-points", + "ageth": "kelp-gain", + "kel": "kelvpn", + "ken": "kohenoor", + "knda": "kenda", + "kendu": "kendu-inu", + "kenka": "kenka-metaverse", + "kns": "kenshi-2", + "knto": "kento", + "kpl": "kepple", + "kept": "keptchain", + "kerc": "kerc", + "keren": "keren", + "kermit": "kermit-cc0e2d66-4b46-4eaf-9f4e-5caa883d1c09", + "kern": "kernel", + "kreth": "kernel-restaked-eth", + "kseth": "kernel-staked-eth", + "kusd": "kolibri-usd", + "kerosene": "kerosene", + "ketamine": "ketamine", + "kevin": "kevin-2", + "kwl": "kewl-exchange", + "keycat": "keyboard-cat-base", + "$keydog": "keydog", + "keyfi": "keyfi", + "kol": "kollectiv", + "keysatin": "keysatin", + "keys": "keys-token", + "xki": "ki", + "kiba": "kiba-inu", + "kibble": "kibble", + "kib": "kibbleswap", + "kibshi": "kiboshib", + "kick": "kick", + "kpad": "kickpad", + "kiiro": "kiirocoin", + "kiki": "kiki-sol", + "lop": "kilopi-8ee65670-efa5-4414-b9b4-1a1240415d74", + "kilt": "kilt-protocol", + "kimbo": "kimbo", + "kimchi": "kimchi-finance", + "kim": "kim-token", + "kin": "kin", + "kgb": "kind-guardians-of-blockchain-protocol", + "soul": "soul-swap", + "knd": "kindred", + "knk": "kineko-knk", + "kine": "kine-protocol", + "kau": "kinesis-gold", + "kag": "kinesis-silver", + "kru": "kingaru", + "kingbonk": "king-bonk", + "kingcat": "king-cat", + "kdg": "kingdom-game-4-0", + "kkt": "kingdom-karnage", + "antc": "kingdom-of-ants-ant-coins", + "kt": "kingdomx", + "kfr": "king-forever", + "kinggrok": "king-grok", + "koe": "king-of-evolution", + "lion": "lion-token", + "kingshib": "king-shiba", + "kingshit": "kingshit", + "ksg": "king-sugar-glider", + "kingwif": "king-wif", + "kingy": "kingyton", + "kini": "kini", + "xnk": "kinka", + "kint": "kintsugi", + "kbtc": "kintsugi-btc", + "kira": "kira-the-injective-cat", + "kex": "kira-network", + "kiro": "kirobo", + "kitup": "kiseki", + "kishu": "kishu-inu", + "kishk": "kishu-ken", + "ksn": "kissan", + "kite": "kite", + "kiteai": "kiteai", + "gil": "kith-gil", + "$kmc": "kitsumon", + "kif": "kittenfinance", + "khai": "kitten-haimer", + "kittenwif": "kittenwifhat", + "kitti": "kitti", + "kitty": "roaring-kitty-solana", + "kcake": "kittycake", + "ktr": "kitty-run", + "kwh": "kittywifhat", + "kivr": "kiverse-token", + "kiwi": "kiwi-token-2", + "kizuna": "kizuna", + "klap": "klap-finance", + "orb": "orb", + "dice": "klaydice", + "kfi": "klever-finance", + "kly": "klayr", + "ksp": "klayswap-protocol", + "kdai": "klaytn-dai", + "ktu": "klaytu", + "klee": "kleekai", + "pnk": "kleros", + "kleva": "kleva", + "klv": "klever", + "kid": "kleverkid-coin", + "klima": "klima-dao", + "klub": "klubcoin", + "ktv": "kmushicoin", + "kws": "knight-war-spirits", + "kft": "knit-finance", + "knob": "knob", + "knox": "knox-dollar", + "koko": "kokodi", + "kstt": "kocaelispor-fan-token", + "kochi": "kochi-ken-eth", + "koda": "koda-finance", + "kogecoin": "kogecoin", + "kohler": "kohler", + "koi": "koi-3", + "koai": "koi-4", + "kbt": "koinbay-token", + "koji": "koji", + "kok": "kok", + "kokoa": "kokoa-finance", + "ksd": "kokoa-stable-dollar", + "kolana": "kolana", + "kltr": "kollector", + "$kolt": "kolt", + "koma": "komari", + "kom": "kommunitas", + "kmd": "komodo", + "kompete": "kompete", + "kndx": "kondux-v2", + "konet": "konet", + "kong": "ton-kong", + "konke": "konke", + "kct": "konnect", + "kpn": "konnektvpn", + "kono": "konomi-network", + "kon": "konpay", + "kooky": "kooky", + "korra": "korra", + "kora": "kortana", + "kot": "kotia", + "kbk": "koubek", + "kto": "kounotori", + "kovin": "kovin-segnocchi", + "kyo": "koyo", + "koy": "koyo-6e93c7c7-03a3-4475-86a1-f0bc80ee09d6", + "kozue": "kozue", + "kpc": "k-pop-click-coin", + "kpop": "k-pop-on-solana", + "kratom": "kratom", + "krav": "krav", + "krazy": "krazy-n-d", + "krees": "krees", + "krest": "krest", + "krida": "krida-fans", + "kripto": "kripto", + "kro": "kroma", + "krom": "kromatika", + "knb": "kronobit", + "krw": "krown", + "krl": "kryll", + "xkr": "kryptokrona", + "kmon": "kryptomon", + "krd": "krypton-dao", + "seilor": "kryptonite", + "stsei": "kryptonite-staked-sei", + "kgc": "krypton-token", + "kxa": "kryxivia-game", + "krx": "kryza-exchange", + "krn": "kryza-network", + "ksta": "k-stadium", + "ksc": "kstarcoin", + "knft": "kstarnft", + "ktt": "k-tune", + "ktc": "ktx-finance", + "kube": "kubecoin", + "kcs": "kucoin-shares", + "kuji": "kujira", + "kuku": "pankuku", + "kuma": "kuma-inu", + "dkuma": "kumadex-token", + "frk": "kuma-protocol-fr-kuma-interest-bearing-token", + "wfrk": "kuma-protocol-wrapped-frk", + "kunai": "kunaikash", + "kunci": "kunci-coin", + "kfucat": "kung-fucat", + "kuni": "kuni", + "knj": "kunji-finance", + "kunkun": "kunkun-coin", + "kurbi": "kurbi", + "kuro": "kurobi", + "ksm": "kusama", + "kusd-t": "kusd-t", + "kush": "kushcoin-sol", + "kusunoki": "kusunoki-samurai", + "kus": "kuswap", + "kvnt": "kvants-ai", + "kwai": "kwai", + "kwenta": "kwenta", + "ktx": "kwiktrust", + "kyan": "kyanite", + "kbd": "kyberdyne", + "kncl": "kyber-network", + "knc": "kyber-network-crystal", + "kcn": "kylacoin", + "kswap": "kyotoswap", + "krrx": "kyrrex", + "kte": "kyte-one", + "kyve": "kyve-network", + "kzc": "kzcash", + "kz": "kz-token", + "l": "lormhole", + "sfrxeth": "staked-frax-ether", + "l2ve": "l2ve-inu", + "dough": "l3t-h1m-c00k", + "l3usd": "l3usd", + "lsd": "pontem-liquidswap", + "lbl": "label-foundation", + "labi": "labradorbitcoin", + "labsv2": "labs-group", + "labs": "labs-protocol", + "lac": "la-coin", + "$lady": "ladybot", + "laika": "the-soldog", + "lki": "laika-ai", + "lainesol": "laine-stake", + "stkaia": "lair-staked-kaia", + "lvm": "lakeviewmeta", + "lmf": "lamas-finance", + "lamb": "lambda", + "lmda": "lambda-markets", + "lambo": "lambo-2", + "lamp": "lamp-on-larissa", + "lana": "lanacoin", + "lanc": "lanceria", + "land": "outlanders", + "tcl": "lander", + "$landlord": "landlord-roland", + "loh": "land-of-heroes-2", + "lrt": "landrocker", + "shard": "landtorn-shard", + "landwolf": "landwolf-3", + "landwu": "land-wu", + "lndx": "landx-governance-token", + "lan": "lan-network", + "lanternsol": "lantern-staked-sol", + "lpp": "lapapuy", + "ptas": "la-peseta-2", + "lqr": "laqira-protocol", + "lar": "larace", + "lrs": "larissa-blockchain", + "larix": "larix", + "larry": "larry", + "lgas": "laser-gas", + "ls": "laser-shark", + "geek": "last-memories", + "la": "latoken", + "latte": "latte", + "ltx": "lattice-token", + "lbp": "launchblock", + "lpool": "launchpool", + "lcr": "launchr", + "laurion": "laurion-404", + "lave": "lavandos", + "lava": "lava-network", + "lavita": "lavita", + "law": "law", + "lbt": "lyfebloc", + "loa": "legend-of-annihilation", + "l2dao": "layer2dao", + "l3": "layer3", + "layer4": "layer4-network", + "lyum": "layerium", + "lyk": "layerk", + "l1x": "layer-one-x", + "zro": "layerzero", + "zusdc": "layerzero-bridged-usdc-aptos", + "lzusdc": "layerzero-usdc", + "zusdt": "tether-6069e553-7ebb-487e-965e-2896cd21d6ac", + "lzusdt": "layerzero-bridged-usdt-etherlink", + "lazio": "lazio-fan-token", + "lazycat": "lazycat", + "lbk": "lbk", + "lbc": "lifebankchain", + "lcom": "linkcom", + "lcx": "lcx", + "l7l": "le7el", + "loka": "league-of-kingdoms", + "lopes": "leandro-lopes", + "leash": "leash", + "bleu": "le-bleu-elefant", + "leks": "lecksis", + "ledger": "ledger-ai", + "led": "ledgis", + "ldy": "ledgity-token", + "lee": "love-earn-enjoy", + "lufc": "leeds-united-fan-token", + "leeroy": "leeroy-jenkins", + "leet": "leetswap-canto", + "lme": "legendary-meme", + "lfw": "legend-of-fantasy-war", + "loe": "legends-of-elysium", + "legend": "legends-of-sol", + "lgndx": "legendx", + "legion": "legion", + "lgx": "legion-network", + "$legion": "legion-ventures", + "leh": "lehman-brothers", + "leia": "leia-the-cat", + "tigers": "leicester-tigers-fan-token", + "lm": "leisuremeta", + "lemeow": "le-meow", + "lemo": "lemochain", + "lemc": "lemonchain", + "lemd": "lemond", + "lemon": "lemon-terminal", + "lemn": "lemon-token", + "lenard": "lenard", + "lendfi": "lendfi-finance", + "lends": "lends", + "( ͡° ͜ʖ ͡°)": "lenny-face", + "leo": "leo-token", + "lenni": "leonard-the-lizard", + "lio": "leonidasbilic", + "leopard": "leopard", + "leox": "leox", + "lesbian": "lesbian-inu", + "leslie": "leslie", + "lthn": "lethean", + "$cook": "let-him-cook", + "lfc": "life-coin", + "letsgo": "lets-go-brandon", + "lvn": "levana-protocol", + "lev": "lever-network", + "lvl": "level", + "lgo": "level-governance", + "lever": "lever", + "xcvx": "leveraged-cvx", + "xeeth": "leveraged-eeth", + "xezeth": "leveraged-ezeth", + "xfrxeth": "leveraged-frxeth", + "xsteth": "leveraged-steth", + "xwbtc": "wrapped-btc-caviarnine", + "l2": "leverj-gluon", + "squid": "squid-game-2", + "lexa": "lexa-ai", + "lex": "lexer-markets", + "lexi": "lexiai", + "@lfg": "lfg", + "lfgo": "lfgo", + "lfit": "lfit", + "lgcy": "lgcy-network", + "lld": "liberland-lld", + "llm": "llm-eth", + "libero": "libero-financial", + "ltai": "libertai", + "liberta": "libertarian-dog", + "lbm": "libertum", + "flth": "liberty-square-filth", + "libx": "libfi", + "libra": "libra-protocol-2", + "lba": "libra-credit", + "lixx": "libra-incentix", + "lbr": "lybra-finance", + "libre": "libre", + "licker": "licker", + "lick": "lickgoat", + "licore": "licore", + "ldo": "linea-bridged-ldo-linea", + "stmatic": "lido-staked-matic", + "stsol": "lido-staked-sol", + "lidya": "lidya", + "lien": "lien", + "lif3": "lif3-2", + "lshare": "lif3-lshare-new", + "lifc": "life-coin-2", + "life": "life-crypto", + "lft": "lifeform", + "efil": "liferestart", + "lfnty": "lifinity", + "usdl": "liquid-loans-usdl", + "lhc": "lightcoin", + "light": "lightning-protocol", + "ll": "lightlink", + "lbtc": "lombard-staked-btc", + "ligma": "ligma-node", + "ligo": "ligo-ordinals", + "like": "only1", + "lilai": "lilai", + "lilcat": "lilcat", + "llt": "lillius", + "lilpump": "lil-pump", + "limex": "limestone-network", + "lmwr": "limewire-token", + "lnt": "limitless-network", + "lmcswap": "limocoin-swap", + "limon": "limoncelloai", + "limo": "limoverse", + "lina": "linear", + "linda": "linda-2", + "lab": "the-professor", + "mkr": "mkr-fuse", + "uni": "uniswap-wormhole", + "linear": "linear-protocol", + "lnr": "lunar-2", + "lxp": "linea-voyage-xp", + "lwc": "linework-coin", + "fnsa": "link", + "let": "linkeye", + "linkfi": "linkfi", + "lpl": "linkpool", + "links": "links", + "lts": "linktensor", + "ltao": "linktoa", + "yvlink": "link-yvault", + "linq": "linq", + "lnq": "linqai", + "roar": "roaring-kitty", + "liq": "liquor", + "nastr": "liquid-astr", + "latom": "liquid-atom", + "lico": "liquid-collectibles", + "lcro": "liquid-cro", + "lqdx": "liquid-crypto", + "lqdr": "liquiddriver", + "liveretro": "liquid-driver-liveretro", + "livethe": "liquid-driver-livethe", + "liqd": "liquid-finance", + "sarch": "liquid-finance-arch", + "lqt": "liquidifty", + "liquid": "liquidify-077fd783-dead-4809-b5a9-0d9876f6ea5c", + "liquidium (runes)": "liquidium-token", + "lksm": "liquid-ksm", + "lila": "liquidlayer", + "loan": "proton-loan", + "merc": "liquid-mercury", + "lp": "liquid-protocol", + "lsdai": "liquid-savings-dai", + "scanto": "liquid-staked-canto", + "lseth": "liquid-staked-ethereum", + "stflow": "liquid-staked-flow", + "sfuse": "liquid-staked-fuse", + "ldot": "liquid-staking-dot", + "lst": "liquid-staking-token", + "liquify": "liquify-network", + "lqty": "liquity", + "lusd": "lusd-2", + "lq": "liqwid-finance", + "tryt": "lirat", + "lsk": "lisk", + "lista": "lista", + "listr": "listr", + "lit": "timeless", + "fias": "litcraft-fias", + "lite": "lite", + "cash": "stabl-fi", + "lcc": "litecoin-cash", + "ltz": "litecoinz", + "ldoge": "litedoge", + "lith": "lithium-finance", + "ions": "lithium-ventures", + "litho": "lithosphere", + "litt": "litlab-games", + "lab-v2": "little-angry-bunny-v2", + "1on8": "little-dragon", + "manyu": "littlemanyu", + "ltrbt": "little-rabbit-v2", + "lud": "little-ugly-duck", + "lgc": "livegreen-coin", + "lpt": "livepeer", + "ltd": "living-the-dream", + "liza": "liza-2", + "lizard": "lizard", + "llama": "llama", + "lmeow": "lmeow-2", + "lndry": "lndry", + "loafcat": "loafcat", + "loaf": "the-almighty-loaf", + "lobo": "lobo-the-wolf-pup-runes", + "$lobster": "lobster", + "lcs": "localcoinswap", + "local": "local-money", + "ltt": "luxury-travel-token", + "$locg": "locgame", + "loc": "lockchain", + "lmi": "lucky-mio", + "lockin": "lock-in", + "lkn": "lockness", + "lpi": "lockon-passive-index", + "locus": "locus-finance", + "cicada": "locust-pocus", + "lode": "lode-token", + "logg": "logarithm-games", + "logx": "logx-2", + "oxen": "loki-network", + "lkr": "lokr", + "lol": "lol-3", + "lola": "lola-2", + "$lola": "lola-cat", + "stftn": "lolik-staked-ftn", + "london": "londononsol", + "lof": "lonelyfans", + "longfu": "longfu", + "olong": "long-johnson", + "lmao": "long-mao", + "lonk": "lonk-on-near", + "look": "lookscoin", + "looks": "looksrare", + "loom": "loom-network-new", + "loomold": "loom-network", + "loong": "plumpy-dragons", + "loon": "the-loonies", + "loop": "loopnetwork", + "loi": "loop-of-infinity", + "lrc": "loopring", + "loopy": "loopy", + "loot": "treasure-labs-loot", + "looter": "looter", + "lopo": "lopo", + "logt": "lord-of-dragons", + "los": "lord-of-sol", + "lords": "lords", + "lowb": "loser-coin", + "lss": "lossless", + "lost": "lost-world", + "lotty": "lotty", + "louder": "louder", + "$louie": "louie-the-raccoon", + "loulou": "loulou", + "lzm": "loungem", + "lb": "lovebit", + "lci": "lovechain-2", + "lhinu": "love-hate-inu", + "lovely": "lovely-inu-finance", + "moli": "love-moli", + "lower": "lower", + "lowq": "lowq", + "lqc": "low-quality-cat", + "lox": "lox-network", + "3crv": "lp-3pool-curve", + "renbtccurve": "lp-renbtc-curve", + "scurve": "lp-scurve", + "lp-ycrv": "lp-yearn-crv-vault", + "lto": "lto-network", + "luab": "lua-balancing-token", + "lua": "lumi-finance", + "lube": "lube", + "luca": "luca", + "lucha": "lucha", + "luci": "luci", + "lcd": "lucidao", + "lblock": "lucky-block", + "lucky": "maximus-lucky", + "roo": "lucky-roo", + "luckyslp": "luckysleprecoin", + "toad": "toadie-meme-coin", + "luc": "lucretius", + "$luca": "lucrosus-capital", + "lueygi": "lueygi", + "luffy": "luffy-inu", + "lyxe": "lukso-token", + "lyx": "lukso-token-2", + "lsp": "lumenswap", + "lmr": "lumerin", + "lumi": "lumishare", + "$lumi": "lumi-2", + "chill": "lumichill", + "luag": "lumi-finance-governance-token", + "luausd": "lumi-finance-luausd", + "lumiii": "lumiiitoken", + "lumin": "lumin", + "lumai": "luminai", + "ltm04": "lumiterra-totem-404", + "ludamoon": "lumi-to-da-moon", + "lum": "shimmersea-lum", + "lumos": "lumoscoin", + "lumox": "lumox-studio", + "$luna": "luna28", + "luchow": "lunachow", + "loge": "lunadoge", + "lfi": "lunafi", + "lung": "lunagens", + "linu": "luna-inu", + "lunar": "lunar-3", + "xln": "lunarium", + "lunarlens": "lunarlens", + "lus": "luna-rush", + "lunat": "lunatics", + "lunc": "wrapped-terra", + "luncarmy": "luncarmy", + "lunch": "lunchdao", + "lune": "luneko", + "lnex": "lunex", + "lunr": "lunr-token", + "lun": "lunyr", + "yvlusd": "lusd-yvault", + "lush": "lush-ai", + "luv": "luv", + "lbxc": "lux-bio-exchange-coin", + "lux": "luxcoin", + "lkt": "luxkingtech", + "luxy": "luxy", + "lvusd": "lvusd", + "lyd": "lydia-finance", + "lyfe": "lyfe-2", + "lgold": "lyfe-gold", + "lym": "lympo", + "lmt": "lympo-market-token", + "lcn": "lyncoin", + "lynx": "lynx", + "lyptus": "lyptus-token", + "lyra": "lyra-finance", + "lyve": "lyve-finance", + "lvly": "lyvely", + "lyzi": "lyzi", + "m2": "m2", + "m": "metaverse-m", + "mmx": "m2-global-wealth-limited-mmx", + "maal": "maal-chain", + "mcrn": "macaronswap", + "machi": "machi", + "macke": "mackerel-2", + "macks": "mackerel-packs-runes", + "mad": "madlad", + "madai": "madai", + "mbc": "monbasecoin", + "metf": "mad-meerkat-etf", + "mmo": "mmocoin", + "madpepe": "mad-pepe", + "bnz": "madskullz-bnz", + "musd": "musd", + "mvg": "mad-viking-games-token", + "umad": "madworld", + "maga": "maga-hat", + "magaa": "maga-again", + "magadoge": "maga-doge", + "trumpcoin": "maga-fight-for-trump", + "magaiba": "magaiba", + "magapepe": "maga-pepe-eth", + "mape": "mecha-morphing", + "magashib": "maga-shiba", + "magatrump": "maga-trump", + "mvp": "maga-vp", + "mawc": "magawincat", + "mage": "metabrands", + "magic": "magic-token", + "mblk": "magical-blocks", + "tux": "magicaltux", + "bsts": "magic-beasties", + "mcrt": "magiccraft", + "mc": "moon-cat", + "mcc": "magic-cube", + "magicglp": "magicglp", + "mic": "magic-internet-cash", + "mim": "magic-internet-money-polygon", + "mlum": "magic-lum", + "mgp": "most-global", + "mring": "magicring", + "sqr": "magic-square", + "mys": "magic-yearn-share", + "magik": "magik", + "mgkl": "magikal-ai", + "magma": "magma", + "gmonad": "magma-staked-monad", + "mag": "monsterra-mag", + "mtg": "mtg-token", + "mbs": "monkeyball", + "maha": "mahadao", + "maia": "maia", + "mimatic": "mimatic", + "mex": "maiar-dex", + "mdn": "maidaan", + "emaid": "maidsafecoin", + "maid": "maidsafecoin-token", + "main": "main", + "mft": "mainframe", + "netz": "mainnetz", + "mftu": "mainstream-for-the-underground", + "majin": "majin", + "majo": "majo", + "major": "major-dog", + "tmc": "tom-coin", + "$mega": "make-ethereum-great-again", + "mega": "megaworld", + "$mf": "make-frens", + "mkf": "maker-flip", + "mkx": "makerx", + "mlnk": "malinka", + "never": "neversol", + "mamba": "mamba", + "mami": "mami", + "wooly": "mammoth-2", + "mamai": "mammothai", + "city": "manchester-city-fan-token", + "manc": "mancium", + "mdx": "multidex-ai", + "mand": "mande-network", + "mandox": "mandox-2", + "mane": "mane", + "maneki": "maneki", + "neki": "maneki-neko", + "mp": "merlinswap", + "mgx": "mangata-x", + "$manga": "manga-token", + "mmit": "mangoman-intelligent", + "mngo": "mango-markets", + "manifest": "manifest-on-sol", + "fold": "manifold-finance", + "mnta": "moneta-2", + "meth": "mirrored-ether", + "manta": "manta-network", + "mnt": "mynth", + "minu": "minu", + "om": "mantra-dao", + "mnft": "mongol-nft", + "mao": "mao-2", + "mpl": "maple", + "mni": "map-node", + "stmapo": "map-protocol-staked-mapo", + "maps": "maps", + "mar3": "mar3-ai", + "artex": "marbledao-artex", + "mbx": "metablox", + "mapo": "marcopolo", + "mare": "mare-finance", + "marga": "margaritis", + "mfi": "marginswap", + "mrhb": "marhabadefi", + "maria": "maria", + "mcoin": "mcoin-2", + "mnde": "marinade", + "mogul": "mogul-trumps-code-name", + "mmpro": "market-making-pro", + "peak": "marketpeak", + "raker": "marketraker", + "viz": "vimmer", + "pond": "marlin", + "mard": "marmalade-token", + "mcl": "mclaren-f1-fan-token", + "taur": "marnotaur", + "marq": "marquee", + "mars4": "mars4", + "mdao": "marsdao", + "xms": "mars-ecosystem-token", + "marso": "marso-tech", + "msi": "monkey-shit-inu", + "maru": "marumarunft", + "taro": "maru-taro", + "marv": "marv", + "mlxc": "marvellex-classic", + "marvin": "the-martian-dog", + "mob": "mobster", + "masa": "masa-finance", + "msr": "masari", + "mask": "wojak-mask", + "masks": "masks", + "masq": "masq", + "mass": "mass", + "mas": "massa", + "usdt.b": "massa-bridged-usdt-massa", + "weth.b": "massa-bridged-weth-b-massa", + "mvl": "mass-vehicle-ledger", + "mdex": "masterdex", + "mnbtc": "masternode-btc", + "noded": "masternoded-token", + "mn2": "masternoder2", + "mom": "my-mom", + "mw": "metaworld", + "matar": "matar-ai", + "meslbr": "match-finance-eslbr", + "match": "matchtrade", + "mtbc": "mateable", + "mtrm": "materium", + "math": "math", + "maaave": "matic-aave-aave", + "mausdc": "mausdc", + "dai-matic": "matic-dai-stablecoin", + "maticpo": "matic-wormhole", + "max": "upmax", + "mtrk": "matrak-fan-token", + "man": "matrix-ai-network", + "mtc": "moonft", + "mdf": "matrixetf", + "mai": "multi-ai", + "mtx": "matrix-protocol", + "msc": "matrix-smartchain", + "mshiba": "matsuri-shiba-inu", + "matt": "matt-0x79", + "mausdt": "mausdt", + "mvx": "metavault-trade", + "mav": "maverick-protocol", + "maw": "mawcat", + "$max": "maxcat", + "maxib": "maxi-barsik", + "maxi": "maxi-ordinals", + "deci": "maximus-deci", + "party": "party-2", + "trio": "trio-ordinals", + "may": "mayfair", + "mzc": "maza", + "mazi": "mazimatic", + "mazze": "mazze", + "mba": "mba-platform", + "mbd": "mbd-financials", + "mbp": "mobipad", + "mcbroken": "mcbroken", + "mcb": "mcdex", + "mcelo": "mcelo", + "mceur": "mceur", + "mcf": "mcfinance", + "mark": "moneyark", + "mchc": "mch-coin", + "mcontent": "mcontent", + "pepes": "star-pepe", + "mcv": "mcverse", + "mdbl": "mdbl", + "tmed": "mdsquare", + "me": "me", + "mean": "meanfi", + "mdt": "meta-dance", + "meb": "meblox-protocol", + "$mecha": "mechachain", + "mech": "merchant-finance", + "mch": "mktcash", + "mlt": "media-licensing-token", + "media": "solmedia", + "med": "medibloc", + "mtn": "medicalchain", + "mveda": "medicalveda", + "mdi": "medicle", + "mdus": "medieus", + "mee": "medieval-empires", + "fakt": "medifakt", + "mds": "midas-token", + "mdti": "meditoc", + "medoo": "medoo", + "mpg": "medping", + "meeb": "meeb-vault-nftx", + "meed": "meeds-dao", + "mshare": "meerkat-shares", + "mef": "meflex", + "meg": "meg4mint", + "megabot": "megabot", + "megadeath": "megadeath-pepe", + "mg8": "megalink", + "mpix": "megapix", + "wton": "megaton-finance-wrapped-toncoin", + "$weapon": "megaweapon", + "myc": "mega-yacht-cult", + "meh": "meh-on-ton", + "meld": "metaelfland", + "mcau": "meld-gold", + "marco": "melega", + "meli": "meli-games", + "mellow": "mellow-man", + "melo": "melo", + "mln": "melon", + "melos": "melos-studio", + "member": "member", + "mbrn": "membrane", + "memeai": "meme-ai-coin", + "mma": "meme-alliance", + "meme": "memetoon", + "chan": "memechan", + "mem": "not-meme", + "$memes": "memecoindao", + "mcult": "meme-cult", + "memecup": "meme-cup", + "memd": "memedao", + "memerune": "meme-economics-rune", + "memelon": "meme-elon-doge-floki-2", + "memeetf": "meme-etf", + "memefi": "memefi", + "toybox": "memefi-toybox-404", + "mflate": "memeflate", + "mf": "metafighter", + "goatstx": "meme-goatstx", + "mmtr": "memeinator", + "mk": "meme-kombat", + "lordz": "meme-lordz-2", + "$mememe": "mememe", + "mememint": "meme-mint", + "mgls": "meme-moguls", + "mepad": "memepad", + "merwa": "memerwa", + "$msr": "memesaur", + "memes": "memes-street", + "mmip": "memes-make-it-possible", + "mst": "mintswaptoken", + "mvu": "memes-vs-undead", + "mmvg": "memevengers", + "mmt": "my-metatrader", + "mendi": "mendi-finance", + "mento": "mento", + "mnz": "menzy", + "mewc": "meowcoin", + "meowg": "meowgangs", + "meowif": "meowifhat", + "meowka": "meowka-neko", + "mto": "merchant-token", + "mrch": "merchdao", + "$mercle": "mercle", + "mer": "mercurial", + "m404": "mercury-protocol-404", + "merge": "merge", + "mrgn": "mergen", + "mge": "mergex", + "mkl": "merkle-trade", + "merlinbox": "merlinbox", + "merl": "merlin-chain", + "voya": "merlin-chain-bridged-voya-merlin", + "m-btc": "merlin-s-seal-btc", + "m-usdc": "merlins-seal-usdc", + "m-usdt": "merlins-seal-usdt", + "mstar": "merlin-starter", + "aimr": "meromai", + "mesh": "meshswap-protocol", + "mwave": "meshwave", + "msn": "meson-network", + "m87": "messier", + "mta": "meta", + "peel": "meta-apes-peel", + "mac": "meta-art-connection", + "$beat": "metabeat", + "bmtc": "metabit-network", + "metabot": "metabot", + "mlz": "metabusdcoin", + "mcade": "metacade", + "mak": "metacene", + "mct": "microtuber", + "dby": "metaderby", + "hoof": "metaderby-hoof", + "metadoge": "metadoge-bsc", + "second": "metados", + "mdp": "metadrive-premeum", + "meto": "metoshi", + "mtf": "metafootball", + "megaland": "metagalaxy-land", + "mga": "metagame-arena", + "mgc": "meta-games-coin", + "mgg": "metagaming-guild", + "mgod": "metagods", + "mtgrd": "metaguard", + "munity": "metahorse-unity", + "men": "metahub-finance", + "vcoin": "metajuice", + "mtl": "metal", + "mtla": "meta-launcher", + "mcg": "metalcore", + "xmd": "metal-dollar", + "xmt": "metalswap", + "maf": "metamafia", + "mall": "metamall", + "memagx": "meta-masters-guild-games", + "mmm": "mmm", + "metameme": "met-a-meta-metameme", + "mtmn": "meta-mine", + "mmg": "meta-minigames", + "mmai": "metamonkeyai", + "monopoly": "meta-monopoly", + "metamoon": "metamoon", + "mmui": "metamui", + "metan": "metan-evolutions", + "metano": "metano", + "metx": "metanyx", + "motg": "metaoctagon", + "phone": "metaphone", + "mplx": "metaplex", + "mts": "metastrike", + "mpdao": "meta-pool", + "mtp": "metapuss", + "metaq": "metaq", + "rim": "metarim", + "mtrx": "metarix", + "mrs": "metars-genesis", + "mrun": "metarun", + "mhunt": "metashooter", + "msu": "metasoccer", + "punketh-20": "metastreet-v2-mwsteth-wpunks-20", + "tt": "thunder-token", + "mtk": "moonland-metaverse-token", + "trc": "tracer", + "mvd": "metavault-dao", + "etp": "metaverse-etp", + "mefa": "metaverse-face", + "mhub": "metaverse-hub", + "mvi": "metaverse-index", + "mvk": "metaverse-kombat", + "neer": "metaverse-network-pioneer", + "mtvt": "metaverser", + "mevr": "metaverse-vr", + "metax": "metaversex", + "mvt": "metavirus", + "mesa": "metavisa", + "metav": "metavpad", + "wars": "metawars", + "wear": "metawear", + "mxy": "metaxy", + "mzero": "metazero", + "mzm": "metazoomee", + "met": "metronome", + "mtrg": "meter", + "emtrg": "meter-governance-mapped-by-meter-io", + "stmtrg": "meter-io-staked-mtrg", + "wstmtrg": "meter-io-wrapped-stmtrg", + "mtr": "meter-stable", + "metfi": "metfi-2", + "metis": "metis-token", + "mxh": "metroxynth", + "mtlx": "mettalex", + "mev": "meverse", + "meveth": "meveth", + "mewing": "mewing-coin", + "mewnb": "mewnb", + "mwd": "mew-woof-dao", + "mxnt": "mexican-peso-tether", + "chingon": "mexico-chingon", + "mezz": "mezz", + "mfer": "mfercoin", + "mfers": "mfers", + "mfet": "mfet", + "mhcash": "mhcash", + "mia": "miaswap", + "mibr": "mibr-fan-token", + "mice": "mice", + "micha": "micha", + "$michi": "michicoin", + "mickey": "steamboat-willie", + "micro": "micro-coq", + "$micro": "micro-gpt", + "amm": "micromoney", + "mpepe": "micropepe", + "dmsft": "microsoft-tokenized-stock-defichain", + "space": "space-token-bsc", + "mtbill": "midas-mtbill", + "night": "midnight", + "miidas": "miidas", + "mike": "mikeneko", + "miki": "miki", + "ladys": "milady-meme-coin", + "milady": "milady-vault-nftx", + "ladyf": "milady-wif-hat", + "milei": "milei-token", + "msmil": "milestone-millions", + "mvc": "multiverse-capital", + "mlk": "milk-alliance", + "milkbag": "milkbag", + "milky": "milky-token", + "milktia": "milkyway-staked-tia", + "mille": "mille-chain", + "sweg69": "milleniumsweghunter69", + "mclb": "millenniumclub-coin-new", + "mftm": "millennium-club-staked-ftm", + "milli": "milli-coin", + "mm": "moonman", + "mimo": "mimo-parallel-governance-token", + "mfc": "millonarios-fc-fan-token", + "milo": "milo-inu", + "milo dog": "milo-dog", + "mimany": "mimany", + "mimas": "mimas-finance", + "mwc": "mimblewimblecoin", + "mimbo": "mimbo", + "mimir": "mimir-token", + "mina": "mina-protocol", + "mntc": "minativerse", + "mnto": "minato", + "mdai": "mindai", + "mnd": "mound-token", + "minds": "minds", + "mverse": "mindverse", + "mnb": "mn-bridge", + "mbase": "minebase", + "melb": "minelab", + "mnr": "mooner", + "mxtk": "mineral-token", + "minar": "miner-arena", + "miva": "minerva-wallet", + "mns": "monnos", + "mini": "minimini", + "barron": "mini-donald", + "minima": "minima", + "minky": "minky", + "min": "minswap", + "mint": "public-mint", + "mtd": "minted", + "mnte": "mintera", + "minty": "minterest", + "ml": "mintlayer", + "btcmt": "minto", + "mss": "mintstakeshare", + "mnu": "minu-the-manta", + "mpt": "miracle-play", + "mirx": "mirada-ai", + "mirai": "mirai-2", + "mql": "miraqle", + "mir": "mir-token", + "msb": "misbloc", + "misha": "misha", + "misser": "misser", + "miggles": "mister-miggles", + "mery": "mistery", + "misty": "misty-meets-pepe", + "mtpe": "misty-pepe", + "mith": "mithril", + "mittens": "mittens-2", + "miu": "miu", + "miw": "miw-musk", + "xin": "mixin", + "mxm": "mixmob", + "mte": "mixtoearn", + "mzr": "mizar", + "mm72": "mm72", + "mmf": "mmfinance-arbitrum", + "mmss": "mmss", + "mnee": "mnee-usd-stablecoin", + "nuum": "mnet-continuum", + "moai": "wicked-moai", + "moani": "moani", + "mofi": "museum-of-influencers", + "mobic": "mobility-coin", + "mitx": "mobist", + "mobi": "mobius-money", + "mot": "mother-earth", + "mobx": "mobix", + "mbox": "mobox", + "moby": "moby-2", + "moca": "museum-of-crypto-art", + "mochad": "mochadcoin", + "mo": "mo-chain", + "mochicat": "mochicat", + "mochi": "mochi-thecatcoin", + "moma": "mochi-market", + "mock": "mock-capital", + "mockjup": "mockjup", + "mcos": "mocossi-planet", + "moda": "moda-dao", + "modai": "modai", + "dcd": "modclub", + "mode": "mode", + "mod": "move-dollar", + "minx": "modern-innovation-network-token", + "modex": "modex", + "mods": "modulus-domains-service", + "moe": "moe-3", + "mda": "moeda-loyalty-points", + "moew": "moew", + "mog": "mog-coin", + "mogdog": "mogdog", + "moge": "moge", + "moggo": "moggo", + "mogi": "mogi-cet", + "stars": "ton-stars", + "mogu": "mogutou", + "salman": "mohameme-bit-salman", + "mjt": "mojitoswap", + "mojo": "planet-mojo", + "moka": "mokens-league", + "molandak": "molandak", + "vita-fast": "molecules-of-korolchuk-ip-nft", + "mollars": "mollarstoken", + "molly": "molly-ai", + "molten": "molten-2", + "mommydoge": "mommy-doge", + "momo": "momo-2-0", + "emoji": "momoji", + "key": "selfkey", + "momo v2": "momo-v2", + "mona": "monavale", + "monai": "monai", + "mnrch": "monarch", + "monat": "monat-money", + "lisa": "mona-token", + "mndcc": "mondo-community-coin", + "mone": "mone-coin", + "eure": "monerium-eur-money", + "gbpe": "monerium-gbp-emoney", + "xmr": "monero", + "xmc": "monero-classic-xmc", + "xmv": "monerov", + "mntg": "monetas", + "mth": "monetha", + "monet": "monet-society", + "moneybee": "moneybee", + "bips": "moneybrain-bips", + "mon": "monstock", + "moc": "mossland", + "mswap": "moneyswap", + "mong": "mongcoin", + "mongoose": "mongoose", + "mongy": "mongy", + "moni": "monsta-infinite", + "monk": "monk-gg", + "monkas": "monkas", + "monke": "monkeonbase", + "monkei": "monkei", + "monkex": "monkex", + "monkey": "monkey-2", + "mkc": "monkeycoin", + "bananas": "monkey-peepo", + "pox": "pollux-coin", + "monkeys": "monkeys-token", + "monkie": "monkie", + "monku": "monku", + "$monky": "monky", + "mononoke-inu": "mononoke-inu", + "mrx": "monorix", + "mono": "the-monopolist", + "mcash": "monsoon-finance", + "ggm": "monster-galaxy", + "mstr": "monsterra", + "mtgx": "montage-token", + "moocat": "moocat", + "moochii": "moochii", + "moodeng": "moo-deng-2", + "mooi": "mooi-network", + "mcusd": "moola-celo-dollars", + "mlh": "moolahverse", + "mcreal": "moola-interest-bearing-creal", + "moo": "moomoo-token", + "moonair": "moon-air", + "app": "moon-app", + "moonarch": "moonarch", + "bay": "moon-bay", + "glmr": "moonbeam", + "mbdao": "moonboots-dao", + "mooncats": "mooncats-on-base", + "mooncat": "mooncat-vault-nftx", + "mcloud": "mooncloud-ai", + "woof": "woofwork-io", + "mooned": "moonedge", + "mooney": "mooney", + "moonion": "moonions", + "moonke": "moonke", + "moonkize": "moonkize", + "mola": "moonlana", + "moonlight": "moonlight-token", + "mmp": "moon-maker-protocol", + "pots": "moonpot", + "moonpot": "moonpot-finance", + "movr": "moonriver", + "mrc": "moon-roll-coin", + "mscp": "moonscape", + "moond": "moonsdust", + "mnst": "moonstarter", + "cah": "moon-tropica", + "mfam": "moonwell", + "well": "moonwell-artemis", + "moove": "moove-protocol", + "moox": "mooxmoo", + "mops": "mops", + "mora": "mora-2", + "more": "stack-2", + "morfey": "morfey", + "mor": "morpheusai", + "mork": "morkie", + "moros": "moros-net", + "morph": "morph", + "morpha": "morphacoin", + "mnw": "morpheus-network", + "pills": "morpheus-token", + "morpho": "morpho", + "macrv": "morpho-aave-curve-dao-token", + "mawbtc": "morpho-aave-wrapped-btc", + "xmw": "morphware", + "morra": "morra", + "morti": "morti", + "moshi": "moshi", + "mco2": "moss-carbon-credit", + "$wanted": "most-wanted", + "mota": "motacoin", + "møth": "moth", + "moth": "moth-2", + "mother": "mother-iggy", + "motion": "motion-coin", + "motn": "motion-motn", + "moto": "moto", + "tobi": "moto-dog", + "mgpt": "movegpt", + "mtrc": "motorcoin", + "usdm": "usd-mars", + "mow": "mouse-in-a-cats-world", + "stuck": "mouse-in-pasta", + "mmc": "movemovecoin", + "movex": "movex-token", + "movez": "movez", + "mbl": "moviebloc", + "moxie": "moxie", + "mox": "mox-studio", + "moya": "moya", + "moz": "mozfire", + "mpaa": "mpaa", + "mpendle": "mpendle", + "mpeth": "mpeth", + "mpro": "mpro-lab", + "mpx": "mpx", + "pinky": "pinky-the-pineapple", + "mrsmiggles": "mrs-miggles", + "ama": "mrweb-finance-2", + "mryen": "mr-yen-japanese-businessman-runes", + "msol": "msol", + "paint": "paint", + "msq": "msquare-global", + "mtfi": "mtfi", + "mthn": "mth-network", + "mtms": "mtms-network", + "mps": "mt-pelerin-shares", + "mt": "mytoken", + "mu": "mu-coin", + "mudai": "mudai", + "myield": "muesliswap-yield-token", + "muffin": "muffin", + "mugi": "mugi", + "muki": "muki", + "muln": "mullenarmy", + "mubi": "multibit", + "multi": "multichain-fantom", + "usdt_t": "multichain-bridged-usdt-bittorrent", + "mmgt": "multimoney-global", + "mpad": "multipad", + "inus": "multiplanetary-inus", + "mul": "multipool", + "myus": "multisys", + "muc": "multi-universe-central", + "mtv": "multivac", + "mumba": "mumba", + "mummat": "mummat", + "mmy": "mummy-finance", + "mumu": "mumu-the-bull-3", + "muncat": "muncat", + "munch": "munch", + "mura": "murasaki", + "muratiai": "muratiai", + "mur": "mur-cat", + "muse": "muse-2", + "record": "music-protocol", + "musk": "musk-gold", + "must": "mustafa", + "flies": "mutatio-xcopyflies", + "mute": "mute", + "muttski": "muttski", + "$muu": "muu-inu", + "$muva": "muva", + "muzki": "muzki", + "muzz": "muzzle", + "msp": "mvcswap", + "mvs": "mvs-multiverse", + "mxc": "mxc", + "mxgp": "mxgp-fan-token", + "mbe": "mxmboxceus-token", + "mxnb": "mxnb", + "xseed": "mxs-games", + "mx": "mx-token", + "mxt": "mx-token-2", + "myan": "myancat-coin", + "mbid": "mybid", + "myb": "mybit-token", + "bricks": "mybricks", + "dlegends": "my-defi-legends", + "dpet": "my-defi-pet", + "mlc": "my-lovely-coin", + "mat": "my-master-war", + "mynt": "myntpay", + "piggie": "mypiggiesbank", + "myra": "mytheria", + "$myre": "myre-the-dog", + "myria": "myriad-social", + "xmy": "myriadcoin", + "$myro": "myro", + "myrofloki": "myro-floki-ceo", + "myrowif": "myrowif", + "mif": "myrowifhat", + "myt": "mystic-treasure", + "myst": "mysterium", + "myth": "mythos", + "nabox": "nabox", + "nacho": "nacho-finance", + "nada": "nada-protocol-token", + "naft": "nafter", + "ngc": "naga", + "ngy": "nagaya", + "nii": "nahmii", + "nailong": "nailong", + "nbot": "naka-bodhi-token", + "naka": "nakamoto-games", + "nals": "nals", + "nmc": "namecoin", + "nao": "nettensor", + "nami": "thief", + "nana": "nana-token", + "xno": "xeno-token", + "nbt": "neuralbyte", + "nano": "nanomatic", + "nmbtc": "nanometer-bitcoin", + "naos": "naos-finance", + "npx": "napoleon-x", + "nap": "napoli-fan-token", + "naruto": "naruto", + "nsdx": "nasdex-token", + "nat": "natcoin-ai", + "nation": "nation3", + "natix": "natix-network", + "ntl": "nautilus-network", + "nav": "nav-coin", + "navx": "navi", + "navyseal": "navy-seal", + "nxn": "naxion", + "nbl": "nbl", + "chart": "nchart", + "ndau": "ndau", + "ndb": "ndb", + "ndc": "ndc", + "near": "near", + "neld": "nearlend-dao", + "pad": "smartpad-2", + "nstart": "nearstarter", + "neat": "neat", + "nebl": "neblio", + "nebula": "nebula-3", + "nbla": "nebula-project", + "nas": "nebulas", + "xpower": "nebx", + "ned": "netherlands-coin", + "nefty": "nefty", + "neta": "neta", + "neged": "neged", + "nht": "neighbourhoods", + "neirei": "neirei", + "neiro": "neiro-on-tron", + "neko": "the-neko", + "((=ↀωↀ=))": "nekocoin-2", + "asg": "nekoverse-city-of-greed-anima-spirit-gem", + "nlc": "nolimitcoin", + "xem": "nem", + "nd": "nemesis-downfall", + "nem": "nemgame", + "nemo": "nemo-sum", + "neng": "nengcoin", + "neo": "neonx", + "naai": "neoaudit-ai", + "cortex": "neocortexai-2", + "neon": "neon", + "neonai": "neonai", + "nex": "nexus-2", + "neop": "neopepe", + "npt": "nexus-pro-token", + "safo": "neorbit", + "ncr": "neos-credits", + "bytes": "neo-tokyo", + "neox": "neoxa", + "npm": "neptune-mutual", + "usdn": "neptune-usd", + "nptx": "neptunex", + "nerd": "nerdbot", + "nerds": "nerds", + "nero": "nero-token", + "xnv": "nerva", + "nrv": "nerve-finance", + "nerve": "nerveflux", + "nvt": "nervenetwork", + "ckb": "nervos-network", + "ness": "ness-lab", + "nest": "nest", + "nesta": "nest-arcade", + "ncc": "netcoincapital-2", + "dnflx": "netflix-tokenized-stock-defichain", + "ntr": "nether", + "nfi": "netherfi", + "nmt": "nftmart-token", + "nto": "neton", + "nett": "netswap", + "netvr": "netvrk", + "nzero": "netzero", + "ncat": "neuracat-2", + "neura": "neurahub", + "xna": "neurai", + "neural": "neuralai", + "neuralai": "neural-ai", + "$neural": "neuralbot", + "nerf": "neural-radiance-field", + "ntd": "neural-tensor-dynamics", + "nei": "neurashi", + "ncn": "neurochainai", + "nrn": "neuron", + "neuroni": "neuroni-ai", + "nicp": "neuron-icp", + "npai": "neuropulse-ai", + "neuro": "neurowebai", + "ntmpi": "neutaro", + "neu": "neutra-finance", + "xtn": "neutrino", + "nsbt": "neutrino-system-base-token", + "ntrn": "neutron-3", + "neutron20": "neutron-4", + "neutro": "neutroswap", + "neuy": "neuy", + "neva": "nevacoin", + "newb": "newton-on-base", + "nbs": "new-bitshares", + "newm": "newm", + "newo": "new-order", + "nwc": "newscrypto-coin", + "news": "newsly", + "newt": "newt", + "thro": "newthrone", + "ntn": "newton", + "new": "newton-project", + "state": "new-world-order", + "nyt": "new-year-token", + "nyc": "newyorkcoin", + "nye": "newyork-exchange", + "nexa": "nexacoin", + "nt": "nextype-finance", + "nxl": "nexellia", + "nexg": "nexgami", + "nexo": "nexo", + "nax": "nextdao", + "nxtt": "next-earth", + "nexm": "nexum", + "nxs": "nexus", + "nexusai": "nexusai", + "nxd": "nexus-dubai", + "nmd": "novamind", + "euus": "nexus-pro-euus", + "useu": "nexus-pro-useu", + "nezuko": "nezuko", + "nfnt": "nfinityai", + "nfm": "nfmart", + "nfp": "nfprompt-token", + "stay": "staynex", + "nftart": "nft-art-finance", + "nftb": "nftb", + "nbm": "nftblackmarket", + "nbp": "nftbomb", + "nftbs": "nftbooks", + "champ": "nft-champions", + "nftc": "nft-combining", + "deli": "nftdeli", + "nftfi": "nftfi", + "nftfn": "nftfn", + "n1": "nftify", + "nftl": "nifty-league", + "$nmkr": "nft-maker", + "nftpunk": "nftpunk-finance", + "nftd": "nftrade", + "tresr": "nftreasure", + "nfsg": "nft-soccer-games", + "nfts": "nft-stars", + "wrkx": "nft-workx", + "wrld": "nft-worlds", + "nftx": "nftx", + "nfty": "nfty-token", + "nga": "ngatiger", + "ngmi": "ngmi-bp", + "niao": "niao", + "nib": "nib", + "nibi": "nibiru", + "p": "nicolas-pi-runes", + "nigella": "nigella-chain", + "ngit": "nightingale-token", + "nvg": "nightverse-game", + "nigi": "nigi", + "nihao": "nihao-coin", + "niifi": "niifi", + "nikepig": "nikepig", + "nile": "nile", + "nil": "nillion", + "nimbus": "nimbus-network", + "gnimb": "nimbus-platform-gnimb", + "nim": "nim-network", + "nina": "ninapumps", + "ninjapepe": "ninjapepe", + "roll": "ninjaroll", + "nst": "ninja-squad", + "$ninja": "ninja-turtles", + "nwt": "ninja-warriors", + "niob": "niob", + "nbr": "niobio-cash", + "nioctib": "nioctib", + "nir": "nirmata", + "nac": "nirvana-chain", + "nitefeeder": "nitefeeder", + "trove": "nitro-cartel", + "ntx": "nunet", + "nitro": "nitro-league", + "ncash": "nucleus-vision", + "nix": "zanix", + "voice": "nix-bridge-token", + "niza": "niza-global", + "nkclc": "nkcl-classic", + "nkn": "nkn", + "nkyc": "nkyc-token", + "omochi": "omochi-the-frog", + "noah": "noahswap", + "noa": "noa-play", + "sox": "nobby-game", + "nobl": "nobleblocks", + "gpu": "nodeai", + "nhub": "nodehub", + "$node": "nodelyai", + "node": "nodez", + "nrc": "nodes-reward-coin", + "nds": "nodestation-ai", + "ns": "suins-token", + "mnx": "nodetrade", + "nws": "nodewaves", + "nodifi": "nodifiai", + "nodl": "nodle-network", + "nogs": "noggles", + "nogwai": "nogwai", + "noia": "noia-network", + "woosh": "woosh", + "noir": "noir-phygital", + "nois": "nois", + "enqai": "noisegpt", + "nojeet": "nojeet", + "noka": "noka-solana-a", + "nola": "nola-2", + "nole": "nole", + "n0le": "nole-inu", + "nls": "nolus", + "nom": "onomy-protocol", + "pride": "nomad-exiles", + "nomads": "nomads", + "nmx": "nominex", + "nomnom": "nomnom", + "nmai": "nomotaai", + "spores": "non-fungible-fungi", + "nonja": "nonja", + "npc": "non-playable-coin", + "$npi": "non-playable-inu", + "noob": "noob", + "noone": "no-one", + "noooo": "noooomeme", + "noot": "noot-sol", + "nop": "nop-app", + "nrk": "nordek", + "nord": "nord-finance", + "nrdc": "nordic-ai", + "norm": "norman", + "normie": "normie-2", + "normilio": "normilio", + "normus": "normus", + "xrt": "robonomics-network", + "nct": "toucan-protocol-nature-carbon-tonne", + "nos": "nostalgia", + "nosebud": "nose-bud", + "cocaine": "nose-candy", + "noso": "noso", + "nstr": "nostra", + "uno": "uno-re", + "notai": "notai", + "not": "nothing-3", + "notdog": "notdog", + "notdoge": "notdogecoin", + "note": "solnote", + "nfai": "not-financial-advice", + "nothing": "nothing-2", + "thing": "thing", + "notnot": "not-notcoin", + "nwg": "notwifgary", + "$space": "nounspace", + "nous": "nousai", + "nvc": "novacoin", + "nvx": "novadex", + "nov": "novara-calcio-fan-token", + "audd": "novatti-australian-digital-dollar", + "vachi": "novawchi", + "novax": "novax", + "nnn": "novem-gold", + "nvm": "novem-pro", + "novo": "novo-9b9480a5-9545-49c3-a999-94ec2902cedb", + "npcs": "npc-on-solana", + "nshare": "nshare", + "nsi": "nsights", + "n": "nsurance", + "nsure": "nsure-network", + "nua": "nuance", + "nut": "nutflex", + "xcfx": "nucleon-xcfx", + "ncdt": "nuco-cloud", + "nu": "nucypher", + "nugx": "nugget-rush", + "nukey": "nukey", + "nai": "nuklai", + "nlk": "nulink-2", + "nsf": "null-social-finance", + "nuls": "nuls", + "nswap": "nulswap", + "numa": "numa", + "nars": "num-ars", + "nr1": "number-1-token", + "num": "numbers-protocol", + "nmr": "numeraire", + "numi": "numi-shards", + "nuna": "nuna", + "paloosi": "nuncy-paloosi", + "nnt": "nunu-spirits", + "nuon": "nuon", + "nuri": "nuri-exchange", + "nrfb": "nurifootball", + "nblu": "nuritopia", + "nusa": "nusa-finance", + "susd": "susd-optimism", + "nutgv2": "nutgain", + "nutz": "nutz", + "nvl": "nuvola-digital", + "dnvda": "nvidia-tokenized-stock-defichain", + "nvir": "nvirworld", + "nxm": "nxm", + "nxt": "nxtchain", + "nxusd": "nxusd", + "nya": "nya", + "nyandoge": "nyandoge-international", + "nyante": "nyantereum", + "nym": "nym", + "nyro": "nyro", + "$nxcp": "nyx-cipher", + "nyxc": "nyxia-ai", + "nyzo": "nyzo", + "o3": "o3-swap", + "ap": "oak-network", + "oasis": "project-oasis", + "rose": "rose-finance", + "oas": "oasys", + "oath": "oath", + "oat": "oat-network", + "obx": "openblox", + "obema": "obema", + "obicoin": "obi-real-estate", + "orb7": "obital7", + "obot": "obortech", + "ten": "tokenomy", + "obsr": "observer-coin", + "obs": "one-basis-cash", + "obsw": "obs-world", + "ocada": "ocada-ai", + "ocavu": "ocavu-network", + "occ": "occamfi", + "ocx": "occamx", + "$occer": "occer", + "oce": "oceanex", + "ocf": "oceanfi", + "oland": "oceanland", + "ocean": "ocean-protocol", + "och": "och", + "ocicat": "ocicat-token", + "oci": "ociswap", + "plx": "pullix", + "octa": "octaspace", + "via": "viacoin", + "octo": "octorand", + "otk": "octo-gaming", + "oc": "octopus-coin", + "oct": "octopus-network", + "ops": "octopus-protocol", + "ocw": "octopuswallet", + "ocv": "ocvcoin", + "oddz": "oddz", + "ode": "odem", + "odie": "odie-on-sol", + "owc": "oduwa-coin", + "ocn": "odyssey", + "btck": "oec-btc", + "okt": "oec-token", + "ocisly": "ofcourse-i-still-love-you", + "ofe": "ofero", + "xft": "offshift", + "og404": "og404", + "ogc": "ogc", + "og": "og-fan-token", + "oggy": "oggy-inu-2", + "$roar": "og-roaring-kitty", + "ogsm": "og-sminem", + "ogz": "ogzclub", + "oh": "oh-finance", + "ohno": "oh-no", + "oho": "oho-blockchain", + "oks": "oikos", + "oja": "ojamu", + "okayeg": "okayeg", + "okb": "okb", + "ok": "okcash", + "okcat": "okcat", + "ort": "xreators", + "okto": "okto-token", + "xot": "okuru", + "ovso": "olaf-vs-olof", + "olen": "olen-mosk", + "olv": "olive", + "olive": "olivecash", + "olumpc": "olumpec-terch", + "pia": "olympia-ai", + "ohm": "olympus-v1", + "oly": "olyverse", + "omax": "omax-token", + "ombi": "ombi", + "omb": "ombre", + "omc": "omchain", + "omega": "omega-cloud", + "omn": "omega-network", + "omlt": "omeletteswap", + "omg": "omisego", + "omni": "omni-network", + "o404": "omni404", + "omnix": "omnibotx", + "ocp": "omni-consumer-protocol", + "flix": "omniflix-network", + "omkg": "omnikingdoms-gold", + "osea": "omnisea", + "lwa": "onbuff", + "onchain": "onchain-coin", + "ocai": "onchain-ai", + "ocd": "on-chain-dynamics", + "ocp404": "onchain-pepe-404", + "summer": "summer", + "ot": "oracle-tools", + "ondo": "ondo-finance", + "usdy": "ondo-us-dollar-yield", + "onc": "one-cash", + "ocb": "onecoinbuy", + "rone-bb2e": "onedex-rone", + "ohmi": "one-hundred-million-inu", + "olt": "one-ledger", + "onepunch": "onepunch", + "punch": "one-punch-cat", + "orare": "onerare", + "ons": "one-share", + "owct": "one-world-chain", + "onez": "onez", + "oft": "onfa", + "ong": "ong", + "oni": "oni-token", + "oky": "onigiri-kitty", + "opos": "only-possible-on-solana", + "omp": "onmax-2", + "ooks": "onooks", + "opls": "onpulse", + "onston": "onston", + "onus": "onus", + "onx": "onx-finance", + "onyx": "onyx-2", + "obt": "oobit", + "oof": "oof-2", + "oofp": "oofp", + "ooki": "ooki", + "oort": "oort-digital", + "opct": "opacity", + "$opcat": "opcat", + "opc": "opclouds", + "openai erc": "openai-erc", + "oap": "openalexa-protocol", + "oax": "openanx", + "sos": "solana-swap", + "od": "open-dollar", + "odg": "open-dollar-governance", + "tbill": "openeden-tbill", + "ox old": "open-exchange-token", + "oex": "openex-network-token", + "ofn": "openfabric", + "ogpu": "open-gpu", + "grid": "opengrid", + "ole": "openleverage", + "omz": "open-meta-city", + "omnd": "openmind", + "opmnd": "open-mind-network", + "omusd": "openmoney-usd", + "ooe": "openocean", + "open": "qredo", + "osky": "opensky-finance", + "opn": "open-ticketing-ecosystem", + "openx": "openxswap", + "owner": "openworldnft", + "xopenx": "openxswap-gov-token", + "oro": "oro", + "wpe": "opes-wrapped-pe", + "ophir": "ophir-dao", + "opip": "opipets", + "opium": "opium", + "opy": "opportunity", + "opsec": "opsec", + "opta": "opta-global", + "obtc": "optical-bitcoin", + "opch": "opticash", + "optim": "optim", + "op": "osmosis-allop", + "oada": "optim-oada", + "optcm": "optimus", + "opti": "optimus-ai", + "optimuselo": "optimuselonai", + "opinu": "optimus-inu", + "opx": "optimus-x", + "o2t": "option2trade", + "opt": "optionflow-finance", + "opa": "option-panda-platform", + "room": "option-room", + "opai": "optopia-ai", + "opulence": "opulence", + "opul": "opulous", + "osqth": "opyn-squeeth", + "oracle": "oracleswap", + "omt": "oracle-meta-technologies", + "orai": "oraichain-token", + "oraix": "oraidex", + "orang": "orang", + "ornj": "orange", + "orng": "orange-2", + "o4dx": "orangedx", + "orao": "orao-network", + "olm": "ora-protocol", + "orbi": "orbital7", + "obelt": "orbit-bridge-klaytn-belt", + "obnb": "orbit-bridge-klaytn-binance-coin", + "oeth": "origin-ether", + "ohandy": "orbit-bridge-klaytn-handy", + "omatic": "orbit-bridge-klaytn-matic", + "oorc": "orbit-bridge-klaytn-orbit-chain", + "oxrp": "orbit-bridge-klaytn-ripple", + "ousdc": "orbit-bridge-klaytn-usdc", + "ousdt": "orbit-bridge-klaytn-usd-tether", + "owbtc": "orbit-bridge-klaytn-wrapped-btc", + "orc": "orc", + "opad": "orbitpad", + "orbit": "orbit-protocol", + "orbt": "orbitt-pro", + "orbr": "orbler", + "obi": "orbofi-ai", + "orbs": "orbs", + "orca": "orca", + "avai": "orca-avai", + "scatom": "orchai-protocol-staked-compound-atom", + "oxt": "orchid-protocol", + "wbrge": "ordbridge", + "order": "orderly-network", + "rdex": "orders-exchange", + "orbk": "ordibank", + "ordibot": "ordibot", + "orfy": "ordify", + "odgn": "ordigen", + "ordibridge": "ordinal-bridge", + "odoge": "ordinal-doge", + "ordi": "ordinals", + "ordifi": "ordinalsfi", + "ord": "ordinex", + "ords": "ordiswap-token", + "ore": "ptokens-ore", + "oreo": "oreoswap", + "ost": "simple-token", + "ousd": "origin-dollar", + "ogv": "origin-dollar-governance", + "lgns": "origin-lgns", + "ogn": "origin-protocol", + "trac": "trac", + "ogy": "origyn-foundation", + "orion": "orion-money", + "orn": "orion-protocol", + "ork": "orkan", + "orym": "orym", + "osak": "osaka-protocol", + "osean": "osean", + "oshi": "phantom-of-the-kill-alternative-imitation-oshi", + "osk": "osk", + "osmi": "osmium", + "osmo": "osmosis", + "ton": "tontoken", + "trx": "tron-bsc", + "otacon": "otacon-ai", + "own": "otherworld", + "otia": "otia", + "otiainu": "otiainu", + "otsea": "otsea", + "home": "otterhome", + "otti": "otti", + "otto": "ottochain", + "otn": "otton", + "$otty": "otty-the-otter", + "otx": "otx-exchange", + "ousg": "ousg", + "outdefine": "outdefine", + "gq": "outer-ring", + "out": "outter-finance-2", + "ovl3": "oval3", + "clocksol": "overclock-staked-sol", + "ovdm": "overdome", + "ov": "overlay-protocol", + "dai+": "overnight-dai", + "ovn": "overnight-finance", + "overpow": "overpowered", + "$ovol": "ovols-floor-index", + "ovo": "ovo-nft-platform", + "ovr": "ovr", + "owl": "stark-owl", + "oco": "owners-casino-online", + "0xbtc": "oxbitcoin", + "oxbt": "oxbt", + "oxb": "oxbull-tech-2", + "ox": "ox-fun", + "oxy": "oxygen", + "krpza": "oxyo2", + "ozo": "ozone-chain", + "$ozone": "ozone-metaverse", + "p2ps": "p2p-solutions-foundation", + "paal": "paal-ai", + "pablo": "pablo-defi", + "pac": "pactus", + "paf": "pacific", + "port": "port-finance", + "$paco": "paco", + "pacoca": "pacoca", + "padawan": "padawan", + "padre": "padre", + "page": "page", + "pai": "purple-ai", + "paid": "paid-network", + "work": "work-x", + "brush": "paint-swap", + "paired": "pairedworld", + "ppd": "paisapad", + "pajamas": "pajamas-cat", + "bolly": "paje-etdev-company", + "pak": "pakcoin", + "pal": "paladin", + "plb": "paladeum", + "palai": "paladinai", + "dpltr": "palantir-tokenized-stock-defichain", + "earth": "palebluedot", + "plt": "poollotto-finance", + "palg": "palgold", + "palm": "palmpay", + "verdao": "palmeiras-fan-token", + "pambii": "pambii", + "pana": "panacoin", + "gcake": "pancake-games", + "hunny": "pancake-hunny", + "cake": "pancakeswap-token", + "ptkn": "panda", + "pnd": "pandacoin", + "pfi": "pandafi", + "pmd": "pandemic-diamond", + "pando": "pando", + "pandora": "pandora", + "pan": "pantos", + "pndr": "ponder-one", + "ptx": "pando-token", + "stone": "tranquil-staked-one", + "png": "pangolin", + "pfl": "professional-fighters-league-fan-token", + "pbar": "pangolin-hedera", + "psb": "planet-sandbox", + "panic": "panicswap", + "panj": "panjea", + "panx": "panorama-swap-token", + "pano": "panoverse", + "zkp": "panther", + "panties": "panties", + "papa": "papa-on-sol", + "papadoge": "papa-doge", + "ppt": "populous", + "plane": "paper-plane", + "chulo": "papichulo", + "papi": "puppy", + "papo": "papocoin", + "ppft": "papparico-finance-token", + "papu": "papu-token", + "pap": "papyrus-2", + "papyrus": "papyrus-swap", + "par": "par-stablecoin", + "pdx": "pokedx", + "rgen": "paragen", + "para": "paraverse", + "pdt": "paragonsdao", + "xpll": "parallelchain", + "pausd": "parallel-usd", + "param": "param", + "paras": "paras", + "psol": "parasol-finance", + "psp": "paraswap", + "prcl": "parcl", + "prx": "parex", + "prb": "paribu-net", + "pbx": "probinex", + "prf": "parifi", + "pfusdc": "parifi-usdc", + "pfweth": "parifi-weth", + "psg": "paris-saint-germain-fan-token", + "parma": "parma-calcio-1913-fan-token", + "paro": "parobot", + "pbirb": "parrotly", + "prt": "portion", + "prq": "parsiq", + "part": "particl", + "prtcle": "particle-2", + "particle": "particles-money", + "ptc": "prospera-tax-credit", + "mpc": "partisia-blockchain", + "phat": "partyhat-meme", + "parry": "party-parrot", + "pasg": "passage", + "psl": "pastel", + "pat": "pat", + "patex": "patex", + "pathsol": "pathfinders-staked-sol", + "ptoy": "patientory", + "ppy": "patriot-pay", + "pats": "pats", + "patton": "patton", + "paul": "paul", + "pavia": "pavia", + "paw": "paypaw", + "paws": "pawstars", + "pawth": "pawthereum-2", + "upi": "pawtocol", + "paxe": "paxe", + "paxg": "pax-gold", + "usdp": "skale-ima-bridged-usdp", + "paxu": "pax-unitas", + "payb": "payb", + "pybc": "paybandcoin", + "pci": "pay-coin", + "pin": "pay-it-now", + "xpay": "payments", + "psub": "payment-swap-utility-board", + "payn": "paynet-coin", + "pyusd": "paypal-usd", + "epan": "paypolitan-token", + "propel": "payrue", + "ego": "paysenger-ego", + "pays": "payslink-token", + "payx": "payx", + "pay": "tenx", + "pbie": "pbie", + "pbtc35a": "pbtc35a", + "pi": "pi-network-iou", + "pcm": "pcm", + "pme": "pomerium-community-meme-t", + "dpdbc": "pdbc-defichain", + "pce": "peace-coin", + "pc": "playable-coin", + "pch": "pigcoinhero", + "pchf": "peachfolio", + "peachy": "peachy", + "peanie": "peanie", + "nux": "peanut", + "peas": "peapods-finance", + "pearl": "pearl-finance", + "pear": "pear-swap", + "pedro": "pedro-the-raccoon", + "peeno": "peeno", + "peep": "peep", + "peepa": "peepa", + "peepo": "peepo", + "pepo": "peepo-eth", + "$peep": "peepo-sol", + "ppc": "peercoin", + "peezy": "young-peezy-aka-pepe", + "pgre": "pegasus-gold-real-estate", + "psys": "pegasys-rollux", + "pgx": "pegaxy-stone", + "peg": "pegazus-finance", + "peusd": "peg-eusd", + "peka": "peka", + "pelf": "pelfort", + "pem": "pembrock", + "pendle": "pendle", + "pen": "protocon", + "peng": "peng", + "pengu": "penguiana", + "pefi": "penguin-finance", + "pos": "pengyos", + "penos": "penos", + "penose": "penose", + "pnp": "penpie", + "pny": "peony-coin", + "pepa": "pepa-inu", + "pepcat": "pepcat", + "pepe2.0": "pepe-2-0", + "pepeai": "pepe-ai", + "pepeblue": "pepeblue", + "pepebnbs": "pepebnbs", + "pbb": "pepe-but-blue", + "pepecash": "pepecash-bsc", + "pepecat": "pepecat", + "peo": "pepe-ceo", + "pepechain": "pepe-chain", + "pepecoin": "pepecoin-2", + "pep": "pepecoin-network", + "ppdex": "pepedex", + "pepedoge": "pepe-doge", + "pepega": "pepega", + "pepeg": "pepe-girl", + "pew": "pew4sol", + "$ina": "pepeinatux", + "pepi": "pepito", + "pepinu": "pepinu-sol", + "ǝԁǝԁ": "pepe-inverted", + "pepejr": "pepe-junior", + "$plpc": "pepe-le-pew-coin", + "pelo": "pepelon-token", + "pepemaga": "pepe-maga", + "ppblz": "pepemon-pepeballs", + "pepenomics": "pepenomics", + "pog": "proof-of-gorila", + "pfire": "pepe-on-fire", + "pepew": "pepepow", + "snake": "snake-3", + "pepera": "pepera", + "skull": "wolf-skull", + "pepesora": "pepe-sora-ai", + "pepebnb": "pepe-the-frog", + "pepee": "pepe-the-pepe", + "pepetr": "pepe-treasure", + "ptrump": "pepe-trump", + "uncle": "pepe-uncle", + "pepez": "pepe-undead", + "cute": "pepe-uwu", + "pif": "pepewifhat", + "pwh": "pepewifhat-2", + "pepewifhat": "pepewifhat-3", + "pepewfpork": "pepewifpork", + "pepex": "pepex", + "pepexl": "pepexl", + "pepig": "pepig", + "peppa": "peppa", + "pepurai": "pepurai", + "pepy": "pepy-coin", + "pera": "pera-finance", + "percy": "percy", + "przs": "perezoso", + "peri": "peri-finance", + "perc": "perion", + "perl": "perlin", + "pgiff": "permagiff", + "ask": "permission-coin", + "usdpy": "perpetual-delta-neutral-yield-optimism", + "perp": "perpetual-protocol", + "prp": "perpetuum-coin", + "perpx": "perpex", + "per": "per-project", + "pry": "perpy-finance", + "jotchua": "perro-dinero", + "perry": "perry-the-bnb", + "ped": "perseid-finance", + "persib": "persib-fan-token", + "xprt": "persistence", + "stkxprt": "persistence-staked-xprt", + "fpft": "peruvian-national-football-team-fan-token", + "pesa": "pesabase", + "peshi": "peshi", + "pesto": "pesto-the-baby-king-penguin", + "pts": "piteas", + "pete": "pete", + "peth": "peth", + "petoshi": "petoshi", + "ptshp": "petshop-io", + "$gold": "runescape-gold-runes", + "pftm": "pftm", + "pgala": "pgala", + "pha": "pha", + "$xcpha": "phala-moonbeam", + "phame": "phame", + "phm": "phantom-protocol", + "phar": "pharaoh", + "phasesol": "phase-labs-staked-sol", + "phauntem": "phauntem", + "social": "phavercoin", + "pcd": "phecda", + "pt": "phemex", + "phnx": "phoenixdao", + "pnx": "phenx", + "phiat": "phiat-protocol", + "phil": "phili-inu", + "phpc": "philippine-peso-coin", + "pbos": "phobos-token", + "pnic": "phoenic-token", + "phx": "phoenix-token", + "pxc": "phoenixcoin", + "phb": "red-pulse", + "phonon": "phonon-dao", + "phr": "phore", + "pmw": "photon-milky-way", + "photon": "photonswap", + "php": "phpcoin", + "phron": "phronai", + "phteve": "phteven", + "phunk": "phunk-vault-nftx", + "phtr": "phuture", + "phux": "phux-governance-token", + "phy": "physis", + "pib": "pibble", + "pica": "picasso", + "pinu": "pulse-inu-2", + "pickle": "pickle-finance", + "rick": "pick-or-rick", + "pck": "pickvibe", + "picosol": "pico-staked-sol", + "pig": "pig-finance", + "pgn": "pigeoncoin", + "pigeon": "pigeon-in-yellow-boots", + "pgenz": "pigeon-park", + "pigga": "pigga", + "$piggy": "pigged-by-piggy", + "pika": "pika-protocol-2", + "mls": "pikaster", + "$pill": "pill", + "plr": "pillar", + "pcat": "pineapple-cat", + "pineowl": "pineapple-owl", + "pineye": "pineye", + "pingu": "pingu-on-sol", + "pinkav": "pinjam-kava", + "froglic": "pink-hood-froglicker", + "pinkm": "pinkmoon", + "pinkninja": "pinkninja", + "pinksale": "pinksale", + "snail": "snailbrook", + "pino": "pino", + "ptu": "pintu-token", + "pion": "pion", + "pip": "pip-2", + "pipi": "pipi-the-cat", + "pirate": "pirate-token", + "arrr": "pirate-chain", + "piratecoin☠": "piratecoin", + "pira": "piratera", + "pirb": "pirb", + "piss": "pisscoin", + "pit": "pitbull", + "pitchfxs": "pitch-fxs", + "pitqc": "pitquidity-capital", + "pivn": "pivn", + "pivx": "pivx", + "$pixe": "pixel-2", + "pwc": "pixel-battle", + "pixl": "sappy-seals-pixl", + "pixel": "pixelverse", + "pixfi": "pixelverse-xyz", + "pxt": "pixer-eternity", + "pixi": "pixi", + "pix": "private-wrapped-ix", + "pixiz": "pixiz", + "pzt": "pizon", + "pizza": "samurai-pizza-sats", + "$pizza": "pizzaverse", + "pkt": "play-kingdom", + "place": "place-war", + "planet": "planet-token", + "planets": "planetwatch", + "plnk": "plankton", + "plank": "planktos", + "plq": "planq", + "pvu": "plant-vs-undead-token", + "ppay": "plasma-finance", + "pth": "plastichero", + "plastik": "plastiks", + "plata": "plata-network", + "payu": "platform-of-meme-coins", + "plc": "platincoin", + "lat": "platon-network", + "ptp": "pulsetrailerpark", + "3ull": "playa3ull-games-2", + "plah": "playahh-app", + "pbux": "playbux", + "pcnt": "playcent", + "pda": "playdapp", + "$play": "playdoge", + "pym": "playermon", + "playfi": "playfi", + "pxg": "playgame", + "waves": "waves", + "ppad": "playpad", + "drn": "play-to-create", + "play": "xcad-network-play", + "pzp": "playzap", + "plcu": "plc-ultima", + "pln": "pulseln", + "nsfw": "pleasure-coin", + "pleb": "plebz", + "bling": "plebdreke", + "plenty": "plenty-dao", + "plex": "plex", + "plug": "plgnet", + "plink": "plink-cat", + "plot": "plotx", + "plsjones": "plsjones", + "pli": "plugin", + "plums": "plums", + "plus": "plus-bet", + "plu": "pluton", + "pld": "plutonian-dao", + "plsarb": "plutus-arb", + "pls": "pulsechain", + "plsdpx": "plutus-dpx", + "plsrdnt": "plutus-rdnt", + "plvglp": "plvglp", + "plxy": "plxyer", + "plyr": "plyr-l1", + "plz": "plz-come-back-to-eth", + "pmg": "pomerium-ecosystem", + "pnear": "pnear", + "pnt": "pnetwork", + "pnut": "pnut", + "pnwr": "pnwr-token", + "poc": "poc-blockchain", + "pochita": "pochita", + "pkoin": "pocketcoin", + "pokt": "pocket-network", + "pocket": "pocket-watcher-bot", + "poco": "pocoland", + "pod": "the-other-party", + "pogai": "pogai-sol", + "pogs": "pog-digital", + "pxp": "pointpay-2", + "points": "points-on-solana", + "poi$on": "poison-finance", + "pj": "pojak", + "pokegrok": "pokegrok", + "pkn": "poken", + "pokerfi": "pokerfi", + "pokky": "pokkycat", + "poko": "poko", + "pegg": "pokpok-golden-egg", + "pola": "polaris-share", + "spolar": "polar-shares", + "poldo": "poldo", + "plmc": "polimec", + "poli": "polinate", + "polis": "star-atlas-dao", + "pocat": "polite-cat", + "pbr": "polkabridge", + "polc": "polka-city", + "pdex": "polkadex", + "pkf": "polkafoundry", + "pgold": "polkagold", + "polk": "polkamarkets", + "prare": "polkarare", + "pols": "polkastarter", + "pswap": "polkaswap", + "pwar": "polkawar", + "pkr": "polker", + "polly": "polly", + "ndefi": "polly-defi-nest", + "polter": "polter-finance", + "pbt": "property-blockchain-trade", + "fish": "ton-fish-memecoin", + "pmon": "polychain-monsters", + "polycub": "polycub", + "polydoge": "polydoge", + "pgen": "polygen", + "gull": "polygod", + "polygold": "polygold", + "pol": "proof-of-liquidity", + "spade": "polygonfarm-finance", + "zkj": "polyhedra-network", + "polx": "polylastic", + "poly": "polymath", + "polyx": "polymesh", + "polypad": "polypad", + "hmdx": "poly-peg-mdex", + "pup": "polypup", + "shi3ld": "polyshield", + "ptce": "polytech", + "trade": "unitrade", + "krill": "polywhale", + "yeld": "polyyeld-token", + "pom": "pomcoin", + "pomboo": "pomeranian-boo", + "poncho": "poncho", + "pndc": "pond-coin", + "pong": "pong-heroes", + "pongo": "pongo", + "ponk": "ponk-2", + "ponke": "ponke-ton", + "porke": "ponkefork", + "ponkei": "ponkei-the-chinese-ponke", + "toon": "pontoon", + "skate": "ponyhawk", + "ponzi": "ponzi", + "ponzio": "ponziothecat", + "ponzy": "ponzy", + "pooch": "pooch", + "poocoin": "poocoin", + "poodl": "poodl-inu", + "poodle": "poodlecoin", + "poo doge": "poo-doge", + "poof": "poofai", + "pooh": "pooh", + "$pooku": "pooku", + "pool": "pooltogether", + "pusdc.e": "pooltogether-prize-usdc", + "pweth": "pooltogether-prize-weth-aave", + "plup": "poolup", + "poolz": "poolz-finance", + "poolx": "poolz-finance-2", + "$poon": "poon-coin", + "poop": "poopcoin-poop", + "pooti": "pooti-relaunch", + "popcat": "popcat", + "pop": "proof-of-pepe-art", + "pcorn": "popcorn-meme", + "popdog": "popdog-2", + "pope": "popecoin", + "popk": "popkon", + "popo": "popo-the-cat", + "$popo": "popo-pepe-s-dog", + "frop": "popo-the-frog", + "pora": "pora-ai", + "porigon": "porigon", + "pornrocket": "pornrocket", + "port3": "port3-network", + "poai": "port-ai", + "portal": "portal-2", + "poe": "portal-network-token", + "por": "portuma", + "pory": "porygon", + "pdo": "poseidollar", + "psh": "poseidollar-shares", + "psdn": "poseidon-2", + "poshi": "poshi-world", + "posi": "position-token", + "psm": "possum", + "phmn": "posthuman", + "post": "post-tech", + "pot": "x-protocol", + "tato": "potato-2", + "potdog": "potdog", + "p404": "potion-404", + "pou": "pou", + "poupe": "poupe", + "durev": "povel-durev", + "powa": "powa-rangers-go-runes", + "pwr": "power-token", + "pxdc": "powercity-pxdc", + "watt": "wattton", + "powr": "power-ledger", + "podo": "power-of-deep-ocean", + "pwrsol": "power-staked-sol", + "ptf": "powertrade-fuel", + "pow": "punks-comic-pow", + "ppizza": "ppizza", + "pqx": "pqx", + "prcy": "prcy-coin", + "pre": "presearch", + "rain": "rainmaker-games", + "preai": "predict-crypto", + "prmx": "prema", + "preme": "preme-token", + "premia": "premia", + "prnt": "prnt", + "prtg": "pre-retogeum", + "platy": "president-platy", + "presi": "president-red", + "ron": "ronin", + "press": "pressdog", + "prick": "prick", + "primal": "primal-b3099cd0-995a-4311-80d5-9c133153b38e", + "pst": "primas", + "primate": "primate", + "d2d": "prime", + "peace": "primeace", + "xpm": "primecoin", + "primeeth": "prime-staked-eth", + "pmx": "primex-finance", + "print": "print-protocol", + "$pp": "print-the-pepe", + "prism": "prism-2", + "prisma": "prisma-governance-token", + "mkusd": "prisma-mkusd", + "prvc": "privacoin", + "pvgo": "privago-ai", + "bpriva": "privapp-network", + "pgpt": "privateai", + "pri": "privateum", + "pwrose": "private-wrapped-wrose", + "priv": "privcy", + "pzm": "prizm", + "prm": "prm-token", + "prob": "probit-exchange", + "prc": "proc", + "prco": "procyon-coon-coin", + "pro": "proton-coin", + "prai": "protonai", + "ale": "project-ailey", + "athena": "project-athena", + "mullet": "project-mullet", + "wiken": "project-with", + "xil": "projectx", + "gxe": "project-xeno", + "prom": "prometeus", + "pmpy": "prometheum-prodigy", + "promise": "promise", + "promptide": "promptide", + "proof": "proof-platform", + "props": "props", + "propc": "propchain", + "pel": "propel-token", + "prophet": "prophet-of-ethereum", + "pros": "prosper", + "zaar": "protectorate-protocol", + "proteo": "proteo-defi", + "proto": "protofi", + "p-gyd": "proto-gyro-dollar", + "xpr": "proton", + "prtn": "proton-project", + "xpx": "xpx", + "prxy": "proxy", + "pssymonstr": "pssymonstr", + "pstake": "pstake-finance", + "stkbnb": "pstake-staked-bnb", + "stkdydx": "pstake-staked-dydx", + "stkhuahua": "pstake-staked-huahua", + "stkosmo": "pstake-staked-osmo", + "stkstars": "pstake-staked-stars", + "psyop": "psyop", + "psy": "psyoptions", + "pbtc": "ptokens-btc", + "pube": "pube-finance", + "publx": "publc", + "pmt": "public-meme-token", + "pudgy": "pudgy-cat", + "pufeth": "pufeth", + "puffy": "puffy", + "puggle": "puggleverse", + "puggy": "puggy-coin", + "sara": "pulsara", + "plsr": "pulsar-coin", + "pulse": "pulse-token", + "plsb": "pulsebitcoin-pulsechain", + "plsc": "pulsecoin", + "pulsedoge": "pulsedoge", + "pdrip": "pulse-drip", + "launch": "superlauncher-dao", + "plspad": "pulsepad", + "plsp": "pulsepot", + "prs": "pulsereflections", + "plsx": "pulsex", + "inc": "pulsex-incentive-token", + "pulsr": "pulsr", + "puma": "puma", + "pma": "pumapay", + "pumlx": "pumlx", + "pumpbtc": "pumpbtc", + "pumpkinsol": "pumpkin-staked-sol", + "pumpopoly": "pumpopoly", + "pumpr": "pumpr", + "npxs": "pundi-x", + "pundix": "pundi-x-2", + "purse": "pundi-x-purse", + "pun": "punkko", + "pundu": "pundu", + "pungu": "pungu", + "punk": "starkpunks", + "spunk": "punk-3", + "punkai": "punkai", + "pupdoge": "pup-doge", + "$puppa": "puppacoin", + "puppets": "puppets-arts-2", + "pups": "rune-pups", + "pca": "purchasa", + "ufi": "purefi", + "pure": "puriever", + "$purp": "purp", + "purpe": "purple-pepe", + "prps": "purpose", + "purr": "purrcoin", + "pusd": "pusd", + "puss": "pusscat", + "puca": "puss-cat", + "pussy": "pussy-financial", + "put": "putincoin", + "puush": "puush-da-button", + "puzzle": "puzzle-swap", + "pvc": "pvc-meta", + "pyges": "pyges", + "pyi": "pyrin", + "pyro": "pyro-2", + "pyo": "pyrrho-defi", + "pyth": "pyth-network", + "qanx": "qanplatform", + "qash": "qash", + "qwla": "qawalla", + "qbt": "qubit", + "qdt": "qchain-qdt", + "qkc": "quark-chain", + "qie": "qie", + "qtc": "quantum-cloak", + "meer": "qitmeer-network", + "qiusd": "qiusd", + "qjuno": "qjuno", + "qlindo": "qlindo", + "qlc": "qlink", + "qlix": "qlix", + "qmall": "qmall", + "qmc": "qmcoin", + "qoda": "qoda", + "qdo": "qoodo", + "qorpo": "qopro", + "qwt": "qowatt", + "qgov": "q-protocol", + "dqqq": "qqq-tokenized-stock-defichain", + "qrt": "qrkita-token", + "qro": "qro", + "osp": "qrolli", + "q*": "qstar", + "qto": "qtoken", + "qtum": "qtum", + "quack": "richquack", + "quacks": "quacks", + "quad": "quadency", + "equad": "quadrant-protocol", + "quai": "quai-network", + "qai": "quantixai", + "qtk": "quantcheck", + "qtf": "quantfury", + "qlt": "quantland", + "qtlx": "quantlytica", + "qnt": "quant-network", + "qns": "quantoswap", + "eurd": "quantoz-eurd", + "$qtdao": "quantum-dao", + "qf": "quantum-fusion", + "quantum": "quantum-hub", + "qswap": "quantum-network", + "pipe": "quantum-pipeline", + "qrl": "quantum-resistant-ledger", + "qua": "quasacoin", + "quark": "quark-2", + "qckuji": "quark-protocol-staked-kuji", + "qcmnta": "quark-protocol-staked-mnta", + "qtz": "quartz", + "qsr": "quasar-2", + "qubic": "qubic-network", + "$qbit": "qubi-tokenized-rwa", + "quby": "quby", + "qyai": "quby-ai", + "qdfi": "qudefi", + "quick": "quickswap", + "qkntl": "quick-intel", + "qck": "quicksilver", + "qtcc": "quick-transfer-coin-plus", + "qdx": "quidax", + "quidd": "quidd", + "quil": "wrapped-quil", + "qin": "quincoin", + "quint": "quint", + "quipu": "quipuswap-governance-token", + "qrx": "quiverx", + "qtcon": "quiztok", + "qgold": "quorium", + "qusd": "qusd-q-protocol", + "r34p": "r34p", + "r4re": "r4re", + "rbtc": "rootstock", + "rait": "rabbit-games", + "rbit": "rabbit-inu", + "rab": "rabbit-wallet", + "rbx": "reserveblock", + "rabi": "rabi", + "roon": "raccoon", + "racefi": "racefi", + "atoz": "race-kingdom", + "racex": "racex", + "racing": "racing-club-fan-token", + "$rkt": "racket", + "rac": "racoon", + "rad": "radicle", + "rada": "rada-foundation", + "rxd": "radiant", + "rdnt": "radiant-capital", + "raca": "radio-caca", + "radio": "radioshack", + "val": "valeria", + "xrd": "radix", + "rdp": "radpie", + "$radx": "radx-ai", + "rae": "rae-token", + "raff": "ton-raffles", + "rafl": "rafl-on-base", + "raft": "raft", + "rage": "rage-fan", + "rai": "rai", + "rdn": "raiden-network", + "aurum": "raider-aurum", + "sharx": "raidsharksbot", + "raid": "raid-token", + "sofi": "rai-finance", + "rail": "railgun", + "rainbow": "rainbow-2", + "rainbowtoken": "rainbowtoken", + "rnbw": "rainbow-token", + "rbw": "rainbow-token-2", + "$raini": "rainicorn", + "rst": "raini-studios-token", + "yvrai": "rai-yvault", + "rake": "rake-in", + "rak": "rake-finance", + "rkc": "rakuichi-token", + "rly": "rally-2", + "rama": "ramestta", + "ram": "ramses-exchange", + "ramp": "ramp", + "rnd": "rand", + "random": "random-tg", + "rbet": "rangerbet", + "rft": "rangers-fan-token", + "rpg": "revolve-games", + "ranker": "rankerdao", + "$rapcat": "rapcat", + "raphael": "raphael", + "rpd": "rapids", + "rtm": "raptoreum", + "rptr": "raptor-finance-2", + "rbp": "rare-ball-shares", + "rari": "rarible", + "rgt": "rari-governance-token", + "rasto": "rastopyry", + "rat": "ratsdao", + "rate": "rate", + "ratio": "ratio-finance", + "rats": "ratsbase", + "ratwif": "ratwifhat", + "rvn": "ravencoin", + "rvc": "revenue-coin", + "raven": "raven-protocol", + "rwb": "rawblock", + "ray": "raydium", + "aktio": "rayn", + "xray": "ray-network", + "rays": "rays", + "raze": "raze-network", + "razor": "razor-network", + "rzby": "razzberry-inu", + "enft": "rcd-espanyol-fan-token", + "rch": "rich", + "rdat": "r-datadao", + "rdgx": "r-dee-protocol", + "$reach": "reach", + "rtc": "reaction", + "rf": "reactorfusion", + "rdf": "readfi", + "rs": "readyswap", + "rtf": "ready-to-fight", + "rkr": "reaktor", + "rwa": "xend-finance", + "real": "realy-metaverse", + "$rael": "realaliensenjoyingliquidity", + "rbc": "ruby-currency", + "reeth": "real-ether", + "speed": "speed-star-speed", + "fevr": "realfevr", + "refi": "refi-protocol", + "rgoat": "realgoat", + "rio": "realio-network", + "lis": "realis-network", + "rmv": "reality-metaverse", + "rvr": "reality-vr", + "realm": "realm", + "rnt": "reental", + "smurfcat": "real-smurf-cat", + "smurf": "smurfsinu", + "шайлушай": "real-smurf-cat-bsc", + "rso": "real-sociedad-fan-token", + "rlto": "real-tok", + "reg": "realtoken-ecosystem-governance", + "usdr": "real-usd", + "rvm": "realvirm", + "rwx": "realworldx", + "reap": "releap", + "reaper": "reaper-token", + "rebase": "rebase-base", + "$irl": "rebase-gg-irl", + "rbls": "rebel-bots", + "rc": "rebel-cars", + "rbt": "rubix", + "rebus": "rebus", + "r1": "recast1", + "rcg": "recharge", + "rec": "recoverydao", + "rrt": "recovery-right-token", + "rtg": "rectangle-finance", + "rtime": "rectime", + "riwa": "recycle-impact-world-association", + "red": "red-token", + "btrfly": "redacted", + "rbnt": "redbelly-network-token", + "rdd": "reddcoin", + "rsvusdt": "redsonic-vault-tether-usd", + "reddit": "reddit", + "redev2": "redecoin", + "rdtn": "redemption-token", + "redfeg": "redfeg", + "rfox": "redfox-labs-2", + "agame": "red-hat-games", + "redpepe": "red-pepe", + "rpepe": "red-pepe-2", + "rpill": "red-pill-2", + "rsveth": "redsonic-vault-ethereum", + "redux": "redux-vault", + "reee": "reeeeeeeeeeeeeeeeeeeee", + "reef": "reef", + "rfr": "refereum", + "ref": "reflect-audit", + "$reflect": "reflect", + "rfl": "reflect-base", + "rto": "reflecto", + "rfx": "reflex", + "rld": "refluid", + "rfrm": "reform-dao", + "rfd": "refund", + "rfnd": "refund-base", + "regen": "regen", + "regent": "regent-coin", + "regu": "regularpresale", + "reign": "reign-of-terror", + "rei": "rei-network", + "rjv": "rejuve-ai", + "rekt": "rektcoin", + "rel": "relation-native-token", + "relay": "relay-token", + "remilio": "remilio", + "rem": "remme", + "rena": "warena", + "renbtc": "renbtc", + "render": "render-token", + "rendy": "rendy-ai", + "renec": "renec", + "rngd": "renegade", + "ret": "renewable-energy", + "renq": "renq-finance", + "rent": "rentai", + "rnb": "rentible", + "rez": "renzo", + "ezeigen": "renzo-restaked-eigen", + "pzeth": "renzo-restaked-lst", + "ezsol": "renzo-restaked-sol", + "rplay": "replay", + "rdog": "repost-dog", + "repx": "reposwap", + "rpc": "republic-credits", + "ren": "republic-protocol", + "rpk": "republik", + "req": "request-network", + "rescue": "rescue", + "rsc": "researchcoin", + "rcd": "reserve-currency-dogs", + "rsr": "reserve-rights-token", + "rese": "rese-social", + "reset": "reset", + "redo": "resistance-dog", + "redu": "resistance-duck", + "regi": "resistance-girl", + "reno": "resistance-notcoin", + "tor": "tor", + "rlp": "resolv-rlp", + "usr": "resolv-usr", + "source": "source", + "rsweth": "restaked-swell-eth", + "rstk": "restake-finance", + "rtr": "restore-the-republic", + "rtk": "retafi", + "retard": "retard-coin", + "rapr": "retardedapr", + "retardio": "retardio", + "reth": "rocket-pool-eth", + "reth2": "reth2", + "retik": "retik-finance", + "$retire": "retire-on-sol", + "retro": "retro-finance", + "reuni": "reunit-wallet", + "rev3l": "rev3al", + "rev": "revepe", + "rgusd": "revenue-generating-usd", + "rvsl": "reversal", + "rvst": "revest-finance", + "rpm": "revolon", + "rvl": "revolotto", + "rvlt": "revolt-2-earn", + "revo": "revomon-2", + "revu": "revuto", + "revv": "revv", + "rwd": "reward", + "rewd": "reward-protocol", + "rex": "rex-2", + "xrx": "rex-token", + "rexhat": "rexwifhat", + "rexx": "rexx-coin", + "zolt": "rezolut", + "rgame": "r-games", + "dvf": "rhinofi", + "rho": "rho-token", + "rhythm": "rhythm", + "ribbit": "solribbit", + "rbn": "robinos-2", + "rib": "riverboat", + "rdt": "ridotto", + "ric": "riecoin", + "ru": "rifi-united", + "rif": "rif-token", + "usdrif": "rif-us-dollar", + "rgp": "rigel-protocol", + "grg": "rigoblock", + "rik": "rikeza", + "rifi": "rikkei-finance", + "riku": "riku", + "riky": "riky-the-raccoon", + "ril": "rilcoin", + "rilla": "rillafi", + "rxt": "rimaunangis", + "rinia": "rinia-inu", + "rintaro": "rintaro", + "rfuel": "rio-defi", + "riot": "riot-racers", + "rcn": "ripio-credit-network", + "rlusd": "ripple-usd", + "mmac": "rise-of-the-warbots-mmac", + "ris": "riser", + "risita": "risitas-2", + "rite": "ritestream", + "rito": "rito", + "welle": "riverex-welle", + "rivus": "rivusdao", + "atolo": "rizon", + "rizz": "rizz-solomon", + "rkey": "rkey", + "rloop": "rloop", + "rmrk": "rmrk", + "roach": "roach-rally", + "roa": "roaland-core", + "stonks": "stonks-on-eth", + "jim": "roasthimjim", + "robin": "robin-on-cronos", + "rbai": "roboai-drc-20", + "vics": "robofi-token", + "robo": "the-meme-of-the-future", + "rbif": "robo-inu-finance", + "kiden": "robokiden", + "rbf": "robots-farm", + "rocket": "rocket-2", + "rpl": "rocket-pool", + "rckt": "rocketswap", + "rvf": "rocketx", + "rocki": "rocki", + "rr": "rockstar", + "rocky": "rocky-the-rock", + "$rocky": "rocky-on-base", + "roco": "roco-finance", + "rodai": "rod-ai", + "rdo": "rodeo-finance", + "roger": "roger", + "rog": "rogin-ai", + "rmav": "rogue-mav", + "rox": "roguex", + "rok": "rok", + "roko": "roko-network", + "rlb": "rollbit-coin", + "rlm": "rollium", + "rome": "rome", + "romeo": "romeo", + "rond": "rond", + "rong": "rong", + "ronnie": "ronnie", + "roobee": "roobee", + "rook": "rook", + "roost": "roost", + "isme": "root-protocol", + "rope": "rope-token", + "ror": "rorschach", + "rosa": "rosa-inu", + "rsn": "rosen-bridge", + "rosx": "roseon", + "rosnet": "rosnet", + "rosy": "rosy", + "rth": "rotharium", + "rndx": "round-x", + "roup": "roup", + "roush": "roush-fenway-racing-fan-token", + "route": "router-protocol-2", + "rovbtc": "rover-staked-bitcoin", + "rwn": "rowan-coin", + "roxy": "roxy-frog", + "rfc": "royal-finance-coin", + "rsft": "royal-smart-future-token", + "rpgmai": "rpg-maker-ai", + "r/snoofi": "r-snoofi", + "rss3": "rss3", + "rubber": "rubber-ducky", + "$ducky": "rubber-ducky-cult", + "rbd": "rubidium", + "rbl": "rublex", + "kenidy": "ruburt-f-kenidy-jr", + "ruby": "rubypulse", + "ruff": "ruff", + "rug": "rug-rugged-art", + "zmbe": "rugzombie", + "rumi": "rumi-finance", + "run": "run", + "rux": "runblox-arbitrum", + "rbot": "runesbot", + "rune": "thorchain", + "runix": "the-runix-token", + "rsic": "runecoin", + "mine": "spacemine", + "rb": "runesbridge", + "rg": "runes-glyphs", + "runi": "runesterminal", + "rsb": "runestone-bot", + "✖": "runes-x-bitcoin", + "runevm": "runevm", + "runic": "runic-chain", + "rng": "runigun", + "runner": "runner-2", + "rup": "rupee", + "idrt": "rupiah-token", + "rush": "rush-2", + "ruski": "ruski-inu", + "rust": "rusty-robot-country-club", + "ruuf": "ruufcoin", + "rwas": "rwa-finance", + "rwax": "rwax", + "rxcg": "rxcgames", + "ryiu": "ryi-unity", + "ryno": "ryno-ai", + "ryo": "ryo-coin", + "ryoshi": "ryoshi-with-knife", + "ryu": "ryujin", + "s": "soperme", + "s4f": "s4fe", + "skr": "saakuru-labs", + "sabai": "sabai-ecovers", + "sabaka inu": "sabaka-inu", + "sbr": "saber", + "saber": "saber-2", + "sable": "sable", + "sac": "sac-daddy", + "sape": "sad-ape", + "$saddy": "saddy", + "wompwomp": "sad-trombone", + "saf": "safcoin", + "sbonk": "shibonk-311f81df-a4ea-4f31-9e61-df0af8211bd7", + "safeclassic": "safeclassic", + "sfd": "safe-deal", + "safegrok": "safegrok", + "sha": "safe-haven", + "sfex": "safelaunch", + "safemars": "safemars", + "smars": "safemars-protocol", + "sme": "safememe", + "smcn": "safeminecoin", + "safemoo": "safemoo", + "sfm": "safemoon-2", + "smi": "safemoon-inu", + "sfz": "safemoon-zilla", + "safemuun": "safemuun", + "snb": "safe-nebula", + "sfp": "stade-francais-paris-fan-token", + "safereum": "safereum", + "ssgtx": "safeswap-token", + "trees": "safetrees", + "sfi": "saffron-finance", + "safle": "safle", + "safuu": "safuu", + "sage": "sage-universe", + "sai": "studioai", + "$saiko": "saiko-hamster", + "sail": "sail-dao", + "sails": "sailing", + "saitabit": "saitabit", + "stc": "techcat", + "soltama": "saitama-soltama", + "saito": "saito", + "spepe": "suipepe", + "sakai": "sakai-vault", + "saka": "saka-vault", + "sake": "sake-token", + "sku": "sakura", + "sup": "sakura-united-platform", + "sald": "salad", + "sally": "salamander", + "slm": "slm-games", + "legld": "salsa-liquid-multiversx", + "salt": "salt", + "sbae": "salt-bae-for-the-people", + "snv": "salt-n-vinegar", + "salty": "salty", + "sal": "salvium", + "sbf": "swapblast-finance-token", + "samowif": "samo-wif-hat", + "samo": "samoyedcoin", + "sam": "superalgorithmicmoney", + "yuki": "samurai-cat", + "sanctum": "sanctum", + "quartz": "sandclock", + "saca": "sandwich-cat", + "sandy": "sandy", + "misa": "sangkara", + "sani": "sanin-inu", + "sanshu!": "sanshu", + "sanshu": "sanshu-inu", + "santa": "santa-coin-2", + "santagrok": "santa-grok", + "saninu": "santa-inu", + "santos": "santos-fc-fan-token", + "spfc": "sao-paulo-fc-fan-token", + "spn": "sportzchain", + "sapp": "sapphire", + "sarries": "saracens-fan-token", + "sarco": "sarcophagus", + "srds": "sardis-network", + "saros": "saros-finance", + "sashimi": "sashimi", + "sassymf": "sassy-the-mf-sasquatch", + "satin": "satin-exchange", + "snd": "satnode", + "sato": "satoshi-finance", + "sao": "sator", + "soshe": "satoshe-network", + "scash": "satoshi-cash-network", + "satoshi": "satoshi-nakamoto", + "丰": "satoshi-nakamoto-rune", + "$godfather": "satoshi-nakamoto-sol", + "sap": "satoshi-panda", + "satusd": "satoshi-stablecoin", + "sats": "sats-ordinals", + "ssnc": "satoshisync", + "savm": "satoshivm", + "satox": "satoxcoin", + "satoz": "satozhi", + "sabr": "satsbridge", + "shnt": "sats-hunters", + "satt": "satt", + "sat": "super-athletes-token", + "$nukumutu": "satushi-nukumutu", + "sauce": "saucerswap", + "sauceinu": "sauce-inu", + "saudibonk": "saudi-bonk", + "saudipepe": "saudi-pepe", + "meat": "sausagers-meat", + "savg": "savage", + "svn": "stakevault-network", + "svd": "savedroid", + "sdai": "savings-xdai", + "susx": "savings-usx", + "say": "saycoin", + "sbtc": "sbtc", + "scales": "scales", + "sca": "scallop-2", + "scalex": "scalex", + "sclp": "scallop", + "scm": "scamfari", + "$mania": "scapesmania", + "dung": "scarab-tools", + "scx": "scarcity", + "scarcity": "scarcity-2", + "scart": "scart360", + "sccp": "s-c-corinthians-fan-token", + "sflr": "sceptre-staked-flr", + "schizo": "schizo", + "shc": "school-hack-coin", + "schrodi": "schrodi", + "sgr": "schrodinger-2", + "scie": "scientia", + "saci": "sc-internacional-fan-token", + "scooter": "scooter", + "scop": "scopuly-token", + "scorai": "scorai", + "scorp": "scorpion", + "scr": "scorum", + "$scot": "scottish", + "scotty": "scotty-beam", + "scrap": "scrap", + "scrat": "scrat", + "scream": "scream", + "scribes": "scribes", + "scpt": "script-network", + "spay": "spacey-2025", + "scriv": "scriv", + "scrolly": "scrolly-the-map", + "scuba": "scuba-dog", + "sdoge": "spacedoge", + "sdola": "sdola", + "scoin": "sdrive-app", + "seah": "seahorses", + "seal": "seal-sol", + "slk": "starlink-program", + "si": "siren", + "seam": "seamless-protocol", + "smp": "seamoon-protocol", + "spt": "sunpumptrading", + "sprl": "sea-pearl", + "0xsearch": "search", + "seba": "seba", + "snn": "sechain", + "swio": "second-world-games", + "scrt": "secret", + "hide": "secret-block-hide", + "wscrt": "secret-erc20", + "$crypt": "secret-skellies-society", + "ss": "secret-society", + "ser": "secretum", + "sect": "sector", + "scai": "securechain-ai", + "smrat": "secured-moonrat-token", + "sob": "secured-on-blockchain-2", + "seda": "seda-2", + "sdr": "sedra-coin", + "seeded": "seeded-network", + "sfund": "seedify-fund", + "slt": "sui-launch-token", + "sti": "seek-tiger", + "sef": "segment", + "$seif": "seifmoon", + "share": "share-on-crypto", + "sei": "seiwhale", + "spex": "stepex", + "serg": "seiren-games-network", + "seiyan": "seiyan", + "sekai": "sekai-dao", + "glory": "sekai-glory", + "skrt": "sekuritance", + "skya": "sekuya-2", + "sbar": "selfbar", + "slf": "self-chain", + "self": "self-token", + "selfie": "selfiedogcoin", + "sse": "soroosh-smart-ecosystem", + "soai": "self-operating-ai", + "selo": "selo", + "smai2.0": "sempsunai2-0", + "senate": "senate", + "send": "social-send", + "sendc": "sendcrypto", + "sendex": "sendex-ai", + "sendit": "sendit", + "sen": "senspark-matic", + "senk": "senk", + "snsy": "sensay", + "sfit": "sense4fit", + "sensei": "sensei-dog", + "sensi": "sensi", + "sets": "sensitrust", + "senso": "senso", + "sent": "sentiment-token", + "senai": "sentinel-ai", + "snt": "status", + "senc": "sentinel-chain", + "upp": "sentinel-protocol", + "sntr": "sentre", + "seor": "seor-network", + "сербскаяле": "serbian-dancing-lady", + "sersh": "serenity-shield", + "$serious": "serious-coin", + "srm": "solareum-d260e488-50a0-4048-ace4-1b82f9822903", + "seth": "seth", + "seth2": "seth2", + "sexy": "settled-ethxy-token", + "seur": "seur", + "sdt": "stake-dao", + "sevilla": "sevilla-fan-token", + "sex": "solidex", + "sfg": "s-finance", + "sfort": "sfortuna-token", + "🤷": "sgn-sho-ga-nai-sgn-runes", + "shack": "shackleford", + "shd": "shade-protocol", + "shadowcats": "shadowcats", + "$shadow": "shadowladys-dn404", + "svpn": "shadow-node", + "ethusdc": "shadowtokens-bridged-usdc-elastos", + "gang": "shadow-wizard-money-gang", + "shkk": "shakaka", + "shak": "shakita-inu", + "bala": "shambala", + "shang": "shanghai-inu", + "shan": "shanum", + "$sharbi": "sharbi", + "shm": "shardeum", + "wnot": "shard-of-notcoin-nft-bond", + "ult": "shardus", + "sgtv2": "sharedstake-governance-token", + "shr": "shree", + "$shaka": "sharetheshaka", + "sbee": "sharkbee", + "sc": "star-cat", + "sharki": "sharki", + "sharky": "sharky-swap", + "shawk": "shawk", + "sheb": "sheboshis-2", + "$sheesh": "sheesh-3", + "sheesha": "sheesha-finance-erc20", + "msheesha": "sheesha-finance-polygon", + "sheesh": "sheeshin-on-solana", + "shei": "sheishei", + "ss20": "shell", + "shl": "shelling", + "shell": "shell-protocol-token", + "ssai": "shelter-secure-ai", + "terz": "shelterz", + "shen": "shen", + "$shepe": "shepe", + "sherk": "sherk", + "shezmu": "shezmu", + "shezbtc": "shezmubtc", + "shezeth": "shezmueth", + "shezusd": "shezmuusd", + "shib2": "shib2", + "shib2.0": "shib2-0", + "shibaai": "shibaai", + "shibtc": "shibabitcoin-2", + "shibsc": "shiba-bsc", + "pesos": "shiba-cartel", + "shibceo": "shibceo", + "shibc": "shiba-classic", + "shico": "shibacorgi", + "shibdoge": "shibadoge", + "shifo": "shibafomi", + "shibemp": "shiba-inu-empire", + "$shibk": "shibakeanu", + "shibaken": "shibaken-finance", + "sbmt": "shibaments", + "shibanft": "shibanft", + "conk": "shibapoconk", + "qom": "shiba-predator", + "sns": "synesis-one", + "wbone": "wrapped-bone", + "shibarmy": "shib-army", + "shia": "shiba-saga", + "shibasso": "shibasso", + "shibx": "shibavax", + "verse": "verse-bitcoin", + "shepe": "shiba-v-pepe", + "$wif": "shibawifhat", + "xshib": "xshib", + "shibelon": "shibelon", + "shibgf": "shibgf", + "shibo": "shibonk", + "shiboo": "shiboo", + "sov": "sovryn", + "shsh": "shibsharks", + "shid": "shid", + "sdn": "shiden", + "shido": "shido-2", + "shih": "shih-tzu", + "shik": "shikoku", + "shiko": "shikoku-inu", + "shil": "shila-inu", + "sgt": "suzuverse", + "shill": "shill-token", + "smba": "shimbainu", + "smr": "shimmer", + "shi": "shirtum", + "shin": "shina-inu-2", + "sc20": "shine-chain", + "shinji": "shinjiru-inu", + "catshira": "shira-cat", + "frogdog": "shiro-the-frogdog", + "shiryo-inu": "shiryo-inu", + "shisha": "shisha-coin", + "suzume": "shita-kiri-suzume", + "shitzu": "shitzu", + "shiv": "shiva-inu", + "neuros": "shockwaves", + "shoe": "shoefy", + "shog": "shog", + "shoki": "shoki", + "shon": "shontoken", + "shoot": "shoot-2", + "shop": "shopping-io-token", + "shping": "shping", + "shrap": "shrapnel-2", + "shred": "shredn", + "shredn": "shredn-dog", + "shrekai": "shrek-ai", + "shrimp": "shrimp-2", + "shroom": "shroom-finance", + "shrub": "shrub", + "shfl": "shuffle-2", + "sfl": "sunflower-land", + "shui": "shui", + "scfx": "shui-cfx", + "swave": "shuts-wave", + "shu": "shutter", + "shft": "shyft-network-2", + "$sia": "sia-ai", + "siam": "siamese", + "scp": "siaprime-coin", + "sidus": "sidus", + "sienna": "sienna", + "wsienna": "sienna-erc20", + "erowan": "sifchain", + "sifu": "sifu-vision-2", + "sigma": "sigma", + "sign": "sign", + "sata": "signata", + "sig": "signet", + "signa": "signum", + "sigrsv": "sigrsv", + "sigusd": "sigusd", + "sika": "sikaswap", + "ubsn": "silent-notary", + "silk": "silk-bcec1136-561c-4706-a42c-8b67d0d7f7d2", + "silky": "silky", + "sib": "sillybird", + "sillycat": "sillycat", + "silly": "stupid-silly-cat-runes", + "nub": "sillynubcat", + "silo": "silo-finance", + "isei": "silo-staked-sei", + "silva": "silva-token", + "silver": "silver", + "sstx": "silverstonks", + "dslv": "silver-tokenized-stock-defichain", + "xagx": "silver-token-xagx", + "simba": "simba-coin", + "smbswap": "simbcoin-swap", + "simit": "simit", + "smc": "simong-coin", + "simpli": "simpli-finance", + "simpson690": "simpson6900", + "src": "simracer-coin", + "sin": "sin-city", + "sindi": "sindi", + "single": "single-finance", + "sing": "sing-token", + "sgly": "singularity", + "sdao": "singularitydao", + "agix": "singularitynet", + "stv": "sint-truidense-voetbalvereniging-fan-token", + "sipher": "sipher", + "sir": "sir", + "srn": "sirin-labs-token", + "srs": "sirius-finance", + "sint": "siriusnet", + "sispop": "sispop", + "six": "six-network", + "sge": "six-sigma", + "size": "size-2", + "emerald": "sj741-emeralds", + "skai": "skai", + "skl": "skale", + "skatecat": "skatecat", + "skeb": "skeb", + "skey": "skey-network", + "skbdi": "skibidi-toilet-2", + "ski": "ski-mask-dog", + "skipup": "ski-mask-pup", + "sklay": "sklay", + "$skol": "skol", + "skol": "skolana", + "skx": "skpanax", + "skm": "skrumble-network", + "$skullcat": "skull-cat", + "skop": "skull-of-pepe-token", + "skydoge": "skydogenet", + "skyh": "sky-hause", + "skp": "skyplay", + "skyrim": "skyrim-finance", + "slam": "slam-token", + "stacks": "stacks", + "svl": "slash-vision-labs", + "benfica": "sl-benfica-fan-token", + "slerf": "slerf", + "slerfcat": "slerf-cat", + "slex": "slex", + "slime": "snail-trail", + "slnv2": "slnv2", + "sloth": "slothana", + "slp": "smooth-love-potion", + "slumbo": "slumbo", + "sdog": "small-doge", + "sdex": "smardex", + "smart": "smarthub", + "sbcc": "smart-block-chain-city", + "smrtr": "smart-coin-smrtr", + "smartcredit": "smartcredit-token", + "sln": "solland", + "smt": "swarm-markets", + "mfg": "smart-mfg", + "smrt": "smartmoney", + "smartnft": "smartnft", + "sri": "smart-reckon-intelligence", + "srt": "smart-reward-token", + "sst": "socialswap-token", + "valor": "smart-valor", + "swt": "smart-wallet-token", + "swgt": "smartworld-global", + "swu": "smart-world-union", + "spy": "smarty-pay", + "sml": "smell", + "smidge": "smidge", + "smile": "smileai", + "smiley": "smiley-coin", + "smog": "smog", + "smoke": "smoke-the-ticker", + "scf": "smoking-chicken-fish", + "sed": "smoking-eagle-dog", + "slo": "smolano", + "smol": "smol-game", + "smole": "smolecoin", + "su": "smol-su", + "smty": "smoothy", + "sp": "spintria", + "smorf": "smorf", + "smudcat": "smudge-cat", + "smudge": "smudge-lord", + "snack": "snackboxai", + "snm": "sonm", + "snk": "snook", + "hiss": "snake-of-solana", + "snakes": "snakes-game", + "snapcat": "snapcat", + "snap": "solsnap", + "$nap": "snap-kero", + "smx": "snapmuse-io", + "snps": "snaps", + "$snrk": "snark-launch", + "sneel": "sneel", + "snek": "snek", + "snepe": "snepe", + "snet": "snetwork", + "snfts": "snfts-seedify-nft-space", + "sng": "synergy-land-token", + "snibbu": "snibbu-the-crab", + "$sniff": "sniff", + "sbabe": "snoopybabe", + "snort": "snort", + "snob": "snowball-token", + "sb": "solbank", + "nora": "snowcrash-token", + "irbis": "snow-leopard-irbis", + "snow": "snowswap", + "stomb": "snowtomb", + "slot": "snowtomb-lot", + "snpad": "snpad", + "snpt": "snpit-token", + "yvsnx": "snx-yvault", + "skmt": "soakmont", + "motus": "soarchain", + "sbx": "sobax", + "sobb": "sobit-bridge", + "sobull": "sobull", + "socap": "social-capitalism-2", + "sg": "social-good-project", + "spl": "socialpal", + "eurcv": "societe-generale-forge-eurcv", + "$cat": "sociocat", + "socks": "unisocks", + "simp": "socol", + "comfy": "socomfy", + "soc": "socrates", + "sodi": "sodi-protocol", + "softco": "soft-coq-inu", + "soft": "soft-dao", + "sohot": "sohotrn", + "soil": "sun-minimeal", + "sojak": "sojak", + "soku": "sokuswap", + "sober": "solabrador-2", + "solala": "solala", + "solama": "solama", + "soly": "solamander", + "solamb": "solamb", + "solcade": "solana-arcade", + "compasssol": "solana-compass-staked-sol", + "sonda": "solanaconda", + "soli": "solana-ecosystem-index", + "solgun": "solgun-sniper", + "hubsol": "solanahub-staked-sol", + "solkit": "solana-kit", + "sol10": "solana-meme-token", + "sshib": "solana-shib", + "ssb": "solana-street-bets", + "solwars": "solana-wars", + "slim": "solanium", + "solape": "solape-token", + "solarba": "solarba", + "solar": "solar-swap", + "slr": "solarcoin", + "seg": "solar-energy", + "solareum": "solareum-3", + "flare": "solarflare", + "sxch": "solarx-2", + "sola": "sola-token", + "solav": "solav", + "solawave": "solawave", + "sax": "sola-x", + "ssol": "solayer-staked-sol", + "soba": "sol-bastard", + "$beats": "sol-beats", + "slb": "solberg", + "blze": "solblaze", + "solblock": "solblock-ai", + "book": "solbook", + "solbull": "solbull", + "solc": "solcard", + "scs": "solcasino-token", + "todd": "sol-cat-todd", + "solcex": "solcex", + "chicks": "solchicks-token", + "slcl": "solcial", + "sct": "supercells-2", + "solx": "solxdex", + "docs": "soldocs", + "slnd": "solend", + "slx": "solex-finance", + "tulip": "solfarm", + "sfarm": "solfarm-2", + "files": "solfiles", + "friends": "solfriends", + "solgoat": "solgoat", + "graph": "solgraph", + "slc": "sparklucky", + "solfi": "solidefi", + "sliz": "solidlizard", + "solid": "solidlydex", + "aitech": "solidus-aitech", + "solidx": "solid-x", + "damn": "sol-killer", + "$sollabs": "sollabs", + "solly": "solly", + "mail": "solmail", + "solmaker": "solmaker", + "mash": "solmash", + "mixer": "ton-mixer", + "smoon": "solmoon-bsc", + "solnyfans": "solnyfans", + "solo": "solordi", + "solong": "solong-the-dragon", + "solpac": "solpaca", + "solpad": "solpad-finance", + "solp": "solpages", + "solpaka": "solpaka", + "solpay": "solpay-finance", + "solphin": "solphin", + "solpod": "solpod", + "srgn": "solragon", + "solr": "solrazr", + "slrs": "solrise-finance", + "sols": "sols", + "spend": "solspend", + "srch": "solsrch", + "str": "sterling-finance", + "storm": "storm-trade", + "stream": "zilstream", + "soltalk": "soltalk-ai", + "tracker": "soltracker", + "stbot": "soltradingbot", + "solve": "solve-care", + "solvegas": "solvegas", + "solv": "solv-protocol", + "solvbtc.bbn": "solv-protocol-solvbtc-bbn", + "solvbtc.ena": "solv-protocol-solvbtc-ena", + "xencat": "solxencat", + "yard": "solyard-finance", + "solympics": "solympics", + "solzilla": "solzilla", + "soma": "soma-finance", + "smbr": "sombra-network", + "somee": "somee-social", + "ssg": "somesing", + "somm": "sommelier", + "cube": "somnium-space-cubes", + "owo": "somon", + "somps": "somps", + "smh": "so-much-higher", + "sonar": "sonarwatch", + "sona": "sonata-network", + "sgb": "songbird", + "sfin": "songbird-finance", + "sonic": "sonic-suite", + "sgoat": "sonic-goat", + "sonicwif": "sonicwifhat", + "sonik": "sonik", + "sonne": "sonne-finance", + "bratt": "son-of-brett", + "sonorc": "sonorc", + "soon": "soonswap", + "sop": "sopay", + "soopy": "sopermen", + "soph": "sophon", + "xor": "sora", + "sora": "sora-solana", + "sorabtc": "sorabtc-ordinals", + "soradoge": "sora-doge", + "xstbrl": "sora-synthetic-brl", + "xstjpy": "sora-synthetic-jpy", + "xstltc": "sora-synthetic-ltc", + "xstrub": "sora-synthetic-rub", + "xstusd": "sora-synthetic-usd", + "xstxag": "sora-synthetic-xag", + "sor": "soros", + "soulb": "soulboundid", + "sboy": "soulja-coin", + "soulo": "soulocoin", + "sdlx": "sound-linx", + "son": "souni-token", + "soup": "soup-finance", + "korea": "south-korea-coin", + "dllr": "sovryn-dollar", + "sowa": "sowa-ai", + "swk": "sowaka", + "soy": "soyjak-2", + "ansem": "soylanamanletcaptainz", + "spaceape": "spaceape", + "spc": "storepay", + "dawgs": "spacedawgs", + "fcon": "spacefalcon", + "hamster": "space-hamster-2", + "spiz": "space-iz", + "$smh": "spacemesh", + "smcw": "space-misfits", + "sn": "spacen", + "p3nguin": "spacepenguin", + "spacepi": "spacepi-token", + "milk2": "spaceswap-milk2", + "shake": "spaceswap-shake", + "svt": "spacevikings", + "rod": "spacexpanse", + "esp": "spain-coin", + "snft": "suprenft", + "spk": "sparks", + "sparko": "sparko", + "srk": "sparkpoint", + "sfuel": "sparkpoint-fuel", + "spark": "sparkswap", + "spa": "sperax", + "sparta": "spartan-protocol-token", + "cmpt": "spatial-computing", + "dspy": "spdr-s-p-500-etf-trust-defichain", + "smetx": "specialmetalx", + "scl": "spectra-cash", + "spct": "spectra-chain", + "spec": "speculate-dao", + "spctr": "spectre-2", + "spectre": "spectre-ai", + "alias": "spectrecoin", + "spr": "spectre-network", + "speth": "spectrum-eth", + "spf": "spectrum-finance", + "joc": "speed-star-joc", + "speedy": "speedy", + "speero": "speero", + "spellfire": "spellfire", + "spell": "spell-token", + "usds": "usds", + "sphere": "sphere-finance", + "sxs": "spheresxs", + "here": "spherex-token", + "sphri": "spherium", + "sph": "spheroid-universe", + "sphn": "spheron-network", + "spdr": "spiderswap", + "spike": "spike-on-eth", + "ustbl": "spiko-us-t-bills-money-market-fund", + "spillways": "spillways", + "spinaq": "spinaq", + "$spin": "spin-fi", + "spin": "spintop", + "coil": "spiraldao-coil", + "spirit": "spiritswap", + "splash": "splash-trade", + "sps": "splinterlands", + "shopx": "splyt", + "spoody": "spodermen", + "$sponge": "sponge-f08b2fe4-9d9c-47c3-b5a0-84c2ac3bbbff", + "spoof": "spoofify", + "spky": "spookyshiba-2", + "spooky": "spooky-the-phantom", + "spool": "spool-dao-token", + "spore": "spore", + "spo": "spores-network", + "spork": "sporkdao", + "sport": "sport", + "sprt": "sportium", + "point": "sportpoint", + "sbet": "sports-bet", + "$icons": "sportsicon", + "spring": "spring", + "sprink": "sprink", + "sprx": "sprint-coin", + "spritzmoon": "spritzmoon-crypto", + "spume": "spume", + "spdx": "spurdex", + "spurdo": "spurdo-sparde-on-eth", + "spx": "spx6900", + "spyro": "spyrolana", + "sqd": "subsquid", + "sqgl": "sqgl-vault-nftx", + "sqrb": "sqrbit", + "sqrcat": "sqrcat", + "sqts": "sqts-ordinals", + "squad": "squadswap", + "squidgrow": "squidgrow", + "sqgrow": "squidgrow-2", + "$sqg": "squidtg", + "squirry": "squirry", + "sgm": "srcgame", + "srune": "srune", + "ssv": "ssv-network", + "stbz": "stabilize", + "stable": "usdfi-stable", + "scomp": "stablecomp", + "usd3": "web-3-dollar", + "usdlr": "stable-usdlr", + "stack": "stack", + "$stack": "stacker-ai", + "ststx": "stacking-dao", + "sfx": "stackos", + "stsw": "stackswap", + "dsla": "stacktical", + "bnbx": "stader-bnbx", + "ethx": "stader-ethx", + "maticx": "stader-maticx", + "nearx": "stader-nearx", + "sftmx": "stader-sftmx", + "fis": "stafi", + "rbnb": "stafi-staked-bnb", + "rmatic": "stafi-staked-matic", + "rsol": "stafi-staked-sol", + "rswth": "stafi-staked-swth", + "acc": "stage-0", + "stik": "staika", + "sbt": "stakebooster-token", + "standard": "stakeborg-dao", + "stakesol": "stake-city-staked-sol", + "stkabpt": "staked-aave-balancer-pool-token", + "steur": "staked-ageur", + "sdcrv": "stake-dao-crv", + "sdpendle": "stake-dao-sdpendle", + "staur": "staked-aurora", + "moobifi": "staked-bifi", + "score": "staked-core", + "steth": "steth-fuse", + "stern": "staked-ethos-reserve-note", + "sfrax": "staked-frax", + "stfx": "stfx", + "sthope": "staked-hope", + "skcs": "staked-kcs", + "artmetis": "staked-metis-token", + "stnear": "staked-near", + "xogn": "staked-ogn", + "nststrk": "staked-strk", + "xtarot": "staked-tarot", + "sthapt": "staked-thala-apt", + "stlos": "staked-tlos", + "strx": "strikecoin", + "stusdt": "staked-usdt", + "svec": "staked-vector", + "sveth": "staked-veth", + "stvlx": "staked-vlx", + "st-ycrv": "staked-yearn-crv-vault", + "st-yeth": "staked-yearn-ether", + "keth": "stakehouse-keth", + "sdl": "stake-link", + "stlink": "stake-link-staked-link", + "stpeth": "stake-together", + "swise": "stakewise", + "osgno": "stakewise-staked-gno-2", + "oseth": "stakewise-v3-oseth", + "stamp": "stamp-2", + "stmap": "stampmap", + "stnd": "standard-protocol", + "tst": "teleport-system-token", + "stan": "stanley-cup-coin", + "bot": "starbots", + "stk": "starck", + "helia": "starecat", + "sfe": "star-fate", + "sean": "starfish-finance", + "stg": "stargate-finance", + "strk": "starknet", + "lay": "starlay-finance", + "starl": "starlink", + "smon": "starmon-token", + "iov": "starname", + "aibang": "starnet", + "srp": "starpad", + "starri": "starri", + "snift": "starrynift", + "srx": "storx", + "sss": "super-sushi-samurai", + "starship": "starship", + "ssp": "starship-3", + "stship": "starship-4", + "sship": "starship-erc20", + "sslx": "starslax", + "swcat": "star-wars-cat", + "starx": "starworks-global-ecosystem", + "stash": "stash-inu", + "eurs": "stasis-eurs", + "stat": "stat", + "stats": "stats", + "stt": "statter-network", + "safu": "staysafu", + "steak": "steakhut-finance", + "sdx": "steakd", + "steaklrt": "steakhouse-resteaking-vault", + "deal": "stealth-deals", + "steam": "steam", + "steamx": "steam-exchange", + "steem": "steem", + "sbd": "steem-dollars", + "opple": "steep-jubs", + "sfty": "stella-fantasy-token", + "xlm": "stellar", + "stelai": "stellaryai", + "stella": "stellaswap", + "stdot": "stellaswap-staked-dot", + "xla": "stellite", + "stls": "stelsi", + "stemx": "stemx", + "step": "step-finance", + "fitfi": "step-app-fitfi", + "gmt": "stepn", + "stepsol": "step-staked-sol", + "$steve": "steve", + "steve": "steve-2", + "stickbug": "stickbug", + "$sticky": "stickman", + "stilt": "stilton", + "stima": "stima", + "stkatom": "stkatom", + "stkd": "stkd-scrt", + "stbu": "stobox-token", + "stoc": "sto-cash", + "soh": "stohn-coin", + "zeta": "zetachain", + "ston": "ston-2", + "stoned": "stoned", + "stog": "stooges", + "wstor": "storagechain", + "storj": "storj", + "stmx": "storm", + "jan": "storm-warfare", + "story": "story", + "blaze": "titan-blaze", + "stpt": "stp-network", + "xidr": "straitsx-indonesia-rupiah", + "xusd": "xusd-babelfish", + "strax": "stratis", + "stos": "stratos", + "svm": "stratovm", + "strat": "stratum-exchange", + "صباح الفر": "strawberry-elephant", + "strch": "strch-token", + "strm": "streamer-inu", + "xdata": "streamr-xdata", + "streeth": "streeth", + "srg": "street-runner", + "strd": "stride", + "statom": "stride-staked-atom", + "stdydx": "stride-staked-dydx", + "stdym": "stride-staked-dym", + "stinj": "stride-staked-injective", + "stislm": "stride-staked-islm", + "stjuno": "stride-staked-juno", + "stosmo": "stride-staked-osmo", + "stsaga": "stride-staked-saga", + "stsomm": "stride-staked-sommelier", + "ststars": "stride-staked-stars", + "stumee": "stride-staked-umee", + "strike": "strike", + "stpr": "strike-protocol", + "strip": "stripto", + "strp": "strips-finance", + "strix": "strix", + "strong": "strong", + "strngr": "stronger", + "shnd": "stronghands", + "ishnd": "stronghands-finance", + "strongsol": "stronghold-staked-sol", + "shx": "stronghold-token", + "sne": "strongnode", + "stf": "structure-finance", + "syk": "stryke", + "study": "study", + "strdy": "sturdy", + "style": "style-protocol-2", + "stzil": "stzil", + "subava": "subava-token", + "sqt": "subquery-network", + "sub": "substratum", + "sccn": "succession", + "skid": "success-kid", + "hippo": "sudeng", + "sudo": "sudoswap", + "tip": "tiperian", + "sugar": "sugaryield", + "sko": "sugar-kingdom-odyssey", + "sui": "sui", + "suia": "suia", + "suib": "suiba-inu", + "sbox": "suiboxer", + "suicat": "sui-cat", + "hsui": "suicune-on-sui", + "suidog": "sui-dog", + "suieet": "suieet", + "suijak": "suijak", + "suiman": "suiman", + "suip": "suipad", + "plop": "sui-plop", + "suishi": "suishicat", + "sswp": "suiswap", + "std": "suitard", + "zuki": "suizuki", + "skt": "sukhavati-network", + "suki": "sumo-kitty", + "suku": "suku", + "subtc": "sumer-money-subtc", + "sueth": "sumer-money-sueth", + "suusd": "sumer-money-suusd", + "summon": "summoners-league", + "sumo": "sumokoin", + "sun": "sun-token", + "suncat": "suncat", + "snc": "suncontract", + "sundae": "sundae-the-dog", + "sundog": "sundog", + "sunlion": "sunlion", + "sunned": "sunned", + "sunneiro": "sunneiro", + "sunny": "sunny-on-tron", + "ssu": "sunnysideup", + "sunpepe": "sunpepe", + "sunpig": "sunpig", + "sunc": "sunrise", + "tzu": "sun-tzu", + "tsu": "tsutsuji", + "sunwukong": "sunwukong", + "suya": "sunyang", + "supe": "supe-infinity", + "subf": "super-best-friends", + "superbid": "superbid", + "super": "superfarm", + "supr": "superdapp", + "supersol": "superfast-staked-sol", + "superflr": "superflare", + "chfp": "superfrank", + "silkroad": "supermarioporsche911inu", + "superoethb": "super-oeth", + "rare": "unique-one", + "srbp": "super-rare-ball-shares", + "sseth": "super-seyian-eth", + "uscc": "superstate-uscc", + "strump": "super-trump", + "sut": "super-useless-token", + "svet": "super-vet", + "grnd": "superwalk", + "walk": "walk", + "sero": "super-zero", + "supra": "supra", + "rmt": "sureremit", + "board": "surfboard", + "surge": "surge", + "azee": "surrealverse", + "surv": "surveyor-dao", + "yvsusd": "susd-yvault", + "sushi": "sushi", + "$sushi": "sushi-fighter", + "yvsushi": "sushi-yvault", + "set": "sustainable-energy-token", + "suter": "suterusu", + "suv": "suvereno", + "$swag": "swag", + "swag": "swag-coin", + "swamp": "swamp-coin", + "swana": "swana-solana", + "xwp": "swap", + "s315": "swap315", + "smd": "swapmode", + "swpd": "swapped-finance", + "ppi": "swappi", + "swpr": "swapr", + "sapr": "swaprum", + "swpt": "swaptracker", + "swapz": "swapz-app", + "swm": "swarm", + "bzz": "swarm-bzz", + "swash": "swash", + "sway": "sway-social", + "sweat": "sweatcoin", + "sweep": "sweep-token", + "sweepr": "sweepr", + "sweet": "sweet", + "$swts": "sweets", + "swell": "swell-network", + "swbtc": "swell-restaked-btc", + "swply": "sweply", + "swrv": "swerve-dao", + "sweth": "sweth", + "swftc": "swftcoin", + "swift": "swiftpad", + "swi": "swinca-2", + "swingby": "swingby", + "$swing": "swing-xyz", + "sxp": "swipe", + "borg": "swissborg", + "swc": "swiss-cash-coin", + "swch": "swisscheese", + "swtr": "swisstronik", + "swth": "switcheo", + "switch": "switch-token", + "swop": "swop", + "swo": "sword-and-magic-world", + "swot": "swot-ai", + "swat": "swtcoin", + "swusd": "swusd", + "swych": "swych", + "swyp": "swyp-foundation", + "sx": "sx-network-2", + "sybt": "sybarite", + "sybl": "sybulls", + "sylcm": "sylcm", + "sylo": "sylo", + "sybtc": "symbiosis-bridged-btc-zksync", + "sis": "symbiosis-finance", + "xym": "symbol", + "sym": "symverse", + "syn": "syn-dog", + "zksnp": "synapse-network-2", + "synapticai": "synaptic-ai", + "ysol": "synatra-staked-sol", + "yusd": "yusd-stablecoin", + "sydx": "syncdex", + "scy": "synchrony", + "synh": "synchub", + "slisbnb": "synclub-staked-bnb", + "sync": "syncus", + "svts": "syncvault", + "synr": "syndicate-2", + "synk": "synk", + "syno": "synonym-finance", + "syntx": "syntax-ai", + "synt": "synternet-synt", + "syai": "synth-ai", + "sny": "synthetify-token", + "synth": "synthswap", + "syp": "sypool", + "sys": "syscoin", + "syusd": "syusd", + "t23": "t23", + "t2t2": "t2t2", + "t2tkn": "t2-tkn", + "trn": "t3rn", + "epos": "tabbypos", + "tabo": "tabo", + "taboo": "taboo-token", + "ttt": "toptrade", + "tacocat": "tacocat", + "tada": "theada", + "tad": "tadpole", + "taggr": "taggr", + "taho": "taho", + "tkai": "taikai", + "taiko": "taiko", + "tkoswap": "taikoswap", + "tail": "tail", + "taj": "tajcoin", + "tkg": "takamaka-green-coin", + "taki": "taki", + "$talahon": "talahon", + "talax": "talaxeum", + "craft": "talecraft", + "tal": "talentido", + "tlr": "taler", + "tome": "toon-of-meme", + "tales": "tales-of-pepe", + "talis": "talis-protocol", + "talys": "talys", + "tama": "tamadoge", + "gotchi": "tamagotchi", + "tslt": "tamkin", + "tang": "tangent", + "tngbl": "tangible", + "tnt": "tierion", + "tnet": "tangle-network-2", + "void": "void-games", + "tango": "tangoswap", + "tpcat": "tang-ping-cat", + "tangyuan": "tangyuan", + "tanpin": "tanpin", + "tanuki": "tanuki-coin", + "tanupad": "tanuki-launchpad", + "tas": "tao-accounting-system", + "tbank": "taobank", + "taobot": "tao-bot", + "ceti": "tao-ceti", + "tah": "taoharvest", + "taonu": "tao-inu", + "taolie": "taolie-coin", + "tpad": "trustpad-2-0", + "taop": "taoplay", + "taoshi": "taoshi", + "taoshard": "tao-subnet-sharding", + "utao": "taounity", + "taovm": "taovm", + "taox": "taox", + "xtp": "tap", + "tap": "tap-protocol-ordinals", + "taproot": "taproot", + "tara": "taraxa", + "tard": "tard", + "trdg": "tardigrades-finance", + "target": "target-protocol", + "twb": "twinby", + "tari": "tari-world", + "tarot": "tarot-2", + "tai": "trace-ai", + "tashi": "tashi", + "taste": "tastenft", + "tate": "tate", + "tme": "tate-stop", + "tatsu": "tatsu", + "txt": "tx24", + "tbcc": "tbcc", + "tbtc": "tbtc", + "tcgc": "tcg-verse", + "tdoge": "tdoge", + "tea": "tea-meme-coin", + "th": "team-heretics-fan-token", + "vit": "team-vitality-fan-token", + "tear": "tear-2", + "tdt": "tech-deck-turtle", + "tmng": "technology-metal-network-global", + "tonic": "tectonic", + "tet": "tectum", + "tsd": "teddy-dollar", + "tone": "te-food", + "tgs": "tegisto", + "tgr": "tegro", + "tun": "teh-upen-netwerg", + "teia": "teia-dao", + "tel": "telcoin", + "tcard": "telecard", + "tele": "tonx", + "tnode": "telenode", + "trb": "tellor", + "tlos": "telos", + "tvc": "telos-velocore", + "temco": "temco", + "tem": "temtem", + "temple": "temple", + "tenfi": "ten", + "tnnt": "tenant-messo", + "tbc": "turingbitchain", + "tendy": "tendies-icp", + "teneo": "teneo-protocol", + "tenet": "tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9", + "10set": "tenset", + "tenshi": "tenshi", + "tnsr": "tensor", + "thub": "tensorhub", + "sttao": "tensorplex-staked-tao", + "tsa": "tensorscan-ai", + "tpu": "tensorspace", + "tup": "tenup", + "tenx": "tenx-2", + "tepe": "tepe", + "tp": "ton-printer", + "teq": "teq-network", + "thz": "terahertz-capital", + "tera": "tera-smart-money", + "trcon": "teratto", + "tori": "tori-the-cat", + "term": "term-structure", + "tmns": "terminus", + "terminus": "terminus-3", + "tern": "ternio", + "luna": "terra-luna-2", + "trr": "terran-coin", + "terra": "terraport", + "ustc": "wrapped-ust", + "ust": "terrausd-wormhole", + "tert": "tert", + "teso": "teso", + "tsai": "tesseractai", + "test": "test-token-please-ignore", + "testo": "testo", + "usdte": "tether-avalanche-bridged-usdt-e", + "t99": "tethereum-2", + "eurt": "tether-eurt", + "xaut": "tether-gold", + "ceusdt": "tether-usd-celer", + "usdtpo": "tether-usd-pos-wormhole", + "usdtso": "tether-usd-wormhole", + "usdtet": "tether-usd-wormhole-from-ethereum", + "tethys": "tethys-finance", + "tetrap": "tetra", + "tetris": "tetris-2", + "tetu": "tetu", + "texan": "texan", + "xtz": "tezos", + "ted": "tezos-domains", + "tgram": "tg20-tgram", + "tgc": "tg-casino", + "txau": "tgold", + "thl": "thala", + "thapt": "thala-apt", + "thales": "thales", + "tfti": "thanks-for-the-invite", + "abyss": "the-abyss", + "society": "the-ape-society", + "$kekec": "the-balkan-dwarf", + "tbd": "the-big-debate", + "grift": "the-big-grift", + "bguy": "the-big-guy", + "$td": "the-big-red", + "killa": "the-bitcoin-killa", + "barc": "the-blu-arctic-water-comp", + "theca": "theca", + "tcc": "the-champcoin", + "citadel": "the-citadel", + "bosscoq": "the-coq-father-boss", + "corgib": "the-corgi-of-polkabridge", + "tcp": "the-crypto-prophecies", + "dare": "the-dare", + "debt": "the-debt-box", + "degens": "the-degensons", + "ear": "the-ear-stays-on", + "emrld": "the-emerald-company", + "abcram": "the-ennead", + "esc": "the-essential-coin", + "elp": "the-everlasting-parachain", + "fooker": "the-fooker", + "fmn": "the-freemoon-token", + "czgoat": "the-goat-cz", + "grt": "the-graph", + "ptgc": "the-grays-currency", + "husl": "the-husl", + "jupcat": "the-jupiter-cat", + "kart": "the-kartel-project", + "kbox": "the-killbox-game", + "tkc": "the-kingdom-coin", + "know": "the-knowers", + "tln": "the-lux-network", + "mrst": "the-mars", + "the": "the-protocol", + "nems": "the-nemesis", + "tnr": "the-night-riders", + "ogcinu": "the-og-cheems-inu", + "tol": "the-open-league-meme", + "theos": "theos", + "peep$": "the-people-coin", + "qwan": "the-qwan", + "rpr": "the-reaper", + "$reca": "the-resistance-cat", + "root": "the-root-network", + "trg": "the-rug-game", + "ᚱ": "the-runix-token-runes", + "sand": "the-sandbox-wormhole", + "sharks": "the-sharks-fan-token", + "tso": "thesirion", + "quant": "thesis-cat", + "sdo": "thesolandao", + "euros": "the-standard-euro", + "tdrop": "thetadrop", + "tfuel": "theta-fuel", + "thg": "thetan-arena", + "theta": "theta-token", + "thog": "the-theory-of-gravity", + "ttk": "the-three-kingdoms", + "elsa": "the-ticker-is-elsa", + "imbtc": "the-tokenized-bitcoin", + "spott": "thetopspotonline", + "souls": "the-unfettered-souls", + "vsol": "vsolidus", + "tvk": "the-virtua-kolect", + "wnk": "the-winkyverse", + "hrse": "the-winners-circle", + "twd": "the-word", + "w$c": "the-world-state", + "timi": "this-is-my-iguana", + "theone": "this-is-the-one", + "thol": "thol-token", + "thor": "thorswap", + "thr": "thorecoin", + "thoreum": "thoreum-v2", + "xrune": "thorstarter", + "tho": "thorus", + "tgt": "thorwallet", + "tht": "thought", + "$three": "three", + "3ac": "three-arrowz-capitel", + "tft": "threefold-token", + "thnd": "three-hundred-ai", + "t": "threshold-network-token", + "thusd": "threshold-usd", + "thn": "throne", + "tpy": "thrupenny", + "thug": "thug-life", + "thumb": "thumb", + "tt-weth": "thundercore-bridged-tt-weth-thundercore", + "tt-wbtc": "thundercore-bridged-wbtc-thundercore", + "stflip": "thunderhead-staked-flip", + "thx": "thx-network", + "ticcl": "ticclecat", + "tickstm": "tickerstm", + "tickle": "tickle", + "tico": "tico", + "tidal": "tidal-finance", + "tide": "tidalflats", + "tdc": "tidecoin", + "tdfy": "tidefi", + "tdx": "tidex-token", + "tifi": "tifi-token", + "tking": "tiger-king", + "tgmt": "tiger-meme-token", + "tiger": "ton-tiger", + "tigra": "tigra", + "tigres": "tigres-fan-token", + "tig": "tigris", + "tilly": "tilly-the-killer-whale", + "tcs": "timechain-swap-token", + "$time": "timecoin-2", + "davido": "timeless-davido", + "timepocket": "timepocket", + "$times": "times", + "πts": "timespace", + "timmi": "timmi", + "lord": "timothy-dexter", + "tinfa": "tinfa", + "tnkr": "tinkernet", + "tinu": "ton-inu", + "tiny": "tiny-colony", + "tes": "titan-trading-token", + "tipja": "tipja", + "$tipsy": "tipsycoin", + "tired": "tired-of-it-all", + "titans": "titanborn", + "tita": "titan-hunters", + "ti": "titanium22", + "titanx": "titanx", + "tiusd": "tiusd", + "tlife": "tlifecoin", + "tlx": "tlx", + "tmg": "t-mac-dao", + "tmania": "t-mania-sol", + "tmpl": "tmpl", + "tn100x": "tn100x", + "bn": "tna-protocol", + "$toad": "toad-sol", + "toby": "toby-toadgod", + "toce": "tocen", + "tochi": "tochi-base", + "toding": "toding-protocol", + "toge": "toge", + "toka": "toka-2", + "tok": "tokenplace", + "tkn": "token-name-service", + "toke": "tokemak", + "tkb": "tokenbot", + "tct": "tokenclub", + "usx": "token-dforce-usd", + "tec": "token-engineering-commons", + "token": "tokenfi", + "tin": "token-in", + "tkx": "tokenize-xchange", + "lon": "tokenlon", + "tmai": "token-metrics-ai", + "tpt": "token-pocket", + "sentry": "token-sentry-bot", + "tkst": "tokensight", + "eurot": "token-teknoloji-a-s-euro", + "onsg": "token-teknoloji-a-s-ons-gold", + "onss": "token-teknoloji-a-s-ons-silver", + "tkn25": "token-teknoloji-a-s-token-25", + "tdefi": "token-teknoloji-a-s-token-defi", + "tmeta": "token-teknoloji-a-s-token-metaverse", + "tnft": "token-teknoloji-a-s-token-nft", + "tplay": "token-teknoloji-a-s-token-play", + "usdot": "token-teknoloji-a-s-usd", + "tokenwatch": "tokenwatch", + "tokero": "tokero-levelup-token", + "hitt": "tokhit", + "toko": "toko", + "tko": "tokocrypto", + "tkp": "tokpie", + "toku": "toku", + "tkd": "tokuda", + "tokc": "tokyo", + "tokau": "tokyo-au", + "toly": "toly", + "tolycat": "toly-s-cat", + "oppie": "tolys-cat", + "tomb": "tomb", + "tomb+": "tombplus", + "tshare+": "tombplus-tshare-plus", + "tshare": "tomb-shares", + "tomi": "tominet", + "tommy": "tommy", + "vic": "victory-impact", + "tomoe": "tomoe", + "toms": "tomtomcoin", + "twif": "tomwifhat", + "tcat": "tron-cat", + "tdog": "ton-dog", + "tnx": "tonex", + "tong": "tong", + "tgpu": "tongpu", + "ttc": "tongtong-coin", + "luis": "tongue-cat", + "tonk": "tonk-inu", + "tont": "tonkit", + "1rus": "tonminer", + "tonnel": "tonnel-network", + "tonny": "tonny", + "tonr": "ton-renaissance", + "ship": "ton-ship", + "tons": "tonsniper", + "tston": "tonstakers", + "tos": "tonstarter", + "tny": "tony", + "tony": "tony-the-duck", + "tooker": "tooker-kurlson", + "tools-fi": "tools-fi", + "topcat": "topcat-in-sol", + "topg": "top-g", + "topj": "top-jeet", + "tmt": "topmanager", + "liqr": "topshelf-finance", + "tora": "tora-neko", + "torg": "torg", + "torn": "tornado-cash", + "toro": "toro", + "tqs": "torq-swap", + "torq": "torque", + "torsy": "torsy", + "trtl": "turtlecoin", + "tapt": "tortuga-staked-aptos", + "xtm": "torum", + "toshi": "toshi", + "ctosi": "tosidrop", + "sunpump": "to-the-sun", + "toto": "toto", + "spurs": "tottenham-hotspur-fc-fan-token", + "bct": "toucan-protocol-base-carbon-tonne", + "wig": "toupee-tech", + "toweli": "towelie", + "tower": "tower", + "deer": "toxicdeer-finance", + "tpro": "tpro", + "tr3": "tr3zor", + "xte": "traaitt", + "xtcash": "traaittxtcash", + "tra": "trabzonspor-fan-token", + "trace": "trace-network-labs", + "track": "tracker-ai", + "ttf": "track-the-funds-bot", + "onic": "trade-bionic", + "trhub": "tradehub", + "tlf": "trade-leaf", + "trdm": "trademaster-ninja", + "trdc": "traders-coin", + "trw": "traders-wallet", + "ttm": "tradetomato", + "cfa": "tradfi-bro", + "tx": "tradix", + "xblaze": "trailblaze", + "tdm": "trainingdietmax", + "trala": "trala-token", + "slice": "tranche-finance", + "tranq": "tranquil-finance", + "trava": "trava-finance", + "trv": "travelers-token", + "trax": "trax", + "traxx": "traxx", + "tus": "treasure-under-sea", + "dtlt": "treasury-bond-eth-tokenized-stock-defichain", + "treat": "treat-token", + "treeb": "treeb", + "tree": "treeplanting", + "trcl": "treecle", + "teth": "treehouse-eth", + "treis": "trellis", + "tren": "tren", + "trnd": "trendappend", + "trendguru": "trendguru", + "smm": "trendingtool-io", + "trendx": "trend-x", + "$trepe": "trepe", + "tres": "tres-chain", + "trestle": "trestle", + "wtia": "trestle-wrapped-tia", + "tx20": "trex20", + "tzc": "trezarcoin", + "trl": "triall", + "trias": "trias-token", + "tribl": "tribal-token", + "tribal": "tribal-triballygames", + "tribe": "tribe-2", + "haka": "tribeone", + "psi": "tridentdao", + "tiim": "triipmiles", + "tril": "trillant", + "tlc": "trillioner", + "trilly": "trilly", + "trim": "trimbex", + "tnq": "trinique", + "tnc": "trinity-network-credit", + "abys": "trinity-of-the-fabled-abyss-fragment", + "tri": "trisolaris", + "xeq": "triton", + "triton": "triton-2", + "trivia": "trivian", + "trog": "trog-2", + "troll": "troll-face", + "troll 2.0": "troll-2-0", + "trollicto": "trolli-cto", + "tronarmy": "tronarmy", + "tbeer": "tron-beer", + "tbull": "tron-bull-coin", + "tronches": "tronches", + "trxc": "tronclassic", + "trondog": "trondog", + "terc": "troneuroperewardcoin", + "tronkey": "tronkey", + "tronpad": "tronpad", + "troop": "troop", + "troy": "troy", + "trrxitte": "trrxitte", + "trubgr": "trubadger", + "tru": "truefi", + "tcnh": "truecnh", + "tfbx": "truefeedbackchain", + "pnl": "true-pnl", + "tdg": "truesight-dao-governance-token", + "truffi": "truffi", + "truapt": "trufin-staked-apt", + "trumatic": "trufin-staked-matic", + "truf": "truflation", + "itrump": "trump-cards-fraction-token", + "djt": "trumpcoin", + "dtc": "trumpcoin-709b1637-4ceb-4e9e-878d-2b137bee017d", + "trumpie": "trumpie", + "$trumaga": "trumpmaga", + "tabby": "trump-s-tender-tabby", + "tbe": "trustbase", + "tfi": "trustfi-network-token", + "trustnft": "trustnft", + "swap": "trustswap", + "ttg": "trust-trading-group", + "twt": "trust-wallet-token", + "truth": "truthgpt-bsc", + "$truth": "truth-inu", + "trp": "truth-pay", + "trxi": "trxi-tron", + "tryc": "tryc", + "try": "tryhards", + "txag": "tsilver", + "tsubasaut": "tsubasa-utilitiy-token", + "tsuki": "tsuki", + "tkinu": "tsuki-inu", + "tsuji": "tsutsuji-doge-s-sister", + "tc": "ttcoin", + "maro": "ttc-protocol", + "tub": "tub", + "tubes": "tubes", + "tucker": "tucker-carlson", + "tuit": "tuition-coin", + "tupelo": "tupelothedog", + "turbo": "turbo-wallet", + "tmoon": "turbomoon", + "turbos": "turbos-finance", + "tbx": "turbox", + "tur": "turing-network", + "tbft": "turkiye-basketbol-federasyonu-token", + "tmft": "turkiye-motosiklet-federasyonu-fan-token", + "turt": "turtsat", + "yvtusd": "tusd-yvault", + "tsk": "tuske", + "tut": "tutellus", + "tuxc": "tux-project", + "tuzki": "tuzki", + "tvs": "tvs", + "tweety": "tweety", + "twelve": "twelve-zodiac", + "twinny": "twinny", + "twood": "twood", + "twocat": "twotalkingcats", + "twtr": "twtr-fun", + "txa": "txa", + "txn": "txn-club", + "tyche": "tyche-protocol", + "type": "typerium", + "tyrel": "tyrel-derpden", + "tyz": "tyz-token", + "tzbtc": "tzbtc", + "uahg": "uahg", + "ubdn": "ubd-network", + "ube": "ubeswap-2", + "ubit": "ubit", + "ub": "utopia-bot", + "ubx": "ubix-network", + "ubxs": "ubxs-token", + "uca": "uca", + "ucash": "ucash", + "ucit": "ucit", + "ucon": "ucon-social", + "ucm": "ucrowdme", + "ucx": "ucx", + "udao": "udao", + "udi": "udinese-calcio-fan-token", + "uerii": "uerii", + "ufc": "ufc-fan-token", + "ufo": "ufo-token", + "fora": "uforika", + "hve2": "uhive", + "ukre": "uk-real-estate", + "ultima": "ultima", + "ulti": "ultiverse", + "uos": "ultra", + "ultra": "ultrasafe", + "ucr": "ultra-clear", + "ulg": "ultragate", + "umc": "ultramoc", + "unft": "ultra-nft", + "upro": "ultrapro", + "ulx": "ultron", + "uma": "uma", + "umami": "umami-finance", + "umareum": "umareum", + "umb": "umbrella-network", + "ux": "umee", + "umi": "umi-digital", + "unt": "umi-s-friends-unity", + "umma": "umma-token", + "umja": "umoja", + "ybtc": "umoja-ybtc", + "udai": "unagii-dai", + "ueth": "unagii-eth", + "uusdt": "unagii-tether-usd", + "uusdc": "unagii-usd-coin", + "uwbtc": "unagii-wrapped-bitcoin", + "una": "unagi-token", + "whypad": "unamano", + "unbnk": "unbanked", + "unb": "unbound-finance", + "u": "uranium3o8", + "uclx": "uncharted-lands-x", + "uncommongoods": "uncommon-goods", + "undead": "undead-blocks", + "uds": "undeads-games", + "udw": "underworld", + "ersdl": "unfederalreserve", + "uibt": "unibit", + "unibot": "unibot", + "ubt": "unibright", + "unice": "unice", + "uwu": "uwu-lend", + "universe": "unicorn-metaverse", + "u2u": "unicorn-ultra", + "uncx": "unicrypt-2", + "unidx": "unidex", + "udo": "unido-ep", + "unix": "unix", + "ufarm": "unifarm", + "unifi": "unifi-2", + "unfi": "unifi-protocol-dao", + "grph": "unigraph-ordinals", + "ulab": "unilab-network", + "layer": "unilayer", + "unio": "unio-coin", + "union": "union-finance", + "unn": "union-protocol-governance-token", + "unp": "unipoly", + "udc": "uniq-digital-coin", + "unq": "unq", + "unqt": "unique-utility-token", + "unistake": "unistake", + "unitao": "unitao", + "un": "unit-dao", + "ubps": "united-base-postal", + "$uefn": "united-emirates-of-fun", + "usp": "united-states-property-coin", + "utn": "uniton-token", + "uis": "unitus", + "uts": "unitus-2", + "ucore": "unitycore", + "umt": "unitymeta-token", + "uv": "unityventures", + "utx": "utix", + "unm": "unium", + "ubi": "universal-basic-income", + "usbt": "universal-blockchan", + "unibtc": "universal-btc", + "cwf": "universal-contact", + "unieth": "universal-eth", + "ulu": "universal-liquidity-union", + "xyz": "universe-xyz", + "uch": "universidad-de-chile-fan-token", + "unw": "uniwhale", + "uniw": "uniwswap", + "yvuni": "uni-yvault", + "zcx": "unizen", + "unai": "unknown-ai", + "unleash": "unleashclub", + "uft": "unlend-finance", + "uld": "unlighted", + "udt": "unlock-protocol", + "unlucky": "unlucky-2", + "marsh": "unmarshal", + "undx": "unodex", + "unreal": "unreal-ai", + "ugt": "unreal-finance", + "uncn": "unseen", + "unsheth": "unsheth-unsheth", + "nstk": "unstake-fi", + "uns": "uns-token", + "und": "unstoppable-defi", + "nubtc": "unvaxxed-sperm", + "unvaxsperm": "unvaxxed-sperm-2", + "unv": "unvest", + "unwa": "unwa", + "up": "up-token-2", + "mbxn": "upbots", + "upc": "upcx", + "updog": "updog", + "ups": "upfi-network", + "sparklet": "upland", + "upx": "upx", + "lift": "uplift", + "upload": "upload", + "upo": "uponly-token", + "upt": "uprock", + "you": "youwho", + "usdcat": "upsidedowncat-2", + "wewe": "upside-down-meme", + "ustx": "upstabletoken", + "uptos": "uptos", + "upup": "upup-token", + "uqc": "uquid-coin", + "ura": "ura-dex", + "urx": "uraniumx", + "uranus": "uranus-2", + "urs": "uranus-3", + "anus": "uranus-sol", + "urd": "urdex-finance", + "urqa": "ureeqa", + "urmom": "urmom", + "urus": "urus-token", + "usd0++": "usd0-liquid-bond", + "usdb": "usdb", + "usdc.z": "usd-coin-bridged-zed20", + "ceusdc": "usd-coin-celer", + "usdcpo": "usd-coin-pos-wormhole", + "usdcarb": "usd-coin-wormhole-arb", + "usdcbnb": "usd-coin-wormhole-bnb", + "usdcet": "usd-coin-wormhole-from-ethereum", + "usdc+": "usdc-plus-overnight", + "yvusdc": "usdc-yvault", + "usdd": "usdd", + "usdebt": "usdebt", + "usdex+": "usdex-8136b88a-eceb-4eaf-b910-9578cbc70136", + "usdfi": "usdfi", + "usdh": "usdh", + "usdtz": "usdtez", + "usdt+": "usdtplus", + "yvusdt": "usdt-yvault", + "usdv": "vyvo-us-dollar", + "ushark": "ushark", + "ushi": "ushi", + "usk": "usk", + "usm": "usmeme", + "usd0": "usual-usd", + "$banana": "utility-ape", + "unc": "utility-net", + "unmd": "utility-nexusmind", + "uw3s": "utility-web3shot", + "uusd": "youves-uusd", + "utk": "utrust", + "utu": "utu-coin", + "utxo": "utxo", + "utya": "utya", + "utyab": "utya-black", + "uwon": "uwon", + "uxp": "uxd-protocol-token", + "uxd": "uxd-stablecoin", + "uxlink": "uxlink", + "vshare": "v3s-share", + "vab": "vabble", + "vader": "vader-protocol", + "vai": "vibe-ai", + "vcf": "valencia-cf-fan-token", + "toshe": "valentine-floki", + "vdo": "validao", + "vy": "valinity", + "vbit": "valobit", + "valu": "value", + "value": "value-liquidity", + "vanry": "vanar-chain", + "vana": "vana-world", + "ves": "vestate", + "dvnq": "vanguard-real-estate-tokenized-stock-defichain", + "dvoo": "vanguard-sp-500-etf-tokenized-stock-defichain", + "bum": "vanilla-2", + "vny": "vanity", + "vape": "vaporfi", + "vpnd": "vapornodes", + "vprm": "vaporum-coin", + "vpr": "vapor-wallet", + "vwave": "vaporwave", + "vrn": "varen", + "vasco": "vasco-da-gama-fan-token", + "vatr": "vatra-inu", + "vcx": "vaultcraft", + "vka": "vaultka", + "$vault": "vaulttech", + "vbswap": "vbswap", + "xvc": "xave-coin", + "vcg": "vcgamers", + "vcore": "vcore", + "veax": "veax", + "vet": "vechain", + "veco": "veco", + "yve-crvdao": "vecrv-dao-yvault", + "veth": "venus-eth", + "vtx": "vector-finance", + "vec": "vector-reserve", + "vxv": "vectorspace", + "sbio": "vector-space-biosciences-inc", + "weve": "vedao", + "vega": "vega-protocol", + "vegas": "vegasino", + "veil": "veil-exchange", + "velar": "velar", + "vlx": "velas", + "vlxpad": "velaspad", + "vela": "vela-token", + "scar": "velhalla", + "velo": "velodrome-finance", + "vext": "veloce-vext", + "vc": "vinuchain", + "vex": "vexanium", + "vta": "velta-token", + "vmt": "vemate", + "vemp": "vempire-ddao", + "vdt": "vendetta", + "venium": "venium", + "$venko": "venko", + "ybusd": "veno-bridged-ybusd", + "vno": "veno-finance", + "leth": "veno-finance-staked-eth", + "venom": "venom", + "ltia": "veno-staked-tia", + "vusd": "vow-usd", + "ybeth": "veno-yield-bearing-eth", + "vent": "vent-finance", + "vention": "vention", + "xvs": "venus", + "vbch": "venus-bch", + "vbeth": "venus-beth", + "vbtc": "venus-btc", + "vbusd": "venus-busd", + "vdai": "venus-dai", + "vdoge": "venus-doge", + "vdot": "voucher-dot", + "vfil": "venus-fil", + "vlink": "venus-link", + "vltc": "venus-ltc", + "vrt": "venus-reward-token", + "vsxp": "venus-sxp", + "vusdc": "venus-usdc", + "vusdt": "venus-usdt", + "vxrp": "venus-xrp", + "vxvs": "venus-xvs", + "vera": "vera", + "vro": "veraone", + "vra": "verasity", + "xvg": "verge-eth", + "vda": "verida", + "veri": "veritaseum", + "vts": "veritise", + "$vpad": "veropad", + "vrx": "verox", + "versa": "versagames", + "sity": "versity-2", + "vso": "verso", + "vsx": "versus-x", + "vtc": "vertcoin", + "vrtk": "vertek", + "vrtx": "vertex-protocol", + "verum": "verum-coin", + "vrsc": "verus-coin", + "vsp": "vesper-finance", + "vsta": "vesta-finance", + "vst": "voice-street", + "vs": "vesync", + "vtho": "vethor-token", + "vetme": "vetme", + "vsl": "vetter-skylabs", + "vetter": "vetter-token", + "veve": "veve", + "vfox": "vfox", + "vibe": "vibe", + "minette": "vibe-cat", + "vib": "viberate", + "vibes": "vibe-shift", + "vbg": "vibing", + "vcat": "vibing-cat", + "vct": "vibingcattoken", + "vica": "vica-token", + "vcnt": "vicicoin", + "vr": "victoria-vr", + "vtg": "victory-gem", + "vidai": "vidifyai", + "vidt": "vidt-dao", + "vdl": "vidulum", + "vidy": "vidy", + "vidya": "vidya", + "vidyx": "vidyx", + "velon": "viking-elon", + "viki": "viking-token-viki", + "vikita": "vikita", + "ojee": "vimworld-ojee", + "vin": "vin", + "vci": "vinci-protocol", + "vd": "vindax-coin", + "vnlnk": "vinlink", + "viper": "viper-2", + "vip": "vip-token", + "vinu": "vita-inu", + "vgo": "virgo", + "vrd": "viridis-network", + "vrc": "virtual-coin", + "virtual": "virtual-protocol", + "vt": "viterium", + "vv": "virtual-versions", + "vrl": "virtual-x", + "vb": "virtublock", + "virtu": "virtucloud", + "vpp": "virtue-poker", + "vrsw": "virtuswap", + "visa": "visa-meme", + "vish": "vishai", + "vistadog": "vistadog", + "vita": "vitality", + "vitalek": "vitalek-buteren", + "vsg": "vitalik-smart-gas", + "vital": "vitalxp", + "vitarna": "vitarna", + "vite": "vite", + "vx": "vitex", + "vitra": "vitra-studios", + "wvtrs": "vitreus", + "vnpt": "vitruvian-nexus-protocol", + "$vivx": "vivex", + "vizion": "vizion-protocol", + "vizslaswap": "vizslaswap", + "vpad": "vlaunch-2", + "vmpx": "vmpx", + "vndc": "vndc", + "vnst": "vnst-stablecoin", + "veur": "vnx-euro", + "vnxau": "vnx-gold", + "vchf": "vnx-swiss-franc", + "vdr": "vodra", + "vdz": "voidz", + "voi": "voi-network", + "voip": "voip-finance", + "volr": "volare-network", + "vsui": "volo-staked-sui", + "volta": "volta-protocol", + "volx": "volumex", + "vmint": "volumint", + "ldz": "voodoo", + "vopo": "vopo", + "vp": "vortex-protocol", + "vglmr": "voucher-glmr", + "vksm": "voucher-ksm", + "vow": "vow", + "vxl": "voxel-x-network", + "voxel": "voxies", + "vxr": "vox-royale", + "vxt": "voxto", + "voy": "voy-finance", + "vps": "vps-ai", + "vrm": "vrmars", + "vsys": "v-systems", + "vtrading": "vtrading", + "pyr": "vulcan-forged", + "vpk": "vulture-peak", + "vuzz": "vuzzmind", + "vvs": "vvs-finance", + "vxdefi": "vxdefi", + "vyfi": "vyfinance", + "vsc": "vyvo-smart-chain", + "w3g": "w3gamez-network", + "w3gg": "w3gg", + "w3lt": "w3starter-launchpad-token", + "wabbit": "wabbit-hole", + "🐧": "waddle-waddle-pengu", + "wtk": "wadzpay-token", + "waffles": "waffles", + "wager": "wageron", + "wgr": "wagerr", + "wag": "wagyuswap", + "wagie": "wagie-2", + "wagiebot": "wagie-bot", + "wagmi": "wagmi-coin", + "hood": "wagmicatgirlkanye420etfmoon1000x", + "wagmigames": "wagmi-game-2", + "wagyu": "wagyu-protocol", + "waifu": "waifu-2", + "wfai": "waifuai", + "flocka": "waka-flocka", + "$walc": "walc", + "wlkn": "walken", + "wkg": "walkmining-governance", + "wltk": "walletika", + "wnow": "walletnow", + "bo": "wallet-sniffer", + "wsb": "wsb-coin", + "wsg": "wall-street-games-2", + "wsm": "wall-street-memes", + "wally": "wally-the-whale", + "walter": "walter-dog-solana", + "wtc": "waltonchain", + "wam": "wam", + "wana": "wanaka-farm", + "wanbtc": "wanbtc", + "wan": "wanchain", + "wand": "wand", + "waneth": "waneth", + "🐶": "wanko-manko-rune", + "wanna": "wannaswap", + "wasp": "wanswap-2", + "wanusdc": "wanusdc", + "wanusdt": "wanusdt", + "wanxrp": "wanxrp", + "war": "westarter", + "warp": "warden-protocol", + "wome": "war-of-meme", + "warped": "warped-games", + "$warpie": "warpie", + "wart": "warthog", + "was": "wasder", + "wasd": "wasd-studios", + "wassie": "wassie", + "waco": "waste-coin", + "wat": "watermelon", + "wts": "watchtowers-ai", + "wtr": "wateract", + "wtn": "waterneuron", + "wex": "waultswap", + "west": "waves-enterprise", + "wx": "weave6", + "wawa": "wawa-cat", + "gbl": "waweswaps-global-token", + "waxp": "wax", + "waxe": "waxe", + "ww": "wayawolfcoin", + "wicc": "waykichain", + "wgrt": "waykichain-governance-coin", + "wrx": "wazirx", + "wbnb": "wbnb", + "yvwbtc": "wbtc-yvault", + "wcd": "wcdonalds", + "wdot": "wdot", + "wave": "we-are-venom", + "wxm": "weatherxm-network", + "web": "webcash", + "3p": "web3camp", + "w3f": "web3frontier", + "wgt": "web3games-com-token", + "w3n": "web3-no-value", + "w3s": "web3shot", + "web3": "web3-ton-token", + "fps": "web3war", + "w3w": "what-do-you-meme", + "web4": "web4-ai", + "mintme": "webchain", + "webfour": "web-four", + "wet": "weble-ecosystem-token", + "wmn": "webmind-network", + "wbs": "white-boy-summer", + "webai": "website-ai", + "we": "webuy", + "wecan": "wecan", + "wch": "wecashcoin", + "weco": "wecoin", + "wcx": "wecoown", + "weebs": "weebs", + "wcs": "weecoins", + "wcp": "weecoins-premium", + "wxt": "wirex", + "wefi": "wefi-finance", + "weft": "weft-finance", + "wegro": "wegro", + "weirdo": "weirdo-2", + "weld": "weld", + "$well": "well3", + "wend": "wellnode", + "welsh": "welsh-corgi-coin", + "welups": "welups-blockchain", + "wemix$": "wemix-dollar", + "wemix": "wemix-token", + "$wen": "wen-4", + "wen": "wen-token", + "wenis": "weniscoin", + "why": "why", + "wpr": "wepower", + "back": "we-re-so-back", + "wsi": "wesendit", + "wetc": "wrapped-ether", + "wesp": "wethio-space", + "weth.e": "weth-plenty-bridge-65aa5342-507c-4f67-8634-1f4376ffdf9a", + "yvweth": "weth-yvault", + "wwy": "weway", + "wwry": "wewillrugyou", + "wexo": "wexo", + "wfca": "wfca", + "wfdp": "wfdp", + "whl": "whaleroom", + "whc": "whales-club", + "wit": "witnet", + "$updog": "what-s-updog", + "wtb": "what-the-base", + "what": "what-the-duck", + "when": "when", + "wheth": "where-did-the-eth-go-pulsechain", + "whey": "whey-token", + "whine": "whine-coin", + "whirl": "whirl-privacy", + "whisk": "whiskers", + "whiskey": "whiskey", + "wisp": "wispswap", + "$dcay": "whispers-of-decay", + "wbt": "whitebit", + "wcc": "white-coffee-cat", + "xwc": "whitecoin", + "white": "whiteheart", + "lotus": "white-lotus", + "wmster": "white-monster", + "wsh": "white-yorkshire", + "wec": "whole-earth-coin", + "wbx": "wibx", + "wik": "wickedbet-casino", + "wife": "wifejak", + "wifedoge": "wifedoge", + "wflm": "wiflama-coin", + "wifpepemog": "wifpepemoginu", + "wigger": "wigger", + "wigl": "wigl", + "wigo": "wigoswap", + "wkc": "wiki-cat", + "wld": "worldcoin-wld", + "wildcoin": "wildcoin", + "wild": "wildx", + "wgc": "wild-goat-coin-2", + "willy": "willy-2", + "wimpo": "wimpo", + "winamp": "winamp", + "win": "winklink-bsc", + "wft": "windfall-token", + "exe": "windoge98", + "wne": "winee3", + "$wnz": "winerz", + "wine": "wine-shares", + "wing": "wing-finance", + "wrt": "workoutapp", + "wink": "winkhub", + "wnz": "winnerz", + "winr": "winr-protocol", + "wins": "wins", + "winston": "winston-spider-monkey", + "winter": "winter-arc", + "wipe": "wipemyass", + "wire": "wireshape", + "wirtual": "wirtual", + "wsdm": "wisdomise", + "wise": "wise-token11", + "wskr": "wiskers", + "wista": "wistaverse", + "witch": "witch-token", + "wizt": "wizard-token-8fc587d7-4b79-4f5a-89c9-475f528c6d47", + "wizard": "wizard-vault-nftx", + "wiz": "wizard-world-wiz", + "scrl": "wizarre-scroll", + "wizzie": "wizzie", + "wjewel": "wjewel", + "wwd": "wlitidao", + "wpol": "wmatic", + "wmetis": "wmetis", + "wmlpv2": "wmlp", + "wodo": "wodo", + "xwgt": "wodo-gaming", + "wojak": "wojak", + "wojak 2.0": "wojak-2-0-coin", + "woj": "wojak-finance", + "wope": "wojakpepe", + "woke": "woke-frens", + "gowoke": "woke-chain", + "wool": "wolf-game-wool", + "wolf inu": "wolf-inu", + "wos": "wolf-of-solana", + "$wolf": "wolf-of-wall-street", + "wspp": "wolfsafepoorpeople-polygon", + "ballz": "wolfwifballz", + "wolverinu": "wolverinu-2", + "wyac": "woman-yelling-at-cat", + "wombat": "wombat", + "wom": "wom-token", + "wndr": "wonderman-nation", + "wfo": "wooforacle", + "woo": "woo-network", + "woop": "woop", + "wooooo!": "wooooo-coin", + "wzm": "woozoo-music", + "workie": "workie", + "wqt": "work-quest-2", + "wbc": "worldbrain-coin", + "wdc": "worldcoin", + "wrc": "worldcore", + "wepc": "world-earn-play-community", + "wlc": "worldland", + "wmtx": "world-mobile-token", + "wod": "world-of-defish", + "wpc": "world-peace-coin", + "wusd": "wusd", + "w": "wormhole", + "worth": "wortheum", + "!": "wow", + "wow": "wowswap", + "wowo": "wowo", + "wozx": "wozx", + "wpay": "wpay", + "wpt": "wpt-investing-corp", + "wacme": "wrapped-accumulate", + "wace": "wrapped-ace", + "wada": "wrapped-ada", + "xalgo": "wrapped-algo", + "wampl": "wrapped-ampleforth", + "warea": "wrapped-area", + "wastr": "wrapped-astar", + "wavax": "wrapped-avax", + "21avax": "wrapped-avax-21-co", + "waxl": "wrapped-axelar", + "waac": "wrapped-ayeayecoin", + "wban": "wrapped-banano", + "wbasedoge": "wrapped-basedoge", + "wbch": "wrapped-bch", + "21bch": "wrapped-bch-21-co", + "wbeth": "wrapped-beacon-eth", + "wbfc": "wrapped-bifrost", + "cewbtc": "wrapped-bitcoin-celer", + "sobtc": "wrapped-bitcoin-sollet", + "xbtc": "xenbitcoin", + "ubtc": "wrapped-bitcoin-universal", + "wbrock": "wrapped-bitrock", + "wblt": "wrapped-bmx-liquidity-token", + "21bnb": "wrapped-bnb-21-co", + "cewbnb": "wrapped-bnb-celer", + "wbb": "wrapped-bouncebit", + "21btc": "wrapped-btc-21-co", + "wbtt": "wrapped-btt", + "wbusd": "wrapped-busd", + "wcell": "wrapped-cellmates", + "wcfg": "wrapped-centrifuge", + "wchz": "wrapped-chiliz", + "wckb": "wrapped-ckb", + "wcfx": "wrapped-conflux", + "wcro": "wrapped-cro", + "acusd": "wrapped-cusd-allbridge-from-celo", + "wcyba": "wrapped-cybria", + "wdag": "wrapped-dag", + "wdegen": "wrapped-degen", + "wdmt": "wrapped-dmt", + "wdog": "wrapped-dog", + "21doge": "wrapped-doge-21-co", + "udoge": "wrapped-doge-universal", + "wehmnd": "wrapped-ehmnd", + "wela": "wrapped-elastos", + "wegld": "wrapped-elrond", + "wnrg": "wrapped-energi", + "weos": "wrapped-eos", + "ceweth": "wrapped-ether-celer", + "soeth": "wrapped-ethereum-sollet", + "ethc": "wrapped-eth-skale", + "wethw": "wrapped-ethw", + "wever": "wrapped-ever", + "wftm": "wrapped-fantom", + "wfil": "wrapped-fil", + "wfio": "wrapped-fio", + "wflr": "wrapped-flare", + "wflow": "wrapped-flow", + "wfrxeth": "wrapped-frxeth", + "wftn": "wrapped-ftn", + "wfuse": "wrapped-fuse", + "wglq": "wrapped-glq", + "wgsys": "wrapped-gsys-bluelotusdao", + "wshec": "wrapped-hec", + "tensor": "wrapped-hypertensor", + "wicp": "wrapped-icp", + "wimx": "wrapped-immutable", + "wiota": "wrapped-iota", + "wiotx": "wrapped-iotex", + "wjbc": "wrapped-jbc", + "wjaura": "wrapped-jones-aura", + "wkava": "wrapped-kava", + "wkcs": "wrapped-kcs", + "wklay": "wrapped-klay", + "libertas": "wrapped-libertas-omnibus", + "21ltc": "wrapped-ltc-21-co", + "wlung": "wrapped-lunagens", + "wlyx": "wrapped-lyx-universalswaps", + "wmnt": "wrapped-mantle", + "wmapo": "wrapped-mapo", + "wmas": "wrapped-massa", + "wmemo": "wrapped-memory", + "wbeam": "wrapped-merit-circle", + "wmlx": "wrapped-millix", + "wminima": "wrapped-minima", + "wmc": "wrapped-mistcoin", + "wglmr": "wrapped-moonbeam", + "wmoxy": "wrapped-moxy", + "wncg": "wrapped-ncg", + "wnear": "wrapped-near", + "wneon": "wrapped-neon", + "wnyc": "wrapped-newyorkcoin", + "wnxm": "wrapped-nxm", + "woas": "wrapped-oas", + "woasys": "wrapped-oasys", + "woeth": "wrapped-oeth", + "wokb": "wrapped-okb", + "womax": "wrapped-omax", + "wone": "wrapped-one", + "woptidoge": "wrapped-optidoge", + "wousd": "wrapped-ousd", + "wpci": "wrapped-paycoin", + "wpfil": "wrapped-pfil", + "wpokt": "wrapped-pokt", + "wpls": "wrapped-pulse-wpls", + "wq": "wrapped-q", + "wqom": "wrapped-qom", + "wreeth": "wrapped-real-ether", + "wrose": "wrapped-rose", + "wrseth": "wrapped-rseth", + "wruni": "wrapped-runi", + "wsei": "wrapped-sei", + "wsdn": "wrapped-shiden-network", + "21sol": "wrapped-sol-21-co", + "usol": "wrapped-solana-universal", + "wsgb": "wrapped-songbird", + "wstlink": "wrapped-staked-link", + "wstusdt": "wrapped-staked-usdt", + "wsta": "wrapped-statera", + "wstbtc": "wrapped-stbtc", + "wstx": "wrapped-stx-velar", + "usui": "wrapped-sui-universal", + "wsuperoethb": "wrapped-super-oeth", + "wsys": "wrapped-syscoin", + "wtao": "wrapped-tao", + "wtlos": "wrapped-telos", + "wtpokt": "wrapped-thunderpokt", + "wtt": "wrapped-thunder-token", + "wtomo": "wrapped-tomo", + "wtai": "wrapped-trade-ai", + "wtrx": "wrapped-tron", + "xusdc": "wrapped-usdc-caviarnine", + "wusdm": "wrapped-usdm", + "wusdr": "wrapped-usdr", + "wvlx": "wrapped-velas", + "wvenom": "wrapped-venom", + "wvg0": "wrapped-virgin-gen-0-cryptokitties", + "wvtru": "wrapped-vtru", + "wwan": "wrapped-wan", + "wwdoge": "wrapped-wdoge", + "wxdc": "wrapped-xdc", + "wxfi": "wrapped-xfi", + "wxrp": "wrapped-xrp", + "wzedx": "wrapped-zedxion", + "wzeta": "wrapped-zetachain", + "wzkcro": "wrapped-zkcro", + "wrinkle": "wrinkle-the-duck", + "wsbc": "wsb-classic", + "wuf": "wuffi", + "wukong": "wukong-musk", + "wut": "wut", + "wwemix": "wwemix", + "wys": "wyscale", + "x2y2": "x2y2", + "x42": "x42-protocol", + "x7dao": "x7dao", + "x7r": "x7r", + "x8x": "x8-project", + "xact": "xactrewards", + "xah": "xahau", + "xaigrok": "xaigrok", + "xakt": "xakt_astrovault", + "xalpha": "xalpha-ai", + "xeta": "xana", + "xav": "xave-token", + "xb": "xbanking", + "xbcna": "xbcna_astrovault", + "xbear": "xbear-network", + "xbid": "xbid", + "xbt": "xbit", + "xbld": "xbld_astrovault", + "xbg": "xborg", + "xbot": "xbot", + "xbtsg": "xbtsg_astrovault", + "xcad": "xcad-network", + "xcv": "xcarnival", + "xcash": "x-cash", + "xld": "xcel-swap", + "xlab": "xceltoken-plus", + "xcept": "xception", + "xcksm": "xcksm", + "xcmdx": "xcmdx_astrovault", + "xco": "x-coin-2", + "xcrx": "xcrx", + "xcudos": "xcudos_astrovault", + "xcusdt": "xcusdt", + "xdai": "xdai", + "xcomb": "xdai-native-comb", + "stake": "xdai-stake", + "xdao": "xdao", + "xdc": "xdce-crowd-sale", + "xdec": "xdec-astrovault", + "xdefi": "xdefi", + "xdoge": "xdoge-3", + "xd": "xdoge-4", + "xdvpn": "xdvpn_astrovault", + "xel": "xelis", + "xels": "xels", + "xen": "xen-crypto", + "bxen": "xen-crypto-bsc", + "fmxen": "xen-crypto-fantom", + "mxen": "xen-crypto-matic", + "pxen": "xen-crypto-pulsechain", + "bxnf": "xenify-bxnf-bnb-chain", + "xeno": "xeno", + "xwave": "xenowave", + "xsei": "xensei", + "xeon": "xeon-protocol", + "xeroai": "xero-ai", + "xert": "xertinet", + "xfit": "xfit", + "x-file": "xfile", + "xet": "xfinite-entertainment-token", + "xflix": "xflix_astrovault", + "xfund": "xfund", + "xg": "x-game", + "xgold": "xgold-coin", + "xgpt": "x-gpt", + "xgpu": "xgpu-ai", + "xgrav": "xgrav_astrovault", + "xtag": "xhashtag", + "xhp": "xhype", + "xiao": "xiaojie", + "xlg": "xiao-lang-gou", + "ida": "xidar", + "xden": "xiden", + "xido": "xido-finance", + "xiii": "xiiicoin", + "xio": "xio", + "xion": "xion-2", + "xi": "xi-token", + "xjewel": "xjewel", + "xlh": "xlauncher", + "xlbully": "xl-bully", + "abtc": "xlink-bridged-btc-stacks", + "xlist": "xlist", + "xmx": "xmax", + "xmon": "xmon", + "xmpwr": "xmpwr_astrovault", + "xnf": "xnf", + "xnft": "xnft", + "xnj": "xninja-tech-token", + "xodex": "xodex", + "xosmo": "xosmo_astrovault", + "xvr": "xover", + "xox": "xox-labs", + "xoxno": "xoxno", + "xp": "xp-3", + "t3xp": "xp-2", + "xpp": "xpad-pro", + "xps": "xpansion-game", + "xpasg": "xpasg_astrovault", + "xpnd": "xpendium", + "xpe": "xpense-2", + "xpet": "xpet-tech", + "bpet": "xpet-tech-bpet", + "xpla": "xpla", + "xplq": "xplq_astrovault", + "xpai": "xplus-ai", + "xpnet": "xp-network", + "apow": "xpowermine-com-apow", + "xpow": "xpowermine-com-xpow", + "xers": "x-project-erc", + "xptp": "xptp", + "xquok": "xquok", + "xqwoyn": "xqwoyn_astrovault", + "xr": "xraders", + "xraid": "xraid", + "xrai": "x-ratio-ai", + "xrdoge": "xrdoge", + "xrgb": "xrgb", + "xrock": "xrocket", + "xrootai": "xrootai", + "xrow": "xrow", + "xrp20": "xrp20", + "xrpaynet": "xrpaynet", + "xrpc": "xrp-classic-new", + "xrph": "xrp-healthcare", + "xrps": "xrps", + "xrun": "xrun", + "xsauce": "xsauce", + "xsgd": "xsgd", + "syl": "xsl-labs", + "xsp": "xswap-protocol", + "xspectar": "xspectar", + "xsushi": "xsushi", + "xswap": "xswap-2", + "xtt": "xswap-treasure", + "xtt-b20": "xtblock-token", + "xt": "xtcom-token", + "xtk": "xtoken", + "xtai": "xtoolsai", + "xby": "xtrabytes", + "xtrack": "xtrack-ai", + "xtreme": "xtremeverse", + "xtusd": "xtusd", + "xv": "xv", + "xvm": "xvm", + "xwin": "xwin-finance", + "xwg": "x-world-games", + "xx": "xxcoin-2", + "xy": "xy-finance", + "xyo": "xyo-network", + "xyxyx": "xyxyx", + "xzk": "xzk", + "yai": "y", + "y2k": "y2k-2", + "y8u": "y8u", + "yacht": "yachtingverse-old", + "yda": "yadacoin", + "yak": "yield-yak", + "yaks": "yak-dao", + "yaku": "yaku", + "ysu": "yalla-sun", + "yam": "yam-2", + "yama": "yama-inu", + "cblp": "yamfore", + "yawn": "yawn-s-world", + "yaw": "yawww", + "yay": "yay-games", + "yec": "ycash", + "ydr": "ydragon", + "ycrv": "yearn-crv", + "yeth": "yeth", + "yfi": "yearn-finance", + "yearn": "yearntogether", + "yprisma": "yearn-yprisma", + "yod": "year-of-the-dragon", + "yel": "yel-finance", + "road": "yellow-road", + "yelo": "yelo-cat", + "ytn": "yenten", + "yertle": "yertle-the-turtle", + "yes": "yes-token", + "yesbut": "yes-but", + "yon": "yesorno-2", + "yesp": "yesports", + "yeti": "yeti-finance", + "yf-dai": "yfdai-finance", + "yfii": "yfii-finance", + "yfo": "yfione-2", + "yvyfi": "yfi-yvault", + "yfl": "yflink", + "yfx": "yieldfarming-index", + "y24": "yield-24", + "yld": "yield-app", + "ybx": "yieldblox", + "yieldeth": "yieldeth-sommelier", + "yieldx": "yield-finance", + "ygg": "yield-guild-games", + "ydf": "yieldification", + "yldy": "yieldly", + "ynbnb": "yieldnest-restaked-bnb", + "yneth": "yieldnest-restaked-eth", + "ynlsde": "yieldnest-restaked-lsd-eigenlayer", + "$yield": "yieldstone", + "watch": "yieldwatch", + "yyavax": "yield-yak-avax", + "yikes": "yikes-dog", + "yoco": "yocoinyoco", + "jedals": "yoda-coin-swap", + "yode": "yodeswap", + "yok": "yokaiswap", + "yolo": "yolo-games", + "yool": "yooldo", + "yooshi": "yooshi", + "yoshi": "yoshi-exchange", + "yoto": "yotoshi", + "yct": "youclout", + "younes": "younes", + "ybo": "young-boys-fan-token", + "ymii": "young-mids-inspired", + "yourai": "your-ai", + "yks": "yourkiss", + "yourmom": "yourmom", + "yom": "your-open-metaverse", + "xui": "yousui", + "yoyo": "yoyo-market", + "yozi": "yozi-protocol", + "yuge": "yuge-on-eth", + "yukie": "yukie", + "yukky": "yukky", + "yum": "yum", + "$yumi": "yumi", + "yummi": "yummi-universe", + "yummy": "yummy", + "yunki": "yunki", + "yup": "yup", + "yuro": "yuro-2024", + "yvboost": "yvboost", + "yvdai": "yvdai", + "yyolo": "yyolo", + "zack": "zack-morris", + "zada": "zada", + "zai": "zaiho", + "zaif": "zaif-token", + "zafi": "zakumifi", + "zgd": "zambesigold", + "zam": "zam-io", + "zano": "zano", + "zap": "zapper-protocol", + "zapex": "zapexchange", + "zapi": "zapicorn", + "zapo": "zapo", + "zrs": "zephyr-protocol-reserve-share", + "zarp": "zarp-stablecoin", + "zusd": "zasset-zusd", + "zaza": "zaza-sol", + "zazu": "zazu", + "zazzles": "zazzles", + "zbit": "zbit-ordinals", + "zec": "zcash", + "zcd": "zchains", + "zcl": "zclassic", + "zcr": "zcore-2", + "zefi": "zcore-finance", + "z3": "z-cubed", + "zbcn": "zebec-network", + "zbc": "zebec-protocol", + "zco": "zebi", + "zebu": "zebu", + "zeck": "zeck-murris", + "zed": "zed-run", + "zedxion": "zedxion", + "zedx": "zedxion-2", + "zbu": "zeebu", + "zwif": "zeekwifhat", + "zpt": "zeepin", + "zeep": "zeepr", + "ztk": "zefi", + "zgen": "zegent-ai", + "ztg": "zeitgeist", + "zlda": "zelda-2-0", + "zelix": "zelix", + "erw": "zeloop-eco-reward", + "zlw": "zelwin", + "zen": "zenith-2", + "zent": "zentu", + "zenc": "zenc-coin", + "znx": "zenex", + "zeniq": "zeniq", + "zenith": "zenith-chain", + "zw": "zenith-wallet", + "zenf": "zenland", + "zlk": "zenlink-network-token", + "zoai": "zenoai", + "zeno": "zenocard", + "znn": "zenon-2", + "$zpc": "zenpandacoin", + "znz": "zenzo", + "zeon": "zeon", + "zeph": "zephyr-protocol", + "zsd": "zephyr-protocol-stable-dollar", + "00": "zer0zer0", + "zer": "zero", + "zeth": "zeroliquid-eth", + "zsum": "zerosum", + "zee": "zeroswap", + "zrpy": "zerpaay", + "zesh": "zesh", + "zex": "zeta", + "bnb.bsc": "zetachain-bridged-bnb-bsc-zetachain", + "btc.btc": "zetachain-bridged-btc-btc-zetachain", + "usdc.bsc": "zetachain-bridged-usdc-bsc-zetachain", + "usdc.eth": "zetachain-bridged-usdc-eth-zetachain", + "usdt.bsc": "zetachain-bridged-usdt-bsc-zetachain", + "usdt.eth": "zetachain-bridged-usdt-eth-zetachain", + "eth.eth": "zetachain-eth-eth", + "zet": "zetacoin", + "stzeta": "zetaearn-staked-zeta", + "z": "zeta-markets", + "zetrix": "zetrix", + "zeus": "zeuspepesdog", + "zsc": "zeusshield", + "zhc": "zhc-zero-hour-cash", + "zsh": "ziesha", + "zigap": "zigap", + "zig": "zignaly", + "zz": "zigzag-2", + "zik": "zik-token", + "zillionxo": "zillion-aakar-xo", + "zil": "zilliqa", + "zlp": "zilpay-wallet", + "zilpepe": "zilpepe", + "zwap": "zilswap", + "zpet": "zino-pet", + "zion": "zionwallet", + "zmt": "zipmex-token", + "zippysol": "zippy-staked-sol", + "zip": "zipswap", + "zrc": "zircuit", + "ziv4": "ziv4-labs", + "zizle": "zizle", + "zjoe": "zjoe", + "zat": "zkapes-token", + "zkarch": "zkarchive", + "cross": "zkcross-network", + "zkdoge": "zkdoge", + "zkdx": "zkdx", + "zke": "zkera-finance", + "zkevm": "zkevmchain-bsc", + "zkf": "zkfair", + "zkgap": "zkgap", + "zkgun": "zkgun", + "zkhive": "zkhive", + "zkin": "zkinfra", + "$zkitty": "zkitty-bot", + "zkpad": "zklaunchpad", + "zend": "zklend-2", + "zkl": "zklink", + "zklk": "zklock", + "zkml": "zkml", + "zkpepe": "zkpepe-2", + "zkb": "zkspace", + "zf": "zkswap-finance", + "zk": "zksync", + "zkid": "zksync-id", + "zao": "zktao", + ":zkt:": "zktsunami", + "zkz": "zkzone", + "zmn": "zmine", + "zdcv2": "zodiacsv2", + "zodi": "zodium", + "zpay": "zoid-pay", + "zoink": "zoink", + "zmb": "zombiecoin", + "zinu": "zombie-inu-2", + "zone": "zone", + "zoomer": "zoomer-sol", + "zm": "zoomswap", + "zooa": "zoopia", + "zoot": "zoo-token", + "zorro": "zorro", + "zp": "z-protocol", + "ztx": "ztx", + "zum": "zum-token", + "zuneth": "zunami-eth-2", + "zun": "zunami-governance-token", + "zunusd": "zunami-usd", + "zurr": "zurrency", + "zushi": "zushi", + "zuzalu": "zuzalu-inu", + "zuzu": "zuzu-coin", + "zyb": "zyberswap", + "zdai": "zydio-ai", + "zfi": "zyfi", + "zygo": "zygo-the-frog", + "zyn": "zynecoin", + "zyr": "zyrri", + "zzz": "zzz", + "ᚠ": "z-z-z-z-z-fehu-z-z-z-z-z" +} \ No newline at end of file diff --git a/src/indexer/classes/RpcOnDemandEndpointCache.ts b/src/indexer/classes/RpcOnDemandEndpointCache.ts new file mode 100644 index 0000000..395eb24 --- /dev/null +++ b/src/indexer/classes/RpcOnDemandEndpointCache.ts @@ -0,0 +1,127 @@ +// src/indexer/classes/RpcEndpointCahce.ts + +import { logger, TruncateError } from "../../utils/utils"; +import { QueryLavaRPC } from "../utils/restRpc"; +import { MemoryCache } from "./MemoryCache"; + +export interface DenomTraceResponse { + denom_trace: { + path: string; + base_denom: string; + } +} + +export interface EstimatedRewardsResponse { + info: { + source: string; + amount: { + denom: string; + amount: string; + }; + }[]; + total: { + denom: string; + amount: string; + }[]; +} + +class RpcOnDemandEndpointCacheClass { + private cacheRefreshInterval = 20 * 60; // 20 minutes + + public async GetDenomTrace(denom: string): Promise { + const cacheKey = `denom_trace_${denom}`; + let denomTrace = await MemoryCache.get(cacheKey); + + if (!denomTrace) { + await this.fetchAndCacheDenomTrace(denom); + denomTrace = await MemoryCache.get(cacheKey); + if (!denomTrace) { + logger.warn('Denom trace not found in cache after refresh'); + return { denom_trace: { path: '', base_denom: '' } }; + } + } + + return denomTrace; + } + + private async fetchAndCacheDenomTrace(denom: string): Promise { + try { + const response = await QueryLavaRPC(`/ibc/apps/transfer/v1/denom_traces/${denom}`); + await MemoryCache.set(`denom_trace_${denom}`, response, this.cacheRefreshInterval); + logger.info(`Fetched and cached denom trace for ${denom} successfully.`); + } catch (error) { + logger.error(`Error fetching denom trace for ${denom}`, { error: TruncateError(error) }); + throw error; + } + } + + public async GetEstimatedValidatorRewards(validator: string, amount: number, denom: string): Promise { + const cacheKey = `validator_rewards_${validator}_${amount}_${denom}`; + let rewards = await MemoryCache.get(cacheKey); + + if (!rewards) { + await this.fetchAndCacheEstimatedValidatorRewards(validator, amount, denom); + rewards = await MemoryCache.get(cacheKey); + if (!rewards) { + logger.warn(`No estimated validator rewards found in cache for ${validator}`); + return { info: [], total: [] }; + } + } + + return rewards; + } + + private async fetchAndCacheEstimatedValidatorRewards(validator: string, amount: number, denom: string): Promise { + try { + const response = await QueryLavaRPC( + `/lavanet/lava/subscription/estimated_validator_rewards/${validator}/${amount}${denom}`, + true + ); + await MemoryCache.set( + `validator_rewards_${validator}_${amount}_${denom}`, + response, + this.cacheRefreshInterval + ); + // logger.info(`Fetched and cached estimated validator rewards for ${validator}`); + } catch (error) { + logger.error(`Error fetching estimated validator rewards for ${validator}`, { error: TruncateError(error) }); + throw error; + } + } + + public async GetEstimatedProviderRewards(provider: string, amount: number, denom: string): Promise { + const cacheKey = `provider_rewards_${provider}_${amount}_${denom}`; + let rewards = await MemoryCache.get(cacheKey); + + if (!rewards) { + await this.fetchEstimatedProviderRewards(provider, amount, denom); + rewards = await MemoryCache.get(cacheKey); + if (!rewards) { + logger.warn(`No estimated provider rewards found in cache for ${provider}`); + return { info: [], total: [] }; + } + } + + return rewards; + } + + private async fetchEstimatedProviderRewards(provider: string, amount: number, denom: string): Promise { + try { + const response = await QueryLavaRPC( + `/lavanet/lava/subscription/estimated_provider_rewards/${provider}/${amount}${denom}`, + true + ); + await MemoryCache.set( + `provider_rewards_${provider}_${amount}_${denom}`, + response, + this.cacheRefreshInterval + ); + // logger.info(`Fetched and cached estimated provider rewards for ${provider}`); + } catch (error) { + logger.error(`Error fetching estimated provider rewards for ${provider}`, { error: TruncateError(error) }); + throw error; + } + } +} + +export const RpcOnDemandEndpointCache = new RpcOnDemandEndpointCacheClass(); diff --git a/src/indexer/classes/RpcEndpointCache.ts b/src/indexer/classes/RpcPeriodicEndpointCache.ts similarity index 74% rename from src/indexer/classes/RpcEndpointCache.ts rename to src/indexer/classes/RpcPeriodicEndpointCache.ts index da4a773..3ebc907 100644 --- a/src/indexer/classes/RpcEndpointCache.ts +++ b/src/indexer/classes/RpcPeriodicEndpointCache.ts @@ -1,7 +1,7 @@ // src/indexer/classes/RpcEndpointCahce.ts import { IsMeaningfulText, logger, TruncateError } from "../../utils/utils"; -import { QueryLavaRPC } from "../rpcUtils"; +import { QueryLavaRPC } from "../utils/restRpc"; import { MemoryCache } from "./MemoryCache"; interface Delegation { @@ -42,14 +42,52 @@ interface ProviderMetadataResponse { MetaData: ProviderMetadata[]; } -class RpcEndpointCacheClass { - private providerAndDelegatorRefreshInterval = 20 * 60; // 20 minutes +interface AllValidatorsResponse { + validators: { + operator_address: string; + consensus_pubkey: { + "@type": string; + [key: string]: string; + }; + jailed: boolean; + status: string; + tokens: string; + delegator_shares: string; + description: { + moniker: string; + identity: string; + website: string; + security_contact: string; + details: string; + }; + unbonding_height: string; + unbonding_time: string; + commission: { + commission_rates: { + rate: string; + max_rate: string; + max_change_rate: string; + }; + update_time: string; + }; + min_self_delegation: string; + unbonding_on_hold_ref_count: string; + unbonding_ids: string[]; + }[]; + pagination: { + next_key: string; + total: string; + }; +} + +class RpcPeriodicEndpointCacheClass { + private cacheRefreshInterval = 20 * 60; // 20 minutes private isRefreshing: boolean = false; private refreshPromise: Promise | null = null; constructor() { this.refreshCache(); - setInterval(() => this.refreshCache(), this.providerAndDelegatorRefreshInterval * 1000); + setInterval(() => this.refreshCache(), this.cacheRefreshInterval * 1000); } private async refreshCache(): Promise { @@ -73,6 +111,7 @@ class RpcEndpointCacheClass { await this.fetchAndCacheProviders(); await this.fetchAndCacheDelegators(); await this.fetchAndCacheEmptyProviderDelegations(); + await this.fetchAndCacheValidators(); } catch (error) { logger.error('Error refreshing cache', { error: TruncateError(error) }); } @@ -82,7 +121,7 @@ class RpcEndpointCacheClass { try { const response = await this.GetProviderMetadata(); const providers = response.MetaData.map((meta) => meta.provider); - await MemoryCache.setArray('providers', providers, this.providerAndDelegatorRefreshInterval); + await MemoryCache.setArray('providers', providers, this.cacheRefreshInterval); logger.info('Providers cache refreshed successfully.'); } catch (error) { @@ -113,7 +152,7 @@ class RpcEndpointCacheClass { } } - await MemoryCache.setArray('uniqueDelegators', Array.from(uniqueDelegators), this.providerAndDelegatorRefreshInterval); + await MemoryCache.setArray('uniqueDelegators', Array.from(uniqueDelegators), this.cacheRefreshInterval); logger.info('UniqueDelegatorsCache refreshed successfully.'); } catch (error) { @@ -124,7 +163,7 @@ class RpcEndpointCacheClass { private async fetchAndCacheEmptyProviderDelegations(): Promise { try { const emptyProviderDelegations = await this.GetProviderDelegators('empty_provider'); - await MemoryCache.set('empty_provider_delegations', emptyProviderDelegations.delegations, this.providerAndDelegatorRefreshInterval); + await MemoryCache.set('empty_provider_delegations', emptyProviderDelegations.delegations, this.cacheRefreshInterval); logger.info('Empty provider delegations cache refreshed successfully.'); } catch (error) { logger.error('Error fetching empty provider delegations', { error: TruncateError(error) }); @@ -194,7 +233,7 @@ class RpcEndpointCacheClass { delegators = await QueryLavaRPC( `/lavanet/lava/dualstaking/provider_delegators/${provider}` ); - await MemoryCache.set(cacheKey, delegators, this.providerAndDelegatorRefreshInterval); + await MemoryCache.set(cacheKey, delegators, this.cacheRefreshInterval); } return delegators; @@ -206,7 +245,7 @@ class RpcEndpointCacheClass { if (!metadata) { metadata = await QueryLavaRPC(`/lavanet/lava/epochstorage/provider_metadata/`); - await MemoryCache.set(cacheKey, metadata, this.providerAndDelegatorRefreshInterval); + await MemoryCache.set(cacheKey, metadata, this.cacheRefreshInterval); } return metadata; @@ -219,7 +258,7 @@ class RpcEndpointCacheClass { if (!delegations) { const delegatorsResponse = await this.GetProviderDelegators(provider); delegations = delegatorsResponse.delegations; - await MemoryCache.set(cacheKey, delegations, this.providerAndDelegatorRefreshInterval); + await MemoryCache.set(cacheKey, delegations, this.cacheRefreshInterval); } return delegations; @@ -263,6 +302,35 @@ class RpcEndpointCacheClass { return uniqueDelegators.size; } + + public async GetAllValidators(): Promise { + const validators = await MemoryCache.getArray('all_validators'); + if (!validators) { + await this.refreshCache(); + return await MemoryCache.getArray('all_validators') || []; + } + return validators; + } + + private async fetchAndCacheValidators(): Promise { + try { + let validatorAddresses: string[] = []; + let nextKey: string | null = null; + + do { + const queryParams = nextKey ? `?pagination.key=${encodeURIComponent(nextKey)}` : ''; + const response = await QueryLavaRPC(`/cosmos/staking/v1beta1/validators${queryParams}`); + + validatorAddresses = validatorAddresses.concat(response.validators.map(validator => validator.operator_address)); + nextKey = response.pagination.next_key; + } while (nextKey); + + await MemoryCache.setArray('all_validators', validatorAddresses, this.cacheRefreshInterval); + logger.info(`Fetched and cached ${validatorAddresses.length} validators successfully.`); + } catch (error) { + logger.error('Error fetching validators', { error: TruncateError(error) }); + } + } } -export const RpcEndpointCache = new RpcEndpointCacheClass(); +export const RpcPeriodicEndpointCache = new RpcPeriodicEndpointCacheClass(); diff --git a/src/indexer/eventDebug.ts b/src/indexer/eventDebug.ts index b6bab53..d4807e9 100644 --- a/src/indexer/eventDebug.ts +++ b/src/indexer/eventDebug.ts @@ -2,7 +2,7 @@ import { GetRpcBlock, GetRpcTxs, GetRpcBlockResultEvents } from "./lavaBlock"; import { logger } from "../utils/utils"; -import { RpcConnection } from "../utils/rpc"; +import { RpcConnection } from "./utils/lavajsRpc"; import { ProcessOneEvent } from "./eventProcessor"; import * as JsinfoSchema from '../schemas/jsinfoSchema/jsinfoSchema'; import { LavaBlock } from "./types"; diff --git a/src/indexer/indexerConsts.ts b/src/indexer/indexerConsts.ts index 9b7dc5f..416dc68 100644 --- a/src/indexer/indexerConsts.ts +++ b/src/indexer/indexerConsts.ts @@ -1,13 +1,14 @@ // src/indexer/indexerConsts.ts import { GetEnvVar } from '../utils/utils'; -import { ParseSizeToBytes } from './indexerUtils'; +import { ParseSizeToBytes } from './utils/indexerUtils'; import { existsSync, mkdirSync } from 'fs'; import { homedir } from 'os'; import { join } from 'path'; export const JSINFO_INDEXER_DO_IN_CHUNKS_CHUNK_SIZE: number = parseInt(GetEnvVar('JSINFO_INDEXER_DO_IN_CHUNKS_CHUNK_SIZE', "20")); -export const JSINFO_INDEXER_LAVA_RPC: string = GetEnvVar("JSINFO_INDEXER_LAVA_RPC", "https://public-rpc.lavanet.xyz/"); // testnet +export const JSINFO_INDEXER_LAVA_RPC: string = GetEnvVar("JSINFO_INDEXER_LAVA_RPC", "https://lav1.tendermintrpc.lava.build/"); // testnet +export const JSINFO_INDEXER_LAVA_REST_RPC_URL: string = GetEnvVar("JSINFO_INDEXER_LAVA_REST_RPC_URL", "https://lav1.lava.build/"); // testnet export const JSINFO_INDEXER_N_WORKERS: number = parseInt(GetEnvVar('JSINFO_INDEXER_N_WORKERS', "2")); export const JSINFO_INDEXER_BATCH_SIZE: number = parseInt(GetEnvVar('JSINFO_INDEXER_BATCH_SIZE', "100")); export const JSINFO_INDEXER_POLL_MS: number = parseInt(GetEnvVar('JSINFO_INDEXER_POLL_MS', "5000")); diff --git a/src/indexer/restrpc_agregators/AprMonitor.ts b/src/indexer/restrpc_agregators/AprMonitor.ts new file mode 100644 index 0000000..86515b5 --- /dev/null +++ b/src/indexer/restrpc_agregators/AprMonitor.ts @@ -0,0 +1,356 @@ +// src/indexer/restrpc_agregators/AprApi.ts + +import * as JsinfoSchema from '../../schemas/jsinfoSchema/jsinfoSchema'; +import { MemoryCache } from "../classes/MemoryCache"; +import { CalculatePercentile } from "./indexerRestRpcUtils"; +import { logger } from '../../utils/utils'; + +import { RpcPeriodicEndpointCache } from '../classes/RpcPeriodicEndpointCache'; +import { EstimatedRewardsResponse, RpcOnDemandEndpointCache } from '../classes/RpcOnDemandEndpointCache'; +import { CoinGekoCache } from '../classes/CoinGeko/CoinGekoCache'; + +import { GetJsinfoDb } from "../../utils/dbUtils"; + +// Constants +const BENCHMARK_AMOUNT = 10_000_000_000; +const BENCHMARK_DENOM = "ulava"; +const PERCENTILE = 0.8; + +const CACHE_DURATION = { + DENOM_TRACE: 3600 * 24, // 1 day +}; + +const TEST_DENOMS = ["ibc/E3FCBEDDBAC500B1BAB90395C7D1E4F33D9B9ECFE82A16ED7D7D141A0152323F"]; + +const DENOM_CONVERSIONS = { + "ulava": { baseDenom: "lava", factor: 1_000_000 }, // Lava (LAVA) + "uatom": { baseDenom: "atom", factor: 1_000_000 }, // Cosmos (ATOM) + "uosmo": { baseDenom: "osmo", factor: 1_000_000 }, // Osmosis (OSMO) + "ujuno": { baseDenom: "juno", factor: 1_000_000 }, // Juno (JUNO) + "ustars": { baseDenom: "stars", factor: 1_000_000 }, // Stargaze (STARS) + "uakt": { baseDenom: "akt", factor: 1_000_000 }, // Akash (AKT) + "uhuahua": { baseDenom: "huahua", factor: 1_000_000 }, // Chihuahua (HUAHUA) + "uevmos": { baseDenom: "evmos", factor: 1_000_000_000_000_000_000 }, // Evmos (EVMOS) + "inj": { baseDenom: "inj", factor: 1_000_000_000_000_000_000 }, // Injective (INJ) + "aevmos": { baseDenom: "evmos", factor: 1_000_000_000_000_000_000 }, // Evmos (EVMOS) + "basecro": { baseDenom: "cro", factor: 100_000_000 }, // Crypto.com (CRO) + "uscrt": { baseDenom: "scrt", factor: 1_000_000 }, // Secret (SCRT) + "uiris": { baseDenom: "iris", factor: 1_000_000 }, // IRISnet (IRIS) + "uregen": { baseDenom: "regen", factor: 1_000_000 }, // Regen (REGEN) + "uion": { baseDenom: "ion", factor: 1_000_000 }, // Ion (ION) + "nanolike": { baseDenom: "like", factor: 1_000_000_000 }, // LikeCoin (LIKE) + "uaxl": { baseDenom: "axl", factor: 1_000_000 }, // Axelar (AXL) + "uband": { baseDenom: "band", factor: 1_000_000 }, // Band Protocol (BAND) + "ubld": { baseDenom: "bld", factor: 1_000_000 }, // Agoric (BLD) + "ucmdx": { baseDenom: "cmdx", factor: 1_000_000 }, // COMDEX (CMDX) + "ucre": { baseDenom: "cre", factor: 1_000_000 }, // Crescent (CRE) + "uxprt": { baseDenom: "xprt", factor: 1_000_000 }, // Persistence (XPRT) +}; + +class APRMonitorClass { + private intervalId: NodeJS.Timer | null = null; + + public start(): void { + if (this.intervalId) return; // Prevent multiple intervals + + this.intervalId = setInterval(() => { + this.ProcessAPR().catch(console.error); + }, 5 * 60 * 1000); // 5 minutes + + // Initial run + this.ProcessAPR().catch(console.error); + } + + public stop(): void { + if (this.intervalId) { + clearInterval(this.intervalId); + this.intervalId = null; + } + } + + private async GetBasePrice(amount: string, denom: string): Promise<[number, string]> { + let baseAmount = parseFloat(amount); + let baseDenom = denom; + + if (baseDenom.startsWith("ibc/")) { + + const cachedValue = await MemoryCache.getDict(`denom-${denom}`); + if (cachedValue) { + baseDenom = cachedValue.baseDenom; + } + + else { + const denomWithoutPrefix = denom.slice(4); + const denomTrace = await RpcOnDemandEndpointCache.GetDenomTrace(denomWithoutPrefix); + baseDenom = denomTrace.denom_trace.base_denom; + await MemoryCache.setDict(`denom-${denom}`, { baseDenom }, CACHE_DURATION.DENOM_TRACE); // cache for 1 day + } + } + + if (baseDenom in DENOM_CONVERSIONS) { + const { baseDenom: newBaseDenom, factor } = DENOM_CONVERSIONS[baseDenom]; + baseDenom = newBaseDenom; + baseAmount = baseAmount / factor; + } + + return [baseAmount, baseDenom]; + } + + public async GetUSDCValue(amount: number, denom: string): Promise { + const usdcRate = await CoinGekoCache.GetDenomToUSDRate(denom); + return amount * usdcRate; + } + + public async CalculateAPR(totalReward: number): Promise { + const investedAmount = await this.GetUSDCValue(BENCHMARK_AMOUNT / 1000000, "lava"); + const rate = totalReward / investedAmount; + const APR = ((1 + rate) ** 12 - 1) + return APR + } + + private splitIntoChunks(entities: string[], numChunks: number = 3): string[][] { + const chunkSize = Math.ceil(entities.length / numChunks); + return Array.from( + { length: Math.ceil(entities.length / chunkSize) }, + (_, i) => entities.slice(i * chunkSize, (i + 1) * chunkSize) + ); + } + + private async processEntityChunk( + chunk: string[], + chunkIndex: number, + getEstimatedRewards: (entity: string) => Promise, + totalEntities: number, + caller: string, + progressCallback: (processed: number) => void + ): Promise> { + const chunkRewards = new Map(); + + logger.info(`APRMonitor::${caller} - Starting chunk processing`, { + thread: chunkIndex + 1, + chunkSize: chunk.length, + totalEntities + }); + + for (const entity of chunk) { + try { + const estimatedRewards = await getEstimatedRewards(entity); + + for (const total of estimatedRewards.total) { + if (TEST_DENOMS.includes(total.denom)) continue; + + const [amount, denom] = await this.GetBasePrice(total.amount, total.denom); + const usdcAmount = await this.GetUSDCValue(amount, denom); + chunkRewards.set(entity, (chunkRewards.get(entity) || 0) + usdcAmount); + } + + progressCallback(1); // Increment processed count by 1 + } catch (error) { + logger.error(`APRMonitor::${caller} - Error processing entity`, { + thread: chunkIndex + 1, + entity, + error + }); + } + } + + logger.info(`APRMonitor::${caller} - Completed chunk processing`, { + thread: chunkIndex + 1, + processedEntities: chunk.length + }); + + return chunkRewards; + } + + private async calculateAPRs(rewards: Map): Promise> { + const aprs = new Map(); + for (const [entityId, totalReward] of rewards.entries()) { + const APR = await this.CalculateAPR(totalReward); + aprs.set(entityId, APR); + } + return aprs; + } + + private async calculateAPRForEntities( + getEntities: () => Promise, + getEstimatedRewards: (entity: string) => Promise, + caller: string, + numThreads: number = 3 + ): Promise { + const startTime = Date.now(); + let processedCount = 0; + let lastLogTime = startTime; + let lastLogPercent = 0; + + try { + const entities = await getEntities(); + const totalEntities = entities.length; + + logger.info(`APRMonitor::${caller} - Starting calculation`, { + totalEntities, + numThreads, + timestamp: new Date().toISOString() + }); + + // Progress tracking callback + const updateProgress = (increment: number) => { + processedCount += increment; + const currentPercent = Math.floor((processedCount / totalEntities) * 100); + const currentTime = Date.now(); + + if (currentTime - lastLogTime >= 30000 || currentPercent >= lastLogPercent + 5) { + logger.info(`APRMonitor::${caller} - Processing progress`, { + processed: processedCount, + total: totalEntities, + percentComplete: currentPercent, + timeElapsedSeconds: (currentTime - lastLogTime) / 1000, + activeThreads: numThreads + }); + lastLogTime = currentTime; + lastLogPercent = currentPercent; + } + }; + + // Split and process in parallel + const chunks = this.splitIntoChunks(entities, numThreads); + const chunkResults = await Promise.all( + chunks.map((chunk, index) => + this.processEntityChunk(chunk, index, getEstimatedRewards, totalEntities, caller, updateProgress) + ) + ); + + // Merge results from all chunks + const totalRewards = new Map(); + chunkResults.forEach(chunkRewards => { + chunkRewards.forEach((value, key) => { + totalRewards.set(key, (totalRewards.get(key) || 0) + value); + }); + }); + + // Calculate APRs and final result + const totalAPRs = await this.calculateAPRs(totalRewards); + const result = CalculatePercentile(Array.from(totalAPRs.values()), PERCENTILE); + + const totalTime = (Date.now() - startTime) / 1000; + logger.info(`APRMonitor::${caller} - Completed calculation`, { + totalProcessed: processedCount, + totalEntities, + totalTimeSeconds: totalTime, + result + }); + + return result; + } catch (error) { + const totalTime = (Date.now() - startTime) / 1000; + logger.error(`APRMonitor::${caller} - Error in processing`, { + error, + totalTimeSeconds: totalTime + }); + throw error; + } + } + + private async updateAprInDb(key: string, value: number): Promise { + try { + const db = await GetJsinfoDb(); + const now = new Date(); + + await db.transaction(async (tx) => { + await tx.insert(JsinfoSchema.apr) + .values({ + key, + value, + timestamp: now + } as any) + .onConflictDoUpdate({ + target: [JsinfoSchema.apr.key], + set: { + value, + timestamp: now, + } as any + }); + }); + + logger.info(`APRMonitor::DB Update - Successfully updated ${key}`, { + value, + timestamp: now.toISOString() + }); + } catch (error) { + logger.error(`APRMonitor::DB Update - Failed to update ${key}`, { + error, + value, + timestamp: new Date().toISOString() + }); + throw error; + } + } + + public async ProcessRestakingAPR(): Promise { + const startTime = Date.now(); + try { + const apr = await this.calculateAPRForEntities( + () => RpcPeriodicEndpointCache.GetProviders(), + (provider) => RpcOnDemandEndpointCache.GetEstimatedProviderRewards(provider, BENCHMARK_AMOUNT, BENCHMARK_DENOM), + 'Restaking APR' + ); + + await this.updateAprInDb('restaking_apr_percentile', apr); + + const processingTime = (Date.now() - startTime) / 1000; + logger.info('APRMonitor::Restaking - Completed full process', { + processingTimeSeconds: processingTime, + apr + }); + } catch (error) { + logger.error('APRMonitor::Restaking - Failed processing', { + error, + processingTimeSeconds: (Date.now() - startTime) / 1000 + }); + throw error; + } + } + + public async ProcessStakingAPR(): Promise { + const startTime = Date.now(); + try { + const apr = await this.calculateAPRForEntities( + () => RpcPeriodicEndpointCache.GetAllValidators(), + (validator) => RpcOnDemandEndpointCache.GetEstimatedValidatorRewards(validator, BENCHMARK_AMOUNT, BENCHMARK_DENOM), + 'Staking APR', + 6 + ); + + await this.updateAprInDb('staking_apr_percentile', apr); + + const processingTime = (Date.now() - startTime) / 1000; + logger.info('APRMonitor::Staking - Completed full process', { + processingTimeSeconds: processingTime, + apr + }); + } catch (error) { + logger.error('APRMonitor::Staking - Failed processing', { + error, + processingTimeSeconds: (Date.now() - startTime) / 1000 + }); + throw error; + } + } + + public async ProcessAPR(): Promise { + logger.info('APRMonitor::Processing - Starting both APR calculations'); + + // Run both processes independently + Promise.all([ + this.ProcessRestakingAPR().catch(error => { + logger.error('APRMonitor::Processing - Restaking APR failed', { error }); + }), + this.ProcessStakingAPR().catch(error => { + logger.error('APRMonitor::Processing - Staking APR failed', { error }); + }) + ]).catch(error => { + logger.error('APRMonitor::Processing - Unexpected error in Promise.all', { error }); + }); + } +} + +export const APRMonitor = new APRMonitorClass(); \ No newline at end of file diff --git a/src/indexer/restrpc_agregators/ChainWalletApi.ts b/src/indexer/restrpc_agregators/ChainWalletApi.ts index fe5f526..f8f25eb 100644 --- a/src/indexer/restrpc_agregators/ChainWalletApi.ts +++ b/src/indexer/restrpc_agregators/ChainWalletApi.ts @@ -1,6 +1,6 @@ import { PostgresJsDatabase } from 'drizzle-orm/postgres-js'; import { keyValueStore } from '../../schemas/jsinfoSchema/jsinfoSchema'; -import { RpcEndpointCache } from '../classes/RpcEndpointCache'; +import { RpcPeriodicEndpointCache } from '../classes/RpcPeriodicEndpointCache'; import { logger } from '../../utils/utils'; async function saveToKeyValueStore(db: PostgresJsDatabase, key: string, value: string): Promise { @@ -15,47 +15,47 @@ async function saveToKeyValueStore(db: PostgresJsDatabase, key: string, value: s } async function saveStakersTotalCurrentUlavaAmount(db: PostgresJsDatabase): Promise { - const total = await RpcEndpointCache.GetTotalDelegatedAmount(undefined, true); + const total = await RpcPeriodicEndpointCache.GetTotalDelegatedAmount(undefined, true); await saveToKeyValueStore(db, 'stakers_total_current_ulava_amount', total.toString()); } async function saveStakersTotalMonthlyUlavaAmount(db: PostgresJsDatabase): Promise { const thirtyDaysAgo = Math.floor(Date.now() / 1000) - 30 * 24 * 60 * 60; - const total = await RpcEndpointCache.GetTotalDelegatedAmount(thirtyDaysAgo, true); + const total = await RpcPeriodicEndpointCache.GetTotalDelegatedAmount(thirtyDaysAgo, true); await saveToKeyValueStore(db, 'stakers_total_monthly_ulava_amount', total.toString()); } async function saveRestakersTotalCurrentUlavaAmount(db: PostgresJsDatabase): Promise { - const total = await RpcEndpointCache.GetTotalDelegatedAmount(); + const total = await RpcPeriodicEndpointCache.GetTotalDelegatedAmount(); await saveToKeyValueStore(db, 'restakers_total_current_ulava_amount', total.toString()); } async function saveRestakersTotalMonthlyUlavaAmount(db: PostgresJsDatabase): Promise { const thirtyDaysAgo = Math.floor(Date.now() / 1000) - 30 * 24 * 60 * 60; - const total = await RpcEndpointCache.GetTotalDelegatedAmount(thirtyDaysAgo); + const total = await RpcPeriodicEndpointCache.GetTotalDelegatedAmount(thirtyDaysAgo); await saveToKeyValueStore(db, 'restakers_total_monthly_ulava_amount', total.toString()); } // New functions using GetUniqueDelegatorCount async function saveStakersCurrentUniqueDelegators(db: PostgresJsDatabase): Promise { - const count = await RpcEndpointCache.GetUniqueDelegatorCount(undefined, true); + const count = await RpcPeriodicEndpointCache.GetUniqueDelegatorCount(undefined, true); await saveToKeyValueStore(db, 'stakers_current_unique_delegators', count.toString()); } async function saveStakersMonthlyUniqueDelegators(db: PostgresJsDatabase): Promise { const thirtyDaysAgo = Math.floor(Date.now() / 1000) - 30 * 24 * 60 * 60; - const count = await RpcEndpointCache.GetUniqueDelegatorCount(thirtyDaysAgo, true); + const count = await RpcPeriodicEndpointCache.GetUniqueDelegatorCount(thirtyDaysAgo, true); await saveToKeyValueStore(db, 'stakers_monthly_unique_delegators', count.toString()); } async function saveRestakersCurrentUniqueDelegators(db: PostgresJsDatabase): Promise { - const count = await RpcEndpointCache.GetUniqueDelegatorCount(); + const count = await RpcPeriodicEndpointCache.GetUniqueDelegatorCount(); await saveToKeyValueStore(db, 'restakers_current_unique_delegators', count.toString()); } async function saveRestakersMonthlyUniqueDelegators(db: PostgresJsDatabase): Promise { const thirtyDaysAgo = Math.floor(Date.now() / 1000) - 30 * 24 * 60 * 60; - const count = await RpcEndpointCache.GetUniqueDelegatorCount(thirtyDaysAgo); + const count = await RpcPeriodicEndpointCache.GetUniqueDelegatorCount(thirtyDaysAgo); await saveToKeyValueStore(db, 'restakers_monthly_unique_delegators', count.toString()); } diff --git a/src/indexer/restrpc_agregators/ProviderSpecMoniker.ts b/src/indexer/restrpc_agregators/ProviderSpecMoniker.ts index c965c80..107477d 100644 --- a/src/indexer/restrpc_agregators/ProviderSpecMoniker.ts +++ b/src/indexer/restrpc_agregators/ProviderSpecMoniker.ts @@ -1,5 +1,5 @@ import { IsMeaningfulText, logger } from "../../utils/utils"; -import { QueryLavaRPC } from "../rpcUtils"; +import { QueryLavaRPC } from "../utils/restRpc"; import * as JsinfoSchema from '../../schemas/jsinfoSchema/jsinfoSchema'; import { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import { sql } from 'drizzle-orm'; diff --git a/src/indexer/restrpc_agregators/RestRpcAgreagorsCaller.ts b/src/indexer/restrpc_agregators/RestRpcAgreagorsCaller.ts index 90edf7f..653fa79 100644 --- a/src/indexer/restrpc_agregators/RestRpcAgreagorsCaller.ts +++ b/src/indexer/restrpc_agregators/RestRpcAgreagorsCaller.ts @@ -1,9 +1,11 @@ +// src/indexer/restrpc_agregators/RestRpcAgreagorsCaller.ts + import { ProcessSubscriptionList } from "./SubscriptionList"; import { ProcessProviderMonikerSpecs } from "./ProviderSpecMoniker"; import { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import { logger } from "../../utils/utils"; -import { RpcEndpointCache } from "../classes/RpcEndpointCache"; import { ProcessChainWalletApi } from "./ChainWalletApi"; +import { APRMonitor } from "./AprMonitor"; // import { ProcessDualStackingDelegatorRewards } from "./DualStakingDelegatorRewards"; let isRunning = false; @@ -14,16 +16,11 @@ export async function RestRpcAgreagorsCaller(db: PostgresJsDatabase): Promise 1.0) { + return 0; + } + + // Sort values in ascending order + values.sort((a, b) => a - b); + + // Calculate the position based on the rank + const position = Math.floor((dataLen - 1) * rank); + + if (dataLen % 2 === 0) { + // Interpolate between two middle values + const lower = values[position]; + const upper = values[position + 1]; + return lower + (upper - lower) * rank; + } else { + return values[position]; + } +} diff --git a/src/indexer/rpcUtils.ts b/src/indexer/rpcUtils.ts deleted file mode 100644 index 3ffced7..0000000 --- a/src/indexer/rpcUtils.ts +++ /dev/null @@ -1,17 +0,0 @@ -import axios from 'axios'; -import { GetEnvVar, logger, BackoffRetry, TruncateError } from "../utils/utils"; - -export async function QueryLavaRPC(path: string): Promise { - const baseUrl = GetEnvVar("JSINFO_INDEXER_LAVA_REST_RPC_URL"); - const url = `${baseUrl}${path}`; - - return BackoffRetry(`QueryLavaRPC: ${path}`, async () => { - try { - const response = await axios.get(url); - return response.data; - } catch (error) { - logger.error(`Failed to fetch data from ${url}`, { error: TruncateError(error) }); - throw error; - } - }); -} diff --git a/src/indexer/indexerUtils.ts b/src/indexer/utils/indexerUtils.ts similarity index 100% rename from src/indexer/indexerUtils.ts rename to src/indexer/utils/indexerUtils.ts diff --git a/src/utils/rpc.ts b/src/indexer/utils/lavajsRpc.ts similarity index 76% rename from src/utils/rpc.ts rename to src/indexer/utils/lavajsRpc.ts index 23fb71d..587dfa8 100644 --- a/src/utils/rpc.ts +++ b/src/indexer/utils/lavajsRpc.ts @@ -1,8 +1,9 @@ +// src/utils/rpc.ts + import { StargateClient } from "@cosmjs/stargate" import { Tendermint37Client } from "@cosmjs/tendermint-rpc"; import * as lavajs from '@lavanet/lavajs'; -import axios from 'axios'; -import { logger } from "./utils"; +import { logger } from "../../utils/utils"; export interface RpcConnection { client: StargateClient; @@ -13,13 +14,6 @@ export interface RpcConnection { } export async function ConnectToRpc(rpc: string): Promise { - try { - await axios.get(rpc); - logger.info(`ConnectToRpc:: http tested successfully connected to ${rpc}`.slice(0, 1000)); - } catch (error) { - logger.error(`ConnectToRpc:: error connecting to ${rpc}: ${error}`.slice(0, 1000)); - throw error; - } logger.info(`ConnectToRpc:: connecting to ${rpc}`); const client = await StargateClient.connect(rpc); diff --git a/src/indexer/utils/restRpc.ts b/src/indexer/utils/restRpc.ts new file mode 100644 index 0000000..e98bd31 --- /dev/null +++ b/src/indexer/utils/restRpc.ts @@ -0,0 +1,37 @@ +import { GetEnvVar, logger, BackoffRetry } from "../../utils/utils"; + +export async function FetchRestData( + url: string, + options: RequestInit = {}, + skipBackoff: boolean = false, + retries: number = 8, + factor: number = 2, + minTimeout: number = 1000, + maxTimeout: number = 5000 +): Promise { + const fetchFunc = async () => { + try { + const response = await fetch(url, options); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return await response.json() as T; + } catch (error) { + logger.error(`Failed to fetch data from ${url}`, { error }); + throw error; + } + }; + + if (skipBackoff) { + return fetchFunc(); + } else { + return BackoffRetry(`FetchRestData: ${url}`, fetchFunc, retries, factor, minTimeout, maxTimeout); + } +} + +export async function QueryLavaRPC(path: string, skipBackoff: boolean = false): Promise { + const baseUrl = GetEnvVar("JSINFO_INDEXER_LAVA_REST_RPC_URL"); + const url = `${baseUrl}${path}`; + return FetchRestData(url, {}, skipBackoff); +} + diff --git a/src/query/handlers/ajax/aprHandler.ts b/src/query/handlers/ajax/aprHandler.ts new file mode 100644 index 0000000..0777580 --- /dev/null +++ b/src/query/handlers/ajax/aprHandler.ts @@ -0,0 +1,30 @@ +// src/query/handlers/aprHandler.ts + +import { FastifyRequest, FastifyReply, RouteShorthandOptions } from 'fastify'; +import { QueryCheckJsinfoReadDbInstance, QueryGetJsinfoReadDbInstance } from '../../queryDb'; +import * as JsinfoSchema from '../../../schemas/jsinfoSchema/jsinfoSchema'; + +export const APRRawHandlerOpts: RouteShorthandOptions = { + schema: { + response: { + 200: { + type: 'string' + } + } + } +} + +export async function APRRawHandler(request: FastifyRequest, reply: FastifyReply) { + await QueryCheckJsinfoReadDbInstance() + + const result = await QueryGetJsinfoReadDbInstance() + .select({ key: JsinfoSchema.apr.key, value: JsinfoSchema.apr.value }) + .from(JsinfoSchema.apr) + + const aprData: { [key: string]: number } = {} + result.forEach(row => { + aprData[row.key] = row.value + }) + + return JSON.stringify(aprData) +} diff --git a/src/query/handlers/provider/providerStakesHandler.ts b/src/query/handlers/provider/providerStakesHandler.ts index 7f3cbe0..2f404a0 100644 --- a/src/query/handlers/provider/providerStakesHandler.ts +++ b/src/query/handlers/provider/providerStakesHandler.ts @@ -9,7 +9,7 @@ import { Pagination, ParsePaginationFromString } from '../../utils/queryPaginati import { JSINFO_QUERY_DEFAULT_ITEMS_PER_PAGE, JSINFO_QUERY_TOTAL_ITEM_LIMIT_FOR_PAGINATION } from '../../queryConsts'; import { CSVEscape } from '../../utils/queryUtils'; import { GetAndValidateProviderAddressFromRequest } from '../../utils/queryRequestArgParser'; -import { ReplaceArchive } from '../../../indexer/indexerUtils'; +import { ReplaceArchive } from '../../../indexer/utils/indexerUtils'; import { RequestHandlerBase } from '../../classes/RequestHandlerBase'; import { BigIntIsZero } from '../../../utils/utils'; diff --git a/src/query/handlers/spec/specStakesHandler.ts b/src/query/handlers/spec/specStakesHandler.ts index 61bb96f..ae8c764 100644 --- a/src/query/handlers/spec/specStakesHandler.ts +++ b/src/query/handlers/spec/specStakesHandler.ts @@ -6,7 +6,7 @@ import { QueryCheckJsinfoReadDbInstance, QueryGetJsinfoReadDbInstance } from '.. import * as JsinfoSchema from '../../../schemas/jsinfoSchema/jsinfoSchema'; import * as JsinfoProviderAgrSchema from '../../../schemas/jsinfoSchema/providerRelayPaymentsAgregation'; import { sql, desc, gt, and, eq } from "drizzle-orm"; -import { ReplaceArchive } from '../../../indexer/indexerUtils'; +import { ReplaceArchive } from '../../../indexer/utils/indexerUtils'; import { GetAndValidateSpecIdFromRequest } from '../../utils/queryRequestArgParser'; import { MonikerCache } from '../../classes/MonikerCache'; import { BigIntIsZero } from '../../../utils/utils'; diff --git a/src/query/queryRoutes.ts b/src/query/queryRoutes.ts index 189dda2..e5b91c3 100644 --- a/src/query/queryRoutes.ts +++ b/src/query/queryRoutes.ts @@ -12,6 +12,9 @@ import { HealthStatusRawHandler, HealthStatusRawHandlerOpts } from './handlers/h // -- Server supply ajax -- import { SupplyRawHandlerOpts, TotalSupplyRawHandler, CirculatingSupplyRawHandler } from './handlers/ajax/supplyHandler'; +// -- Server supply ajax -- +import { APRRawHandlerOpts, APRRawHandler } from './handlers/ajax/aprHandler'; + // -- list all providers and monikers endpoint --- import { ListProvidersRawHandlerOpts, ListProvidersRawHandler } from './handlers/ajax/listProvidersHandler'; @@ -114,6 +117,9 @@ RegisterRedisBackedHandler('/supply/circulating', SupplyRawHandlerOpts, Circulat RegisterRedisBackedHandler('/lava_chain_stakers', ChainWalletApiHandlerOpts, LavaChainStakersHandler, { cache_ttl: 10 }); RegisterRedisBackedHandler('/lava_chain_restakers', ChainWalletApiHandlerOpts, LavaChainRestakersHandler, { cache_ttl: 10 }); +// -- Server APR ajax -- +RegisterRedisBackedHandler('/apr', APRRawHandlerOpts, APRRawHandler, { cache_ttl: 60 }); + // -- list all providers and monikers endpoint --- RegisterRedisBackedHandler('/listProviders', ListProvidersRawHandlerOpts, ListProvidersRawHandler, { cache_ttl: 10 * 60 }); diff --git a/src/schemas/jsinfoSchema/jsinfoSchema.ts b/src/schemas/jsinfoSchema/jsinfoSchema.ts index f7b978f..7b8f8b4 100644 --- a/src/schemas/jsinfoSchema/jsinfoSchema.ts +++ b/src/schemas/jsinfoSchema/jsinfoSchema.ts @@ -335,3 +335,18 @@ export const keyValueStore = pgTable('key_value_store', { export type KeyValueStore = typeof keyValueStore.$inferSelect; export type InsertKeyValueStore = typeof keyValueStore.$inferInsert; + +export const apr = pgTable('apr', { + key: text('key').notNull().primaryKey(), + value: real('value').notNull(), + timestamp: timestamp('timestamp', { mode: "date" }).defaultNow().notNull(), +}, (table) => { + return { + aprIdx: index("aprIdx").on( + table.key, + ) + }; +}); + +export type Apr = typeof apr.$inferSelect; +export type InsertApr = typeof apr.$inferInsert; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 1731302..05fcfeb 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -48,13 +48,20 @@ export const logger = winston.createLogger({ }); // Define the BackoffRetry function -export const BackoffRetry = async (title: string, fn: () => Promise): Promise => { +export const BackoffRetry = async ( + title: string, + fn: () => Promise, + retries: number = 8, + factor: number = 2, + minTimeout: number = 1000, + maxTimeout: number = 5000 +): Promise => { return await retry(fn, { - retries: 8, // The maximum amount of times to retry the operation - factor: 2, // The exponential factor to use - minTimeout: 1000, // The number of milliseconds before starting the first retry - maxTimeout: 5000, // The maximum number of milliseconds between two retries + retries: retries, // The maximum amount of times to retry the operation + factor: factor, // The exponential factor to use + minTimeout: minTimeout, // The number of milliseconds before starting the first retry + maxTimeout: maxTimeout, // The maximum number of milliseconds between two retries randomize: true, // Randomizes the timeouts by multiplying with a factor between 1 to 2 onRetry: (error: any, attempt: any) => { let errorMessage = `[Backoff Retry] Function: ${title}\n`; diff --git a/tsconfig.json b/tsconfig.json index 92749d5..f980d9b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,7 +28,9 @@ ], }, "include": [ - "src" + "src", + "src/**/*", + "src/**/*.json" ], "exclude": [ "node_modules"