|
1 | 1 | # oracle-example
|
2 | 2 | DIMO Connection Oracle example repository
|
| 3 | + |
| 4 | +## Key Concepts |
| 5 | + |
| 6 | +Recommended reading: [DIMO Developer docs](https://docs.dimo.org/developer-platform). |
| 7 | + |
| 8 | +### DIMO Oracle |
| 9 | + |
| 10 | +An application that exposes an API and performs data streaming from your data source to a DIMO Node. |
| 11 | +The API is used for a frontend to handle onboarding and removal. The data streaming pulls data however you need it to |
| 12 | +from your systems and then forwards it via an http POST to a DIMO Node. This app also does minting of necessary on-chain records. |
| 13 | +This repository is an example in Golang of a DIMO Oracle, which you can base your solution on and just replace necessary parts. |
| 14 | + |
| 15 | +### Connection License |
| 16 | + |
| 17 | +This is an on-chain object that basically represents your Oracle on-chain. It is required to be able to send data to a DIMO |
| 18 | +Node and run an Oracle. |
| 19 | + |
| 20 | +### Vehicle NFT |
| 21 | + |
| 22 | +This represents the vehicle on-chain. It stores basic information such as the owner wallet address as well as the Make Model Year. |
| 23 | +You can query for them using our Identity-API - [docs](https://docs.dimo.org/developer-platform/api-references/identity-api) |
| 24 | + |
| 25 | +When you onboard a vehicle, the oracle will mint a vehicle NFT as part of the process. The two key inputs are the definition_id |
| 26 | +and the owner 0x address. |
| 27 | + |
| 28 | +### Synthetic Device NFT |
| 29 | + |
| 30 | +This represents the software connection between the Vehicle NFT and the Connection, eg. your oracle. |
| 31 | +When the connection is removed, this should be burned. [docs](https://docs.dimo.org/developer-platform/api-references/identity-api/nodes-and-objects/syntheticdevice#definition) |
| 32 | +Every payload is signed by the Synthetic Device. We have examples of this in the repository. |
| 33 | + |
| 34 | +### Login with DIMO (LIWD) |
| 35 | + |
| 36 | +An easy way to handle for DIMO users to login with DIMO via an auth redirect flow. You will likely need to implement this |
| 37 | +to handle the login for the vehicle onboarding. If you're doing Fleet onboarding, where a single user or few users manage |
| 38 | +many vehicles, your UI should reflect that. If you're building for retail/consumer users, you'll want onboarding to be centered |
| 39 | +around a single or few vehicles with explicit ownership verification mechanisms, eg. maybe you do an OAuth flow with your system |
| 40 | +or require the user to input something specific to that vehicle or PIN code etc. |
| 41 | + |
| 42 | +# Implementing your Oracle |
| 43 | + |
| 44 | +1. Register an account on https://console.dimo.org/ |
| 45 | +2. Generate an API key and add your preferred redirect URI |
| 46 | +3. Create your Connection License. In the future this will be in the dev console but for now provide your ClientID to your developer relations person at DIMO. |
| 47 | +4. Obtain the required Synthetic Device Minting roles - engineers at DIMO will do this for you. |
| 48 | +5. |
0 commit comments