Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Guide: Native vs Wrapped Tokens

Native assets are chain gas assets such as ETH or SOL. Wrapped tokens are token contracts or token mints that represent those native assets, such as WETH or WSOL.

EVM

import { EvmNative, WNATIVE, WNATIVE_ADDRESS, isEvmWNativeSupported } from 'sushi/evm'
 
const eth = EvmNative.fromChainId(1)
const weth = eth.wrap()
 
WNATIVE_ADDRESS[1]
WNATIVE[1]
isEvmWNativeSupported(1)

Use EvmNative to represent native gas assets. Use wrap() or WNATIVE when a token representation is required.

SVM

import { SvmNative, SVM_WNATIVE, SVM_WNATIVE_ADDRESS, isSvmWNativeSupported } from 'sushi/svm'
 
const sol = new SvmNative({
  chainId: -5,
  symbol: 'SOL',
  name: 'Solana',
  decimals: 9,
})
 
const wsol = sol.wrap()
 
SVM_WNATIVE_ADDRESS[-5]
SVM_WNATIVE[-5]
isSvmWNativeSupported(-5)

Use the native representation when the API or function expects the chain’s native asset. Use the wrapped token address when interacting with token contracts, token mints, or pool math that requires a token.