Inspiration

I tried to find any sort of backend tools to build apis with python, but there are none! So I made my own.

This was my original design for a no trus PlantUML

But there are so few libraries to support the authentication flow for metamask that I had to rewrite the metamask auth flow from scratch, and thats what I built! Hopefully this project will allow more frequent use of blockchain authentication on the backend.

What it does

UML Diagram Full flow for a low trust backend UML2

This is the design of our library, it authenticates the user by verifying a signed message and provides a key that can be saved in memory and used to encrypt top secret data that only the user can read.

How we built it

The library is designed for FastAPI in python, but it should work with flask as well. I also wrote the frontend flow in plain Typescript.

Challenges we ran into

The lack of documentation and lack of support in general. Very few people use blockchain for backend authentication but they should! It's very convenient and can be pseudonymous.

Accomplishments that we're proud of

Getting as far as I did, the entire project is close to 300 lines of code and it was very difficult to debug. Next step is definitely to include detailed black box tests ensuring that our middleware is secure.

What we learned

Metamask auth is tricky

What's next for Metamask Authorization Middleware for FlaskAPI

Blackbox testing, and integration with popular libraries

Built With

Share this project:

Updates