# Smart ring protocol: documenting the Oura Ring BLE protocol and event format

> Documents the Oura Ring Bluetooth Low Energy request and response framing, request tags and payloads, and binary event stream. The BLE notes are confirmed on Oura Ring 4. Many packets remain unknown. The author says the event reference and Node.js parser were generated from the Oura app event-parser library and await manual verification.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/ringverse/protocol>
- Primary source: <https://github.com/ringverse/protocol/blob/1826a352611c7220708b555a15de13e28e24b33a/README.md>
- Catalog page: <https://awesomerea.org/resources/ringverse-oura-ring-protocol-case/>
- Record JSON: <https://awesomerea.org/resources/ringverse-oura-ring-protocol-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/ringverse-oura-ring-protocol-case/index.md)

## Requirements & limits

- The repository documents the Oura Ring BLE framing and event stream, currently for Oura Ring 4. Many packet fields remain unknown.
- Use an Oura Ring 4 for the confirmed BLE notes. The repository documents per-device authentication and key recovery from an iOS app backup.
- The Node.js events parser derives from the Oura Android app 6.2.0 event-parser library; later app or firmware versions may differ.
- The event notes and parser are author-reported AI-generated work awaiting manual verification. The repository has no tests or CI.
- The repository has no license file; reuse rights for the notes and parser are unstated.

## Primary sources

1. <https://github.com/ringverse/protocol/blob/1826a352611c7220708b555a15de13e28e24b33a/README.md>
2. <https://github.com/ringverse/protocol/blob/1826a352611c7220708b555a15de13e28e24b33a/oura/BLE.md>
3. <https://github.com/ringverse/protocol/blob/1826a352611c7220708b555a15de13e28e24b33a/oura/events/EVENTS.md>
4. <https://github.com/ringverse/protocol/blob/1826a352611c7220708b555a15de13e28e24b33a/oura/events/parse.js>

## More in Protocols

- [openrsync: an ISC implementation of rsync protocol 27](https://awesomerea.org/resources/openrsync-protocol-case/index.md) · Case study
- [Thermal Master P3: a browser client for the vendor USB protocol](https://awesomerea.org/resources/thermal-master-p3-protocol-case/index.md) · Case study
- [SNX-VPN: reconstructing Check Point browser login for SNX](https://awesomerea.org/resources/snxvpn-case/index.md) · Case study
- [OpenDS: reconstructing an FRC Driver Station client](https://awesomerea.org/resources/opends-frc-case/index.md) · Case study
- [CO/Tech power plugs: reproducing captured radio commands](https://awesomerea.org/resources/cotech-remote-control-case/index.md) · Case study
- [ts3j: a Java implementation of the TeamSpeak 3 client protocol](https://awesomerea.org/resources/ts3j-protocol-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
