💳 Supporting Credit Cards

Our goal is to eventually support credit card purchases for every lock, as long the creator (or lock manager) approves it.
Once a lock has been deployed, the lock manager is expected to complete 2 steps:

  • Grant to Unlock Inc the role of “key granter” on the lock. This means that we will then be able to grant keys for free (but pay the gas) to anyone. Creators will have to trust that we will only do that for people who have paid with their credit cards (obviously!)
  • Apply for a Stripe API key using Stripe Connect. We will provide an easy interface for creators to do this and then store this API key as part of their lock’s metadata (only accessible to Unlock Inc).
  • Optionally, creators can set a price in $ that they want to charge for the memberships (otherwise we will use exchanges to assess the right price)

After that, when a web user wants to become a member, they will be able to checkout on the lock using their credit card. When doing so, we use an Unlock Inc owned Stripe API key to “execute” the API call, but the founds are assigned directly to the Stripe Connect API key. Additionally, Unlock Inc will charge a fee for this service (deducted from the amount paid by the consumer).
Once the credit card payment has been successfully executed, Unlock Inc will grant a key to the member. When doing so, Unlock will retain the “key manager” role, such that membership NFT purchased via credit card are not transferable or cancellable by their owner, but only by Unlock Inc. This is an important measure to ensure that charge backs cannot be used to “steal” funds.


This has now shipped (and is now being used by 7 different locks!)

One of the things that’s missing that we’d love to see happen is the ability to make things work for “free” locks. In that case, I don’t think Unlock should require a credit card number, but we should obviously be very careful about gas costs (i.e only send the transaction if the gas cost is low!)