project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

gmReady

an onchain oura ring data offramp for storing your health data privately while sharing your readiness score with frens

gmReady

Created At

ETHGlobal London

Winner of

Base - Build an Onchain Product 2nd place

Project Description

gmReady was built by Dan and Steph

gmReady collects your daily Oura ring (a wearable fitness tracker) sleep and health data and stores it onchain so you have access to it forever. All data is encrypted except your daily readiness score, which is intentionally sharable, attestable, and social.

Here's what we're most proud of:

Intuitive onboarding for everyone - not just degens: Users get started with gmReady by using their email, Google account, or an existing wallet. For those opting for social logins, gmReady ensures privacy and ease by automatically creating a non-custodial wallet behind the scenes.

Digital identity aspects: Upon joining, users choose a username that creates an ENS subdomain (for example @steph is steph.gmready.eth, @dan is dan.gmready.eth), which resolves to their wallet from onboarding. This username acts as their identity within the gmReady ecosystem, streamlining interactions and transactions and the best part is, it's completely gasless and free for the user!

Oura connection: Thanks to some OAuth2 token magic, gmReady users only have to connect their Oura data 1 time by signing into Oura directly from the gmReady app. Then users can view data collected by their Oura from within gmReady every day they log in.

Oura Ring Data Offramp: gmReady enables users to seamlessly port their Oura Ring readiness data onto the blockchain (Base Sepolia, eventually Mainnet), with encrypted health data records and shareable readiness scores by date. If the Oura service shuts down or you stop paying your subscription fee, you'll still have access to all your precious sleep and readiness data.

Readiness Score Sharing: The only piece of data made visible onchain is the user's readiness score. This feature allows users to share their general well-being status with frens without exposing sensitive health information.

How it's Made

Frontend Next JS Dapp with typescript for max pain: https://github.com/0xDanomite/gm-ready-dapp

  • Dynamic: gmReady uses Dynamic to simplify onboarding flows for everyone. Native web3 users can sign in with an existing wallet. New users can sign in with an email address or social login, and a non custodial wallet is created for them.
  • ENS: We issue every gmReady user a gmReady.ens subdomain as part of their onboarding flow.

Backend express js server: https://github.com/oceans404/oura-server

  • Oura OAuth2: Our server performs the Oura Authentication (OAuth2) handshake needed to let users authenticate to their oura account with their oura name and password.
  • Oura Tokens An Oura callback returns a re-usable token to the frontend so that the user can continuously stream Oura data without needing to reauthenticate with the service.

Database:

  • ENS subdomain addresses are stored offchain in a Cloudflare D1 table, with names accessible through this gateway. We know what you're thinking, but if it's good enough for Uniswap (uni.eth) and Base (Coinbase ID), it's good enough for us.

Smart contracts:

background image mobile

Join the mailing list

Get the latest news and updates