Exploring the intersection between TypeScript, Ethereum, 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 :)