-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Summary
The current ERC20 Asset Precompile on Polkadot Hub Revive implements only a minimal ERC-20 subset and is not functionally equivalent to XC20 implementations used in production on Astar EVM and Moonbeam.
While sufficient for low-level token transfers and Uniswap V2 core logic, it cannot support real DeFi protocols (lending, modern DEX frontends, analytics, subgraphs) due to missing metadata and standard ERC-20 events.
This creates critical friction for Ethereum-native builders migrating to Revive.
Context
Follow-up to issue polkadot-developers/polkadot-docs#1452 (comment).
Parity documentation states:
“Pallet Asset Precompiles (like XC-20) exist”
However, the current implementation diverges significantly from XC20 as implemented and used in production on Astar and Moonbeam, where XC20 refers to full ERC-20-compatible interfaces exposing asset metadata and events to EVM.
Technical Clarification: Why This Is Not XC20
In Astar/Moonbeam, XC20 assets:
Expose name(), symbol(), decimals() via EVM
Emit standard Transfer and Approval events
Are indexable by The Graph and analytics tools
Are directly usable by:
- DEX frontends
- Lending protocols (Compound / Aave forks)
- Aggregators
The Revive ERC20 precompile:
Implements only:
- balanceOf
- transfer
- transferFrom
- approve
- allowance
- totalSupply
Does not implement ERC-20 metadata (name, symbol, decimals)
Does not emit standard ERC-20 events
Stores metadata only in Substrate storage, inaccessible to EVM
Reproduction
Calling metadata functions on the ERC20 precompile:
IERC20(token).name();
IERC20(token).symbol();
IERC20(token).decimals();
Results in:
Panic: OUT_OF_MEMORY (0x41)
This behavior is confirmed and documented.
Impact
- Lending Protocols (Compound / Aave forks)
Cannot compute exchange rates without decimals()
Cannot create cTokens with proper metadata
Risk engines and liquidations fail
- DEX Frontends
Standard UIs crash when querying metadata
Wallet integrations break
Poor UX for users and builders
- Indexing & Analytics
Missing standard ERC-20 events
Subgraphs cannot index assets
TVL and volume analytics impossible
- Ecosystem Fragmentation
Each protocol forced to deploy ad-hoc wrappers
No canonical asset representation
Liquidity fragmentation risk
Comparison
Network Asset Interface
Astar EVM XC20 full ERC-20 contracts
Moonbeam XC20 + WGLMR
Polkadot Hub Revive ERC-20 subset precompile
Proposed Solution
(Preferred, Proven in Astar/Moonbeam)
Deploy canonical XC20-style ERC-20 wrapper contracts for major assets:
USDT
USDC
Other high-liquidity Asset Hub tokens
Characteristics:
- Full ERC-20 interface
- Metadata & events
- Governed / system-owned
- Single canonical address per asset
Why This Matters
Without full ERC-20 compatibility:
Lending protocols cannot launch
Frontends break by default
Ethereum-native builders are blocked
Adoption of Revive as a DeFi hub is slowed
Providing XC20-equivalent infrastructure would immediately unlock:
DEXes
Lending
Aggregators
Indexing
A smooth Ethereum → Polkadot migration path
Closing
This is not a theoretical concern: XC20-style infrastructure is already proven in production on Astar and Moonbeam.
Astar doc reference links:
- https://docs.astar.network/docs/learn/interoperability/xcm/building-with-xcm/create-xc20-assets/
- https://docs.astar.network/docs/learn/interoperability/xcm/building-with-xcm/send-xc20-evm
Aligning Revive with this model would significantly accelerate real DeFi adoption on Polkadot Hub.
Submitted by:
Dennis Solar Fernandez
Founder SoneVibe Finance
@Real_Dennis_S_F
Active EVM DeFi builder on Polkadot Hub