RSVP Event Approval

Tickets to events and conferences are memberships! The Unlock Protocol is used to create all kinds of memberships, so we built a simple-to-use ticketing and event application to showcase how the protocol can be used!

Our event app has now been used for all kinds of events, from large conferences (EthCC , Dappcon, EthMexico, EthTaipei…) to small side gatherings. Organizers can use it for paid events, or free events.

One of the features that many organizers have asked us to add is the ability to “approve” attendees, rather than just let everyone attend. Today we’re excited to announce that this is now a feature that we fully support!

Here is a quick flow. When creating your event, please make sure you toggle the “attendee screening” option.


Under the hood you will deploy a new NFT membership contract, for which NFTs tickets can only be distributed by the event organizer. (Technically, there is a supply of “0” for “self-serve” minting.) This means that you alone can create and “airdrop” NFT tickets to the attendees your approve — attendees are not able to mint their own tickets without your approval.

When going to your event’s page, attendees will see the following message:


(You can also customize the fields displayed here, but that’s for another post!)

At that point, attendees can “apply” by submitting their email address, full name and, if they want, their wallet addresses. When they RSVP, they receive an email to confirm that they are on the list and will hear back from the organizers if they are approved.

As an organizer, you can then view the list of attendees, as well as the list of people who have applied to attend.


For each of these, you can approve or deny them. When you approve an attendee, they will receive an email with a QR code ticket attached and the event’s details.


Denied users can still be approved later as well.


We’re excited to build the “membership” graph through events and tickets!

Discount Codes

A little over a year ago, we introduced a Hook to add discount codes to Unlock membership contracts. Today we’re proud to introduce the next iteration of this Hook, as well as a brand new UI for both managers and members!

First, let’s dive a bit into one of my favorite features of the PublicLock contract (the Unlock Protocol membership smart contract): Hooks. Generally, code hooks are like triggers or signals in a computer program that allow different parts of the program to communicate and work together.

Smart contracts are onchain programs, and the membership contract includes several hooks that can be triggered. The PublicLock contract has a hook called onKeyPurchaseHook that is triggered when the purchase function is called. This hook can be used to alter the behavior of the membership contract when a membership key is purchased. For example, the hook can do things like dynamically change the price that a user needs to pay to purchase an onchain membership as well as a wide variety of other related checkout behaviors.

The Unlock Labs team has created several hooks, include a Discount Code Hook. A Lock Manager can use this hook add discount codes (like PROMO30 or FRIEND&FAM to their contract) and set a percentage-off associated with each discount code. These discount percentages can range from 0% to 100% (and anything in between). A Lock Manager can also set a “cap”, or a maximum number of uses for a particular discount code, like 10 or 300, after which the discount will no longer be applied!

Configuring a discount code

A new section has been added to the Advanced > Hooks section of the Unlock Dashboard for discount codes. To add a discount code for a particular lock, select Discount code from the dropdown in Advanced > Hooks, enter the discount code you want to add (e.g. HAPPYBIRD), the corresponding percentage discount that customers will receive when using that discount code, and maximum number of uses. Then click Add.

Manage discount codes

The Discount Code hook configuration interface

The smart contract will update to recognize the discount that will be applied when a customer enters the new discount code during checkout.

How the discount code hook works at checkout

At checkout time, the Unlock checkout will automatically identify that a membership contract is using the discount code hook, and will show an additional screen as part of the checkout to let soon-to-be members enter a promo code. The checkout UI will also instantly show a visual confirmation of the discount applicable!

Screenshot 2024-01-15 at 5.16.20 PM.png

Checkout discount codes

Wrapping up

The new Discount Code Hook for Unlock membership contracts offers an new way for Lock Managers to provide discounts to their users. By configuring discount codes with specific percentages and maximum usage limits, Lock Managers can customize the membership experience and incentivize new users to join. With the updated UI for both managers and members, the checkout process becomes seamless and visually confirms the applicable discount.

Unlock continues to enhance the membership contract with powerful hooks like the Discount Code Hook, making it easier than ever to manage and promote memberships and subscriptions onchain!

Minting Memberships with Magic Eden

Magic Eden is a trailblazing NFT marketplace, supporting multiple blockchains including Ethereum Mainnet, Polygon, and others. A key part of the Magic Eden ecosystem is the Magic Eden Launchpad, a dedicated platform for projects looking to vault into the spotlight during their launch phase. Magic Eden has been instrumental in helping projects gain traction and audience engagement, and now it’s set to transform how membership programs are launched and managed.

Across the Unlock Protocol Locksmith ecosystem, we’ve had an increasing number of teams requesting guidance on how to launch their Unlock-powered membership programs via Magic Eden’s Launchpad. Based on this demand, Unlock Protocol and Magic Eden have worked together to seamlessly integrate Unlock Protocol smart contracts into the Magic Eden Launchpad and marketplace, paving the way for more projects to bring their memberships and subscriptions to market through the Magic Eden marketplace. Projects such as the CyberKitty Playhouse have launched using this approach.

A key aspect of this integration revolves around the unique purchase() function in the Unlock smart contracts. This function, detailed in Unlock’s documentation, is tailored to mint NFT memberships with specific parameters such as the membership recipient, the value paid, membership managers (if applicable), a referrer address, and potentially additional data.

To streamline the purchase process, Unlock Protocol developed a backend API that simplifies the integration of these parameters for projects using Magic Eden’s marketplace. In practice, this means projects can now more easily leverage the power of Unlock Protocol for their membership programs, tapping into a wider audience and unlocking new paths to community engagement and monetization thanks to increased visibility within the Magic Eden marketplace.

This partnership is more than just a technical integration; it’s a shift in how NFTs are used for community engagement and membership models. By combining the strengths of Unlock Protocol’s membership and subscription smart contract functionality and Magic Eden’s Launchpad, we’re opening up new opportunities for creators and communities to connect in novel and exciting ways.

For projects looking to explore this further, jump into the Unlock Protocol Discord!

Advent Calendar

Join us as we take the wraps off the 2023 Unlock Protocol Advent Calendar, an exciting journey through the world of Web3!

Last year, we gifted over 200,000 NFTs to the Unlock Locksmith community as part of the Advent calendar festivities. This year, we’re taking it up a notch! Each day from December 1st to 24th, open a new door on our digital calendar to claim exclusive NFTs, engage in unique experiences, and uncover special surprises.

What makes this year’s calendar even more exciting are our collabs with leading names in the Web3 world: #BuildOnBase, Privy, Decrypt, Coinage, and many others. Each day is a new NFT drop with a blend of insights, fun facts, and special rewards you won’t want to miss.

Features of the 2023 Unlock Protocol Advent Calendar:

  • Unique Daily NFTs: A new NFT every day created by artist and designer Chiali Tsai, each with its own story and design.

  • Exclusive Content: Collaborations with Decrypt, Coinage, Privy, and others bring you the best of the Web3 world.

  • Easy Minting: Thanks to our deployment on Base, minting is easy and virtually cost-free.

  • Surprise Rewards: Special giveaways and bonuses hidden throughout the month.

How to Participate:

  1. Visit and access our Advent calendar.

  2. Daily NFT Claim: Open a new door each day and claim your NFT for that day.

  3. Engage and Learn: Enjoy the content, participate in challenges, expand your crypto knowledge — and you may even get some gifts!

Keep the Spirit Alive:

Don’t worry if you miss a day! You can catch up by claiming past NFTs, ensuring you’re part of this festive blockchain celebration.

We at Unlock Protocol are excited to bring this experience back to the Locksmith community for a second year. Join us in counting down the days to the holidays and uncover the many surprises we have in store!

Stay tuned for more details, and get ready to unlock the wonders of this festive season with us!

Unlock Protocol Now Available on the Linea Network

Unlock Labs is committed to ensuring that Unlock Protocol is accessible across a range of blockchain networks to meet the diverse needs of developers.

Today, we are happy to announce that the Unlock Protocol has been deployed to the Linea network, effective immediately.

Why deploy on Linea?

Linea is a developer-ready zkEVM roll-up platform designed for scaling Ethereum decentralized applications (dapps). It provides low gas fees and low latency with high throughput while maintaining the security of Ethereum.

Linea supports popular development tools and infrastructure, enabling seamless MetaMask distribution and Ethereum Virtual Machine (EVM) equivalence.

Unlock Protocol on Linea

We have deployed the contracts for Unlock Protocol on Linea, and starting now, you are able to create locks from the Unlock dashboard.

The Unlock Protocol main contract on Linea can be found at the address 0x70B3c9Dd9788570FAAb24B92c3a57d99f8186Cc7. Linea fully supports the key capabilities of the Unlock Protocol, including contract hooks.

Linea chain/network id: 59144

Native currency: ETH

Linea explorer:

We are committed to continually expanding the networks where Unlock Protocol can be used by developers to deploy subscription NFT, on-chain events and other membership NFTs. The integration with Linea marks another step towards a more decentralized web.

We invite developers to explore the capabilities of Unlock Protocol on Linea. If you have any questions, reach out to the Unlock Protocol community at

Note: You can always find the up-to-late list of all the production and test networks where Unlock Protocol has been deployed at

You Can Now Do Cross-Chain Purchases with Unlock and Decent

It is now obvious that L2 (and side-chains before that) represent a required step to “scale” blockchains. All transactions will not happen on the same “virtual machine”, but across dozens of them. This is the reason why the Unlock Protocol has been deployed on 12 networks (and more to come), including Ethereum mainnet, Polygon, Gnosis Chain (neee xDAI), Optimism, Arbitrum and more recently Base.

This, however, also brings a new challenge for users: their wallets need to have tokens on each an every network they wish to use to transact. This meant a lot of manual bridging and a lot of headaches.

Today, the Unlock Labs team is excited to announce, in partnership with, a whole new feature in our “checkout” tool: the ability to make cross-chain purchases.

What is Unlock’s checkout?

The Unlock checkout is an interface that lets developers easily add the the ability to purchase memberships from their sites, without having to write too much code. It already has the following features:

and several more features that make it easy for developers to integrate memberships or subscriptions into their onchain applications.

Unlock has now partnered with the team at Decent to introduce “cross-chain checkout”.

What is cross-chain checkout?

This new feature lets users send transactions from the chain of their choice to a different network on which a membership smart contract has been deployed. This is a major unlock (haha) to provide a better user experience. Users do not have to bridge tokens, or even configure their wallets for that new chain.

What to try it out by yourself on a live demo? Use this checkout link.

In the example, a membership NFT smart contract has been deployed on Optimism. As a user, I want to purchase a membership, but I don’t have any tokens on Optimism. However, in my wallet, I do have some Ether on Arbitrum, Base and Ethereum mainnet. I also have some Matic on Polygon, but not enough to make the purchase, so this option does not show up.

Cross-chain checkout empowers me to use the tokens I do have to purchase the memberships I want, even if they are on other networks.

When I click purchase, Unlock and Decent are integrated to transparently handle all of the bridging and exchange needed to make this transaction as seamless as possible. (As you can imagine, this does have a slight gas cost and behind-the-scenes bridging time. For L2s like Arbitrum or Base, this takes less than one minute.)

At Unlock, we believe that to bring web3 to the masses, we need to remove friction wherever possible, and we’re really proud of this new feature! Please, let us know what features you would want to see being added to the Unlock checkout!

How to Build an Onchain Scavenger Hunt

Our partners at Coinage launched the first onchain scavenger hunt! You have 12 days to unlock 12 words and get a chance to win 5 ETH.

Scavenger hunts are fun because they require players to find things… blockchains are good, because they bring transparency. How could we build a scavenger hunt onchain?

In this post we’ll share the details of how we built one!

The rules of the scavenger hunt

The rules are fairly simple:

  • The NFTs can only be minted starting at noon ET every day. So it is only possible to mint day 2, 24 hours after the game starts, etc.
  • A given user can only mint the NFT for day n, if they have previously minted day n-1, except of course for the first day!
  • To mint the NFT for a day, the user must know the word of that day.

The smart contracts

Unlock Protocol membership smart contracts are called “locks.” At the core they are “regular” NFT-minting smart contracts with a ton of extra features. For the scavenger hunt, there is one contract per day, and the NFTs (keys) they mint are free to claim (the user only has to pay for gas to mint an NFT), and these NFT do not expire. Finally there is an unlimited supply of these NFTs for each day as of course, we would want as many participants as possible.

The most useful feature for the scavenger hunt is the presence of “hooks.” A hook is a call to a function on an external contract, which lets developers changes the behavior of the lock contract, or change its parameters dynamically.

Each Lock includes multiple hooks, starting with one that is called when a user performs a purchase. There are in fact two hooks in that purchase function. The first one gets called to get the price that the user should pay and the second one is called once the purchase has completed to change any state.

For this scavenger hunt, this is in this hook that we are implementing most of the logic:

  • First, the hook has a start timestamp and we store each of the 12 locks. So we know if the purchase function has been called too early 🙂
  • Then, since we have each of the locks, it’s possible to verify for each of them that the user who’s getting the NFT has minted the previous day’s NFT.
  • Finally, we leverage another key feature of the purchase function in Unlock Protocol: its ability to also receive an arbitrary data field. The Lock actually ignores it, but passes it to the Hook contract. And this is how we check that the word-of-the-day matches.

Storing secrets on chain

We could not really store the secret word of the day onchain, because anyone could easily just look up said words in the contract (or in previous successful transactions) and submit their own transaction with it. However, it’s important to realize that we don’t need the user to submit the word itself, but a proof that they know the word. This “proof” could be something that they would be able to compute only if they knew the word.

If you’ve done a bit of cryptography, this should quickly ring a bell: you want a signature generated from the “secret”, rather than the secret. The signature can prove an “origin”, without disclosing how to perform it. As a matter of fact, if you know the messages that was signed, the EVM provides the very useful ecrecover function who can tell you the signer of a message, based on that message and a signature.

So, what we need to store is not the password, but just the “signer” generated from the password itself. And what each purchase transaction needs to include is not the password either, but a “signature”, by the signer, of a “known” message. In our case, we use the “recipient” of the NFT as the message.

So to summarize, here is the flow we use:

  1. From the word entered by the user, we generate a private key.
  2. Using that private key, we sign the address of the recipient.
  3. We submit the signature as the data field in the purchase function. It is then passed down to the Hook from the Lock.
  4. The Lock uses ecrecover on the data field, with the recipient and finds a signer. If the signer matches, the transaction succeeds… and if it does not match, the transaction fails!

Of course, it is critical that the secret word has a LOT of entropy, and that is what we recommended to the team at Coinage, because someone could quite easily run a Dictionary Attack!

Using this technique, and with enough entropy, we can store “secrets” on chain and create a Scavenger Hunt! We’re now on Day 9 of the Coinage Treasure Hunt! It is not too late to start playing for day the big prize on Day 12 🙂

Unlock Protocol and Crossmint Partner for Payment Processing Integration

Unlock Protocol is now integrated with Crossmint, expanding its credit card and other payment processing options! Working with Crossmint grants developers who are building on Unlock Protocol an additional avenue for implementing fiat transactions, specifically credit card payments.

Crossmint is known for providing comprehensive APIs and tools for NFT creation, distribution, and custody, with a focus on exceptional user experience. Crossmint has been used by over 15,000 developers and companies, and has SDKs that support minting, payment and wallet management.

Why Crossmint?

By leveraging Crossmint’s suite of APIs and tools, there is now a new way to streamline the creation of memberships, tickets, and other related items through Unlock’s checkout. This integration also vastly improves the overall user experience.

With Crossmint’s expertise in facilitating credit card and cross-chain crypto payments, developers and other users of Unlock Protocol can now enjoy a broader range of payment options, connecting the decentralized world with other finance systems.

Crossmint works in over 180 countries all over the world and in all US states.

How does it work?

When a user initiates a payment for an Unlock-powered transaction via Crossmint, either through credit card or another fiat method, the payment is converted into the requisite cryptocurrency. Then, the payments are transferred to the associated lock’s smart contract.

This integration ensures that even though users might transact in fiat currencies, the underlying mechanics remain true to the idea of decentralization, and enable a similar user experience regardless of whether a transaction is executed using fiat or cryptocurrency.


Unlock’s integration with Crossmint is currently in beta. A reference integration is live today, and is being used by ETHVietnam for supporting credit card ticketing transactions.

As we continue refining the experience, we invite developers who are eager to explore this integration to reach out to either Unlock or Crossmint for guidance on setting things up.

We value your feedback and insights during this phase.

What’s next?

As we progress, our goal is to transition to a fully self-serve platform, empowering developers with a seamless and autonomous experience with a focus on composability. Your early engagement is invaluable in shaping the future of this collaborative endeavor!

As always, if you have questions, please reach out to us in our Discord at

Unlock Protocol Has Been Deployed to the Base L2 🔵

The Unlock Protocol has been deployed to the Base L2 🔵! Our goal at Unlock has always been to support any ecosystem where developers, event organizers, creators, or brands want to deploy their membership contracts.

Coinbase (one of our investors) has undeniably contributed massively to the crypto ecosystem, and we believe Base represents a step in democratizing web3 and the onchain web.

As an L2, Base benefits from the “security” budget of Ethereum, while also lowering transaction costs.

How does it work?

Deploying a membership contract to Base follows the same process as deploying to any other of networks supported by Unlock Protocol. You can deploy your lock(s) using the Unlock Protocol Dashboard (or do it through code) and then use any of the tools available in the Unlock Protocol ecosystem, including using our checkout to sell your NFT memberships, airdrop them, or tap into any of the other capabilities available to the community.

Related resources

Blockchains Are Not Immutable

Crypto has a bad reputation. 

There are many other reasons why, but I think this bad rep often comes from crypto being misunderstood, both by its critics (haters?) and fans (cultists?). 

These misunderstandings often arise from half-truths used as marketing material to promote the technology that ends up being taken at face value.

One such misunderstanding is the idea that blockchains are “immutable.” I was recently at a conference where most attendees I spoke with were crypto skeptics. A fairly regular pushback I heard was that immutability was bad and because blockchains are immutable, this is not a good or useful technology. 

But are blockchains really immutable? 


When it comes to immutability, in fact, blockchains are no different from the “real” world in that the only thing that can’t be changed is the past. 

Why even have blockchains?

You might be wondering what the point of a blockchain even is, if indeed any change can be reversed. 

If a transaction recorded yesterday transferred some coins from X to Y, it is not possible to “rewrite” the transaction (almost without exception) to change the amount, recipient or sender of that specific transaction. However, it is possible to create another transaction from Y to X for the same amount to “restore” the balances. 

Importantly, using the same mechanism as above, any “state” can be updated, not just balances, but also the code of smart contracts themselves in blockchains that support them, like Ethereum.

Rather than focusing on blockchain’s faux immutable state then, move your gaze over to who can change the state to see what actually matters. In the example above, only Y can ever send a new transaction to X. 

In Bitcoin, only the owner of a private key can change the balance of the account that matches this private key. 

And in the Ethereum world, each smart contract has its own logic for which a user is allowed to make what change. A currency contract (like ERC-20) would probably only allow the owner of any coin to transfer them, but it may also enable some special admin user to perform transfers (like the USDC contract does, for example).

Similarly, if a contract is upgradable, it is likely only upgradable by a single address. Interestingly, this specific address itself may be another contract like a multisig or a DAO, opening up the possibility of oversight controls.

This means that the really exciting consequence of blockchain isn’t immutability at all, but accountability, i.e. anything that’s executed or changed is only possible because it was previously specified. Of course, that doesn’t mean code will never have bugs that result in unintended behaviors, but there’s a level of accountability with the code being publicly visible by anyone.

This accountability is what makes blockchains really useful for things that are widely shared and require “trust” that no one can arbitrarily change. This is true of money, but also of many foundational pieces of infrastructure that enable collaboration between humans.

Accountability makes the concept of governance critical. Accountability lets groups of users collectively set the rules (if any!) that determine what can be changed in a contract, how, by whom, when…etc. And even on blockchains that have no concept of smart contracts that predefine custom rules — Bitcoin being the most prominent example — governance can happen. 

The myth of immutability

Blockchains are vast networks of machines (nodes) that collectively agree on the state of a ledger. That agreement is, in fact, the protocol, and each individual node can decide on what “version” of the protocol it adheres to.

The state of the blockchain is determined by the version of the majority of nodes. Even when there are no explicit rules around changes, if the majority of nodes decide to change, the blockchain will change. This happens with Bitcoin (Segwit, Taproot…), Ethereum and any other network. 

That’s the reason why even the most repeated claims about any blockchain’s immutability, like the permanence of the supply of coins or the balances of certain accounts, can in reality be changed…as long as enough of the actual members of that network want the change.

The immutability of blockchains is therefore subject to humans collectively working together.

When we use applications on these blockchains, we can trust that history will remain unchanged — but not because of some intrinsic properties baked into the technology. It’s because the human actors governing the blockchains decide for it to be that way. 

And it’s this human coordination that allows applications to always perform the same certain actions in the same certain ways that could not be more valuable.

Get the day’s top crypto news and insights delivered to your email every evening. Subscribe to Blockworks’ free newsletter now.

Want alpha sent directly to your inbox? Get degen trade ideas, governance updates, token performance, can’t-miss tweets and more from Blockworks Research’s Daily Debrief.

Can’t wait? Get our news the fastest way possible. Join us on Telegram and follow us on Google News.