Skip to main content

Introduction

Locksmith is currently a hosted backend service providing an array of functionality. The general idea is that when use cases emerge features will be extracted and optimized for their newly recognized use cases.

Locksmith powers the following functionality at the moment.

  • Store metadata for locks, keys, and users.
  • Fiat payment integration
  • Ticket management
  • Sending emails, generating QR codes, and other miscellanous tasks.

Authorization Strategy

The Locksmith service leverage's signatures allowing authorized requesters to retrieve and write to data.

Using standard signing methods provided with most Ethereum libraries, Locksmith makes this process relatively straight forward.

Authorization Header

Request must include an Authorization header

Signing using 'Typed data' the header should conform to the following:

Bearer Base64 Encoded(Typed data signature of payload)

When signing using a simple signature, the header should conform to the following:

Bearer-Simple Base 64 Encoded(Simple signature of stringified payload)

Constructing a payload

Locksmith generally expects the payloads signed to conform to the EIP712 specification. In noted scenarios the "stringified" JSON version of the payload may be accepted.