diff --git a/107.md b/107.md
new file mode 100644
index 0000000..bc4d61e
--- /dev/null
+++ b/107.md
@@ -0,0 +1,73 @@
+NIP-107
+======
+
+Nostr Internet of Things
+-----------------------------------
+
+`draft` `optional` `author:benarc` `author:blackcoffeebtc`
+
+## Ratioanale
+
+The terms/conditions of IoT software/hardware is horrible. A user should be able to message a light or heating and ask it to turn on/off. Nostr gives the simple, permissionless development enviroment IoT needs.
+
+All communication happens over [NIP04](https://github.com/nostr-protocol/nips/blob/master/04.md).
+
+## Terms
+
+- `user` - user operating IoT device with NOSTR key-pair and a client made specifically for IoT
+- `device` - device to operate over Nostr with NOSTR key-pair, using a microcontroller client like nostr-arduino
+
+
+## Nostr IoT Clients
+
+### User
+
+Where the `user` registers 'device'(s) and its keys, then updates the `device`(s).
+
+### Device
+
+The `device` uses a client like nostr-arduino to receive commands from the `user` or another `device`.
+The `devie` can also push data such as senssor readings and updates.
+
+## `User` OR `device` registering/updating a `user` OR `device`
+
+A merchant can publish these events:
+| Kind | | Description | NIP |
+|---------|------------------|---------------------------------------------------------------------------------------------------------------|-----------------------------------------|
+| `4 ` | `direct_message` | Communicate between `device`(s) and `user`(s). The messages can be plain-text or JSON. | [NIP04](https://github.com/nostr-protocol/nips/blob/master/04.md) |
+
+
+### Event: Register a `device`
+
+**Event Content**:
+```json
+{
+ "id": ,
+ "device_id": ,
+ "name": ,
+ "description": ,
+ "categories":[ ],
+ "users":[ []],
+ "images": <[String], array of image URLs, optional>
+}
+```
+
+Note:
+ - `users`:
+ - A list that can restrict access to public-keys, `device`(s) also has keys and can be a `user`.
+
+### Event: Update a `device`
+
+**Event Content**:
+```json
+{
+ "id": ,
+ "device_id": ,
+ "settings":[ []]
+}
+```
+
+Note:
+ - `settings`:
+ - Standard `settings` innclude:
+ - eg: `[["on", ], ["range", ], ["timer_on", ], ["timer_off", ]]`