EIP-5744: Latent Fungible Token

This thread is to discuss EIP-5744: Latent Fungible Token. The proposal can be found here: Add EIP-5744: Latent Fungible Tokens by mds1 · Pull Request #5744 · ethereum/EIPs · GitHub

Some small non-formatting related comments:

  • Perhaps matureBalanceOf instead of balanceOfMatured? I think that has slightly better grammar.
  • Have you looked at EIP-1132?
  • Creating and returning an entire array of MintMetadata might be gas intensive. Would a length function plus a get-at-index function be better?
  • I’m not a huge fan of calling the metadata “mints”. To borrow some terminology from established finance, maybe you could go with a VestingCliff or something similar?

So I think I completely misunderstood the point of this EIP. The idea isn’t to prevent the transfer of some EIP-20 token for X amount of time, but rather to conceptually separate “immature tokens” from “mature tokens” where “mature tokens” have some utility that the “immature tokens” don’t?

If my new understanding is correct, perhaps this is better suited as an EIP-1155 family of tokens, where the fungible tokens are tracked at id 0x0, and each mint is a 1-of-1 token with its own metadata and transfer rules?