Profitez de tous les articles et programmes en illimité en vous inscrivant gratuitement sur Meeting Mouvement 🚀

BlogNon classéERC-20 and SPL Tokens: Managing Custom Tokens on Ethereum and Solana with a Single Wallet

ERC-20 and SPL Tokens: Managing Custom Tokens on Ethereum and Solana with a Single Wallet

A trader or NFT collector working across Ethereum and Solana faces a fragmented landscape. Each blockchain has its own token standard—ERC-20 for Ethereum, SPL for Solana—and moving between them typically requires multiple applications, separate recovery phrases, and manual bookkeeping across incompatible interfaces. The result is friction: tracking positions becomes difficult, swapping between ecosystems demands detours through centralized exchanges, and the cognitive load of managing two distinct wallets increases the likelihood of misplacing a token, sending funds to the wrong network, or losing track of holdings altogether.

A multi-chain wallet that natively supports both ERC-20 and SPL tokens can streamline this workflow dramatically. Instead of fragmenting assets across separate applications, a single browser extension can display Ethereum and Solana balances side by side, allow instant token swaps without leaving the interface, and manage NFTs across both chains through a unified dashboard. The technical challenge is not whether such consolidation is possible—it is whether the implementation maintains security, accuracy, and usability without introducing new risks through hidden complexity.

A browser extension wallet interface displaying ERC-20 tokens on Ethereum and SPL tokens on Solana with unified token management and swap functionality

Understanding ERC-20 and SPL token standards

ERC-20 is the technical specification that defines how tokens behave on Ethereum. Every ERC-20 token shares a common interface: a contract that tracks balances, allows transfers between addresses, and broadcasts events when transactions occur. This standardization is powerful because it means wallets, exchanges, and decentralized applications can treat an ERC-20 token predictably without custom code for each one. A wallet can display any ERC-20 token if it knows the contract address, can query the blockchain for balances, and can construct valid transfer transactions.

SPL tokens work similarly on Solana but follow a different architecture. Solana uses a program-based model where tokens are created and managed through a standard program (token program). Each SPL token is defined by a mint account, and individual balances are held in associated token accounts. The wallet must interact with these accounts correctly, deriving the proper address and maintaining consistency with Solana’s account model. Unlike Ethereum’s account-based ledger where a single address can hold multiple ERC-20 balances, Solana requires a separate token account for each user-token pair.

The practical implication is that managing these token types requires more than a simple list. An ERC-20 wallet needs to monitor contract events and query token balances through the Ethereum RPC. An SPL wallet must track associated token accounts and verify that they exist before sending funds. A multi-chain wallet must perform both operations reliably while keeping them conceptually separate. Mistakes at this level—such as sending an SPL token to an Ethereum address or attempting to transfer a token when no associated account exists—produce irreversible losses.

Wrapper tokens add another layer of complexity. A wrapped ERC-20 token like wSOL (wrapped Solana) is an ERC-20 contract that represents Solana on Ethereum, but it is not native SOL. Similarly, wrapped Ethereum on Solana (weETH or wETH) is an SPL token that represents ETH but is not stored in an Ethereum wallet. These tokens are valuable for cross-chain liquidity and trading but require that users understand which chain they are on and what they actually hold. A token with a familiar name is not a guarantee of its actual nature.

Setting up a multi-chain wallet and adding custom tokens

Adding a token to a multi-chain wallet begins with understanding what you are adding. Most wallets come with a pre-populated list of common tokens—Bitcoin, Ethereum, Solana, and well-known stablecoins. For ERC-20 tokens beyond this list, you need the contract address. This address is a unique identifier on the Ethereum blockchain and is different from your wallet address. Copying the contract address from a reputable source—such as the official project website, Etherscan (Ethereum’s block explorer), or a trusted community—is essential because a misspelled or fraudulent address could lead you to import a scam token instead.

Adding an ERC-20 token typically requires pasting the contract address into a « add token » or « custom token » field in your wallet. The wallet then queries Ethereum to retrieve the token’s name, symbol, and decimal places. Once imported, the wallet will display your balance if you hold any of that token. The same process applies to SPL tokens on Solana, except that you use the mint address—the address of the Solana program that manages that particular token—rather than an Ethereum-style contract address.

The critical moment is verification. After importing a token, confirm that the name, symbol, and decimal count match what you expect. Scammers sometimes deploy fake tokens with names nearly identical to legitimate ones, relying on users to miss subtle differences. If you are unsure, search the official project’s Discord or documentation for the correct address, then verify it matches what your wallet now displays. For high-value holdings, import the token on a test wallet first, make a small transfer, and confirm it arrives correctly before trusting the setup with your main holdings.

Once imported, tokens begin tracking automatically. Your wallet will show your current balance, fetch live price data if available, and let you construct transfer or swap transactions. Most modern wallets, including browser extensions, cache token metadata so that the import happens instantly on future loads. This caching is convenient but creates a small risk: if the wallet’s cached data becomes stale or incorrect, you might see outdated information. For mission-critical checks—especially before large transfers—verify the balance by querying the blockchain directly through a block explorer or a separate application.

Tracking positions across Ethereum and Solana

A portfolio that spans two blockchains creates a tracking problem. If you hold a mix of ERC-20 tokens on Ethereum and SPL tokens on Solana, a traditional single-blockchain wallet forces you to open multiple applications or manually note balances in a spreadsheet. A unified multi-chain interface can display everything in one view, but only if it accurately represents which tokens live on which chain and what you actually own.

The simplest approach is to organize positions by blockchain first. Your Ethereum account will show ETH, USDC (ERC-20), and any ERC-20 tokens you hold. Your Solana account will show SOL, USDC (SPL), and any SPL tokens you hold. Note that USDC on Ethereum and USDC on Solana are different tokens with different contract/mint addresses, even though they represent the same stablecoin. They cannot be used interchangeably; you cannot send USDC from your Ethereum address directly to your Solana address because they live on separate blockchains. This distinction is the source of many irreversible mistakes.

When tracking the total value of your portfolio, most wallets will aggregate holdings and display a combined net worth. This is helpful for a quick overview but can mask important details. If you hold $10,000 in USDC, it matters whether that is $5,000 on Ethereum (low transaction fees, many DeFi opportunities) and $5,000 on Solana (different fee structure, different DeFi ecosystem), or concentrated entirely on one chain. Your wallet’s interface should make this breakdown visible without forcing you to click through multiple screens. If it does not, you have created the exact fragmentation that multi-chain management was supposed to solve.

Price feeds also matter. If your wallet displays token prices, those feeds could be sourced from centralized exchanges, decentralized price oracles, or aggregators. Prices can diverge between chains due to liquidity differences, arbitrage delays, or exchange issues. A token showing $1.00 on Ethereum might reflect a different market than one showing $0.98 on Solana. Using a wallet’s price display for trading or position-sizing decisions is reasonable for well-established tokens but less reliable for illiquid or newly launched tokens. Before acting on price information from your wallet, cross-check with a second source such as CoinGecko, block explorers, or on-chain price feeds.

Swapping ERC-20 and SPL tokens without bridging

Swapping tokens on the same blockchain is straightforward: your wallet constructs a transaction, routes it through a decentralized exchange or market maker, and you receive the output. Swapping ERC-20 tokens on Ethereum or SPL tokens on Solana follows this pattern. The token swap happens instantly (or within that blockchain’s confirmation time), and the process is conceptually simple: you send token A and receive token B on the same chain.

Swapping between chains—converting an ERC-20 token to an SPL token, for example—requires either a bridge or a cross-chain swap service. Bridges lock your tokens on one chain and mint a representation on another. This can work but introduces additional risk: if the bridge is compromised, your funds may be lost or stuck. Cross-chain swap services, by contrast, use liquidity pools on both sides to execute the exchange without creating a custodial bridge token. The best multi-chain wallet integrates swap functionality that routes through proven liquidity sources and displays the fees, conversion rates, and execution details clearly before you approve.

Within a single blockchain, swaps are atomic: either the exchange completes or it fails and your funds return. Cross-chain swaps are not atomic in the same way; they involve multiple steps and intermediaries. A well-designed interface will show you the worst-case slippage, estimate the time to settle, explain which liquidity sources will be used, and provide a transaction hash or reference so you can track progress if something goes wrong. If the swap fails partway through, you need a clear way to recover or retry. A wallet that hides these details behind a simple « swap » button is prioritizing convenience over transparency, which becomes dangerous when real money is involved.

Before using cross-chain swaps, test with a small amount and verify the entire process works as expected. Confirm that you receive the correct token on the correct chain and that balances update as shown. Only then should you attempt larger swaps with your main holdings. The fact that a wallet is non-custodial and open-source is no guarantee that every edge case has been caught or every bridge is equally safe. Your own verification remains the final check.

NFT management across Ethereum and Solana

NFTs on Ethereum are typically ERC-721 or ERC-1155 tokens, while Solana NFTs follow the Metaplex standard. Both represent ownership of unique digital assets, but they are stored, transferred, and displayed differently. An Ethereum wallet needs to query your address for all ERC-721/ERC-1155 events and construct proper transfer transactions. A Solana wallet must interact with the Metaplex token metadata program and associated token accounts.

A browser extension wallet that manages NFTs on both chains can display your collection in a gallery view, track floor prices, and let you list or transfer NFTs directly. The critical feature is accuracy: your wallet should show every NFT you own on each chain, correctly display images or metadata, and prevent you from accidentally sending an NFT to the wrong address or blockchain. Because NFT transactions are often higher value than individual token transfers, the interface should be especially clear and should require explicit confirmation before any transfer is broadcast.

Metadata caching introduces a subtle risk here as well. An NFT’s image, description, and attributes are often stored off-chain (on IPFS or a centralized server), and your wallet caches this information. If the metadata is deleted or changed after you acquire the NFT, your wallet might display outdated information. This does not affect ownership of the actual token, but it can create confusion. Additionally, a wallet that displays NFTs should allow you to verify the contract address and token ID on a block explorer if you want to confirm its authenticity independently.

One advantage of a multi-chain wallet is that you can manage your Ethereum and Solana NFTs without switching applications. The trade-off is that you must remain aware of which chain each NFT actually lives on. Attempting to transfer an Ethereum NFT using Solana gas, or vice versa, produces an error or loss depending on the interface design. A well-designed wallet makes the chain context obvious, displays gas costs in the native currency of that chain, and prevents obvious mistakes through interface warnings or validation.

Security and key management in a browser extension

A browser extension wallet stores your private keys on your device, not on a remote server. This is the non-custodial model: you control your funds directly through your seed phrase and private keys, and no service can freeze or seize your assets. However, a browser extension lives in an environment where other extensions, websites, and the browser itself could potentially interfere. The security model depends on several assumptions: that your device is not compromised, that your seed phrase is stored securely offline, that you do not install malicious extensions, and that the wallet extension itself is legitimate and regularly updated.

When you install Cake Labs Cake Wallet or any non-custodial wallet extension, verify the source carefully. Install only from the official Chrome Web Store, Firefox Add-ons, or equivalent official extension marketplace. Check the developer name, user reviews, and number of installs. A counterfeit extension with a similar name could steal your seed phrase immediately upon setup. After installation, the wallet should give you two options: create a new wallet (generating a new seed phrase) or import an existing wallet (entering your recovery phrase). The import process is especially sensitive: never paste your recovery phrase into a website, email, or untrusted application.

The wallet should store your seed phrase encrypted locally and never transmit it to external servers. Password protection and PIN protection add an additional layer by encrypting the seed phrase with a password or PIN that you set. Even if someone gains access to your device, they cannot use your wallet without this additional secret. For a browser extension, local encryption is the primary defense, but it is still possible for malware to intercept your password or observe your signing activity. If you hold significant value, consider using a hardware wallet (such as a Ledger) in conjunction with your extension wallet, allowing the extension to construct transactions while the hardware device performs the final signing step.

Backup of your seed phrase requires special care. Write it down on physical paper (not in a digital file, cloud drive, or photo), store the paper in a secure location, and do not share it with anyone. Some users split the seed phrase across multiple physical locations or use Shamir secret sharing schemes to reduce the risk that a single theft or fire destroys the backup. The recovery process is where most security failures occur: if you must restore from your seed phrase, do so on a clean device and verify that the restored wallet shows your expected balances before deleting the temporary installation.

Avoiding common mistakes with multi-chain token management

The most frequent error is sending a token to the wrong blockchain. You have USDC on Ethereum and want to move it to Solana, but you accidentally send it to your Solana address using an Ethereum transaction. The Ethereum network processes the transaction normally, the USDC leaves your Ethereum account, but because Solana does not recognize ERC-20 contracts, the USDC is lost permanently. No amount of technical skill or support can recover it. The prevention is simple but must become automatic: before every transaction, verify the source blockchain, destination address, destination blockchain, token type, and amount. Read it aloud if necessary. Do not trust the wallet’s interface alone; cross-check the address on a block explorer.

A second common mistake is importing a token by contract address and not verifying that the address is correct. A difference of one character can point to a completely different token, often a scam. The scam token appears in your wallet with a name almost identical to the real token, and you might accidentally hold it, thinking you have the legitimate version. Before acting on a token you have imported, verify the contract address matches an official source, check that other users hold it (visible on the block explorer), and confirm it has real transaction volume. If something feels off, it probably is.

A third mistake is confusing network fees. Ethereum transaction fees can range from a few dollars to hundreds of dollars depending on network congestion. Solana fees are typically under $0.01. If you execute a large swap on Ethereum without checking the current gas price, you might pay far more than expected. A wallet should display the estimated fee before you confirm the transaction and allow you to adjust it (increase or decrease, though decreasing risks timeout). Never approve a transaction without understanding its total cost.

A fourth mistake is assuming that price discrepancies across chains represent arbitrage opportunities. If a token is trading at $1.10 on Ethereum and $0.95 on Solana, the gap exists for reasons: liquidity depth, bridge costs, or price feed delays. Attempting to exploit it by buying on Solana and selling on Ethereum often fails because the price converges faster than you can execute, or bridge costs consume the difference. Use price discrepancies as data points, not trading signals, unless you have thought carefully about execution cost and timing.

The practical workflow for active traders and collectors

An efficient workflow begins with knowing what you own. Log into your wallet, review all tokens and NFTs on both Ethereum and Solana, and note their current values and positions. For tokens you hold long-term, set up price alerts through your wallet or an external service so you know when significant moves occur. For tokens you are actively trading, track them in a spreadsheet alongside entry price, quantity, and target exit levels. This discipline keeps you from making emotional decisions or losing track of a position entirely.

When you decide to execute a swap, do it methodically. Open your wallet, locate the specific token and blockchain, note the current price and available liquidity (if shown), and construct the transaction. Set slippage tolerance appropriately—too high and you accept unfavorable fills, too low and the transaction fails to execute. Review the output amount, review the fee, and confirm the destination address matches your intent. After confirmation, your wallet broadcasts the transaction. On Ethereum, wait for confirmation (usually 12-60 seconds depending on gas price). On Solana, confirmation is typically instant.

If a swap fails, do not immediately retry. Check your wallet’s transaction history to see what happened. Did the network reject it? Did slippage cause a failed execution? Is your balance the same, meaning the transaction never went through? Once you understand why it failed, adjust your approach and retry. If the transaction succeeded but the received amount is lower than expected, check whether the price moved significantly, whether slippage was higher than your tolerance, or whether you misread the interface. Use failures as learning moments, not as signs that you should give up.

For NFT management, maintain an awareness of floor prices, trading volume, and whether your holdings remain relevant to your collection strategy. If you decide to sell, list at a price you find acceptable, and monitor activity. When collectors make offers, review them carefully and verify the offer details match what you expect. After a sale, verify that the funds arrive in your wallet before deleting the NFT image from local backups or updating your collection spreadsheet.

Future developments in multi-chain wallet functionality

The landscape of blockchain networks and token standards will continue to evolve. Layer 2 solutions such as Arbitrum and Optimism on Ethereum, Polygon, and newer chains like zkSync are gaining adoption, and wallets will need to support more network options and more bridge routes. Token standards themselves may expand: proposals for better privacy, more efficient transfers, or improved interoperability could require wallet updates to fully support.

The biggest opportunity is improving swap execution and visibility. Current best-in-class wallets show quoted rates, slippage, and fees, but many users still do not understand what each component means or how it affects them. Wallets that provide better education—showing historical slippage, comparing liquidity depth across sources, or explaining why a particular route was chosen—would reduce the sense that swaps are a « black box. » Automated portfolio rebalancing, where the wallet suggests or executes periodic swaps to maintain a target allocation, could also become more sophisticated.

Multi-signature support and better recovery options are also likely. Many users continue to lose recovery phrases or have them stolen. Wallets that support multi-signature schemes (requiring approval from multiple devices or a timelock before transactions execute) would reduce both theft and accidental loss, though they would also add complexity. Eventually, the distinction between a single-chain wallet and a multi-chain wallet may disappear entirely as most applications simply support « all major networks » by default, with the user choosing which chains to interact with rather than installing separate applications for each.

Frequently asked questions

What is the difference between adding an ERC-20 token and an SPL token to my wallet?

ERC-20 tokens live on Ethereum and are identified by a contract address. SPL tokens live on Solana and are identified by a mint address. The process is similar—you paste the address into a custom token field—but the underlying networks are different. An ERC-20 token cannot be used on Solana and vice versa. Always verify which blockchain a token lives on before importing or transferring.

Can I send an ERC-20 token directly to my Solana wallet address?

No. If you send an ERC-20 token to a Solana address, it will be processed by the Ethereum network and will be lost permanently because Solana does not recognize ERC-20 contracts. Always verify the destination blockchain matches the token’s blockchain before confirming a transfer. Double-check the address and network one more time before hitting send.

How do I know if a token I imported is legitimate or a scam?

Verify the contract or mint address against the official project website or documentation. Check the token on a block explorer to confirm it has real trading volume and legitimate transactions. Be suspicious of tokens with names almost identical to popular ones. When in doubt, start with a small test transfer to confirm you receive the correct asset before transferring your main holding. If something feels off about a token, do not use it.

Newsletter

Le chemin est semé de distraction. Chaque semaine je vous envoie un email court dans lequel je vous partage une pensée, une histoire, une réflexion personnelle … pour vous donner de l’élan, de l’inspiration et vous aider à garder le cap vers vos objectifs !

Close