Skip to main content
Portal’s React Native SDK provides EVM Account Type management through the portal.evmAccountType API. This enables checking wallet account types and upgrading EOA wallets to EIP-7702 on supported EVM chains.

Overview

The EVM Account Type functionality allows you to:
  • Check wallet status to determine the current account type
  • Upgrade to EIP-7702 to enable ejecting the Portal wallet’s EOA private key

Prerequisites

Before using EVM Account Type operations, ensure you have:

Checking Wallet Status

Use getStatus to check the current account type of your wallet. The response includes both the account status and metadata about the wallet addresses.
const handleGetStatus = async () => {
  try {
    const { data, metadata } = await portal.evmAccountType.getStatus({
      chain: 'eip155:10143', // Monad Testnet
    })

    if (data.status === 'EIP_155_EOA') {
      console.log('✅ Can upgrade to EIP-7702')
    } else if (data.status === 'EIP_7702_EOA') {
      console.log('ℹ️ Already upgraded')
    } else {
      console.log('❌ Cannot upgrade')
    }
  } catch (e) {
    console.error('Failed to get account status', e)
  }
}
Response (GetStatusResponse):
  • data.status: One of EIP_155_EOA, SMART_CONTRACT, or EIP_7702_EOA
  • metadata.eoaAddress: The EOA address associated with the wallet
  • metadata.smartContractAddress: Your smart contract wallet address (optional, may be null/undefined for EOA-only accounts)
  • metadata.chainId: The chain identifier

Upgrading to EIP-7702

Use upgradeTo7702 to upgrade an EOA wallet to EIP-7702. This method automatically handles the entire upgrade process, including gas subsidization, and returns the transaction hash directly.
const handleUpgradeTo7702 = async () => {
  try {
    const txHash = await portal.evmAccountType.upgradeTo7702({
      chain: 'eip155:10143', // Monad Testnet
    })
    console.log('Upgrade submitted! TX hash:', txHash)

    const status = await portal.evmAccountType.getStatus({ chain: 'eip155:10143' })
    console.log('Final Status:', status.data.status)

    if (status.data.status === 'EIP_7702_EOA') {
      console.log('Successfully upgraded to EIP-7702!')
    }
  } catch (e) {
    console.error('Upgrade failed', e)
  }
}

What happens during the upgrade:
  1. Chain validation: Verifies the chain uses the eip155 namespace
  2. Status check: Confirms the wallet is currently an EIP_155_EOA
  3. Authorization building: Creates the EIP-7702 authorization list
  4. Signature: Signs the authorization hash with your wallet
  5. Transaction submission: Submits the subsidized upgrade transaction (gas is paid by Portal)
  6. Transaction hash: Returns the on-chain transaction hash
Response: The method returns a string containing the transaction hash of the submitted upgrade transaction.
The upgrade process is irreversible per wallet. Once upgraded to EIP-7702, the wallet cannot be reverted to a standard EOA on that chain.

Supported Networks

EVM Account Type upgrades are currently available on:
  • Monad Testnet (eip155:10143)
For a complete list of supported chains, reach out to the Portal team.

Next Steps