Native Transfers
Last updated
Last updated
You can send spot assets between the L1 and the EVM. Spot assets on the L1 are called “native spot” while ones on the EVM are called “EVM spot”. The spot deployer can link their native spot asset to any ERC20 contract deployed to the EVM. However, in order for transfers between the two to work the system address (0x2222222222222222222222222222222222222222) must have the total non-system balance on the other side. For example, if you want to deploy an ERC20 contract for an existing native spot asset, the system contract should have the entirety of the EVM spot supply equal to the max native spot supply. Once this is done the spot deployer needs to send a spot deploy action to link the token to the EVM:
Once a token is linked you can convert between native and EVM spot by sending the token to the system address (0x2222222222222222222222222222222222222222). This can be done on the L1 using a spotSend action (or via the frontend) and on the EVM by using an ERC transfer. There are currently no checks that the system address has sufficient supply or that the contract is a valid ERC20, so be careful when sending funds.
EVM PURR has been deployed as 0xa9056c15938f9aff34CD497c722Ce33dB0C2fD57
HYPE is a special case as the native gas token on the EVM. HYPE is received on the EVM side of a transfer as the native gas token instead of an ERC20 token. To transfer back to the L1, HYPE can either be sent as a transaction value (only works for EOA addresses) or as wrapped HYPE (works for EOA and smart contract addresses).
Attached is a sample script for deploying an ERC20 token to the EVM and linking it to a native spot token.