Exploring the intersection between TypeScript, Ethereum, GraphQL, and other exciting technologies.

The difference between the MATIC currency and the MATIC token on Polygon

26th Mar 2022

MATIC can be an ERC-20 on Mainnet Ethereum in addition to being the main currency on Polygon. I get that.

But there is also an ERC-20 MATIC on Polygon with the address 0x000..1010. Why?

Is it an extra MATIC different from the normal MATIC? That would be confusing... So I started investigating:

The three entities we have are:

  • The native MATIC currency on Polygon.

The MATIC Polygon token seems a bit special. The address does not look like a normal address.

The big question here is really if the MATIC native currency and MATIC Token is the same thing. Let’s focus on those two.

Checking my balance on a polygon wallet I have, I get the following balances:

  • MATIC in my MetaMask wallet: 25.1696
  • MATIC (ERC-20) when running balanceOf: 25169633750988639520

These are actually the same values (when rounding and moving decimal places). This has to mean that the MATIC ERC-20 is mirroring the balance of the native currency. But why?

Maybe Polygon doesn’t have a native currency?

The more I start to dig into this, the more I start to think that maybe Polygon doesn’t have their own native currency like ETH on Mainnet. It’ not its own chain after all. It’s just a L2.

I have to admin, I don’t really know how L2s and sidechains work.

Me when someone asks me to explain how L2s or sidechains work.

Wait, is this Wrapped MATIC?

I posted a tweet with my new worldview, and someone told me it could be a wrapped version of MATIC.

But it turns out that, even if there actually is a wrapped MATIC, this MATIC I am talking about has nothing to do with the wrapped version.

A good article explaining wrapped MATIC: https://quickswap-layer2.medium.com/i-know-what-matic-is-but-what-tf-is-wmatic-ba7b3220e36f


After my extensive research and soul searching, I am 80% sure it works somehow like this:

MATIC is always an ERC20 token, there is no special native currency on Polygon like ETH on Mainnet.

It’s always ERC-20. However, on Polygon, MATIC can act like a native currency or an ERC-20.

I certainly feel a bit better now. I hope you learned something too.

As always, please let me know if I’m wrong :)