Is HOT Wallet safe?
Manages multichain crypto activity across EVM networks, TON, NEAR, Solana, Stellar, and TRON.
This wallet supports swaps, bridges, transfers, staking, and asset management across multiple blockchain ecosystems. It includes features such as TON Connect compatibility, NEAR dApp connections, Jupiter swaps on Solana, Stellar delegated transactions, and USDT transfers on TRON as described by the publisher.
Who publishes itHERE Wallet inc - no other listings under this identity
HERE Wallet inc - no other listings under this identity
What this publisher told the store about itself, and the other listings that told it the same thing.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Wallet loads server-controlled chain config that sets RPC nodes and fee params
Each time it starts, the wallet downloads a config from app.hot-labs.org setting RPC nodes, bridges, swap routes, and fees.
The file is ed25519-signed; a key or domain compromise could still swap in attacker RPC nodes invisibly.
What actually happens
On startup, the wallet background service worker fetches a configuration file from the vendor's server.
The fetch runs automatically on every browser start or extension reload, with no user prompt.
The downloaded configuration replaces all RPC nodes, bridge routes, swap routers, and fee multipliers used by the wallet.
If the signature check passes, the new config is stored locally and takes effect immediately for all subsequent transactions.
The code that does this
Remote config fetch and signature verification
async loadChainsFromServer() { // Load current cached config, prefer bundled default if newer let cached = await this.storage.get("chains", BUNDLED_CHAINS); if (BUNDLED_CHAINS.version > cached.version) cached = BUNDLED_CHAINS; // Fetch with 3-second timeout let finished = false; const controller = new AbortController(); setTimeout(() => !finished && controller.abort(), 3000); const response = await fetch("https://app.hot-labs.org/chains.json", { signal: controller.signal }); finished = true; const newConfig = await response.json(); if (cached.version >= newConfig.version) throw "No changes"; // Verify ed25519 signature over the JSON body (signature field excluded) const hash = crypto.createHash("sha256") .update(Buffer.from(JSON.stringify({ ...newConfig, signature: undefined }), "utf8")) .digest(); const PUBLIC_KEY = "ed25519:9h3AiXGHzNjatxqYQ1QPsJDUkexbd3LypgadaZKvhg4"; if (!NearKeyPair.fromString(PUBLIC_KEY).verify(hash, Buffer.from(newConfig.signature, "hex"))) { throw "Not verified"; } // Replace all chain configuration with the new remote config await this.storage.set("chains", newConfig);}Configuration fields controlled by the remote file
- RPC endpointshttps://relmn.aurora.dev, https://archival-rpc.mainnet.near.org
The blockchain node URLs your wallet connects to when broadcasting transactions and querying balances.
- Bridge routingbridge: { near_eth: "0x23ddd3e3692d1861ed57ede224608875809e127f", ... }
Which cross-chain bridge contracts and relayers are used when you move funds between blockchains.
- Swap router addressesswap_router: { 1: "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad" }
The smart-contract addresses used when you swap tokens inside the wallet.
- Fee multipliersextraFee: { 1: 0.003, 56: 0.003 }
The extra-fee percentages applied on top of network gas for wallet-assisted transactions.
- Config version290
A monotonically increasing version number; the wallet replaces its stored config whenever the server version is higher.
Remote configuration source
- app.hot-labs.org
HOT Labs (extension developer). Serves the signed chains.json configuration file that controls all RPC nodes, bridge routes, and fee parameters.
Observation
The ed25519 signature verification is a meaningful control: a network-level attacker who cannot obtain the private key cannot inject an attacker-controlled config through a MitM. The residual risk is a compromise of the HOT Labs signing key or the app.hot-labs.org infrastructure, which would allow reconfiguration of every installed wallet instance simultaneously without notifying the user.
Where it sends data
Destinations our analysis observed HOT Wallet contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.
- Jupiter
HOT Wallet sends data to Jupiter. Named as a recipient by 1 other extensions we have analyzed.
- Burrow
HOT Wallet sends data to Burrow. Named as a recipient in this extension's own analysis.
- LayerZero
HOT Wallet sends data to LayerZero. Named as a recipient in this extension's own analysis.
- RHEA Finance
HOT Wallet sends data to RHEA Finance. Named as a recipient in this extension's own analysis.