Lute Drop

Hello Loot builders! I’ve been working on a derivative project I’d like to share for feedback from the community. It’s part Loot derivative, part social experiment, and part terrible joke.

Lute Drop consists of two claimable ERC-721 tokens, Lutes and Flutes. They have several randomized attributes, just like Loot bags:

Loot and mLoot holders may claim one Lute or Flute per LOOT/MLOOT, up to a fixed claimable supply for each token. Claims cost only gas, plus an optional tip. (“It’s one mainnet deployment, Michael, what could it cost—$10,000?”):

You may swap a Lute for a Flute (and vice versa) at any time on the swap page. (AKA “Lutiswap”). Your token will be burned in exchange for a newly minted item. The swap fee is a function of the total supply of Lutes vs. Flutes. When supply of one item is high, swapping it for the other will be cheap:

There’s a demo available on Rinkeby at (Make sure you switch Metamask to Rinkeby to check it out). You’ll need Rinkeby Loot in your wallet to do anything interesting, which you can claim here. Code is on Github here.

I’d love to hear feedback from other builders and the community on a few things:

  • Setting the initial claimable supply. I was thinking 1,000 Loot claims/10,000 mLoot claims. (Not everyone is a bard, you know.)
  • Approaches to randomness. This currently uses a pretty naive OG Loot approach, which means the next item available to swap is known and can be displayed on the Lutiswap page. Would you rather have better randomness and blind swaps? I don’t know how bot-resistant to make my joke project! Another approach here might be to mint two items on claim and send one to the Lutiswap contract, rather than burn and mint on every swap. The contract would then hold actual reserve pools of Lutes/Flutes instead of burning one and creating another.
  • Setting a swap fee function that makes this fun. The swap fee basically reduces to the ratio of total supply between the two items. Right now it’s about 0.01 ETH when Lutes and Flutes are in equal supply.
  • Gas efficiency and security.
  • Any other ideas or suggestions.

This has been a fun project so far, and I’m excited to see where it goes!


After talking to a few people and thinking over the design, I think it makes sense to take the following approach:

  • Keep the claim contract on mainnet.
  • Move tokens and Lutiswap to an L2 or sidechain, which means it will be cheaper and easier to:
    • Improve randomness and use two-step claims.
    • Create actual reserve pools for Lutiswap rather than using a burn-and-remint approach.
    • Add more attributes to items.

I haven’t had a ton of time for this over the last couple weeks, but look forward to picking back up soon! :musical_note: