LogoLogo
DocsHomeSupportContact
  • Getting Started
    • Introduction
    • Build on DIMO
  • DEVELOPER GUIDE
    • Developer Overview
    • Developer Console
    • Authentication
    • DIMO Developer SDKs
      • Data SDK
      • Login with DIMO SDK
        • React Component
        • Login with DIMO Redirect
        • Core Functionalities
      • TypeScript: Transactions SDK
      • SDK Release Notes
    • Low Code Tools
      • n8n: Getting Started
    • Permissions Contract: SACD
    • DIMO Credits
    • Response Types
    • Rate Limits
    • Developer FAQ
    • Developer Changelogs
    • Troubleshooting Common Issues
  • API References
    • Overview of DIMO API
    • Attestation API
    • Device Definitions API
    • Identity API
      • Schema & Types
      • Scalars
      • Nodes & Objects
        • AftermarketDevice
        • AftermarketDeviceConnection
        • DCN
        • DCNConnection
        • DeveloperLicense
        • DeviceDefinition
        • Earning
        • EarningsConnection
        • Manufacturer
        • Sacd
        • SyntheticDevice
        • Vehicle
        • VehicleConnection
        • VehicleEarnings
        • UserRewards
      • Common Queries
    • Telemetry API
      • Schema & Types
      • Scalars
      • Nodes & Objects
        • Signals
        • SignalsLatest
      • Common Queries
    • Token Exchange API
    • Trips API
    • Valuations API
  • DIMO Hardware
    • Introduction
    • DIMO Hardware Application
    • DIMO Manufacturing License
    • Development & Certification
    • Audits & Assessments
      • Hardware & Security Audit
      • Customer Experience Assessment
      • Integration Testing & Quality Control
      • Final Approval
    • DIMO Device License
      • Device Minting Certificates
    • Essential Documents
      • Hardware & Security Audit Checklist
      • Approved Hardware Auditors
      • DIMO Memorandum of Understanding (MOU)
  • Additional References
    • Developer License
    • DIMO GraphQL Basics
  • Deprecated Resources
    • Guides
      • Developer Journey
      • Quick Start Guide
      • Hello World
      • Code Exchange Flow
    • Data Availability
Powered by GitBook
On this page
  • License Mechanism
  • License Issuance
  • Step 1: Approving the Dev License to use of $DIMO
  • Step 2: Issue the Dev License
  • License Configurations
  • Step 3: Configuring the Dev License
  • Step 4: Enable Signer(s)

Was this helpful?

  1. Additional References

Developer License

PreviousDIMO Memorandum of Understanding (MOU)NextDIMO GraphQL Basics

Last updated 4 months ago

Was this helpful?

Developer Notes

The Developer License (aka license) is the on-chain smart contract that act as the proof of a registered developer. The process of obtaining a license is abstracted away by the , but we kept this reference in case you wanted to learn more about the underlying mechanisms.

License Mechanism


License Issuance

Step 1: Approving the Dev License to use of $DIMO

DIMO Check-in

Here, the transaction should always go through even if you don't have $DIMO in your wallet. But be aware that not having enough $DIMO in your wallet will cause failed transactions in the next step.

The approve function takes in two input parameters:

Input
Type
Description

spender*

address

The 0x address of the Developer License Contract (0x...7C85)

amount*

uint256

Developer Notes

You will need $5 worth of $DIMO to issue a license, so the approved amount should be higher than that (recommend checking the actual price). This value is subjected to change due to the volatility of $DIMO.

Getting $DCX minted by burning $DIMO is a way to beat the volatility, as the price of $DCX is pegged to fiat, you can pre-purchase $DCX with $DIMO for developer spending.


Step 2: Issue the Dev License

This is also known as Create an App if you are familiar with how most integrations work. Once you have approved the spending and have enough $DIMO in your spender wallet, head over to the Developer License Contract (0x...7C85) and issue the Developer License.

There are 4 ways to issue a Developer License:

  1. This function is used when you are issuing the Developer License to the account that you used for issuance in DIMO Credits.

  2. This function is used when you are issuing the Developer License to another account other than the one that you are using to issue the license. This function spends DIMO Credits in order to perform the issuance.

  3. This function is used when you are issuing the Developer License to the account that you used for issuance in DIMO Tokens.

  4. This function is used when you are issuing the Developer License to another account other than the one that you are using to issue the license. This function spends DIMO Tokens in order to perform the issuance.


License Configurations

Step 3: Configuring the Dev License

You will need a set of clientId and domain to get started with the API access. The clientId is obtained in Step 2: Issue the Dev License while you still need to configure the domain on the Developer License by calling setRedirectUri.

This function is used to configure the domain needed for the authentication steps. With a combination of clientId and an enabled domain, you will be able to exchange for an access_token to the DIMO API.

Step 4: Enable Signer(s)

This function is used to enable a signer on the Developer License. By indicating the tokenId of your Developer License, and the signer's address, the successful transaction here will grant you access to authenticate with the DIMO Auth Server.

Input
Type
Description

tokenId*

uint256

The identifer to your Developer License.

signer*

address

The 0x address of the wallet that's approved as a signer.

DIMO Check-in

The signer process avoids any bad actors getting hold of your clientId and domain. Anyone that is NOT a valid signer cannot access your access_token.

This is the manual steps to getting a developer license and will not be managed by the . Please ensure that your spender wallet has both $DIMO and $POL available. $DIMO will be spent on issuing the Developer License, and $POL will be spent on transaction fees.

To start issuing a Developer License, you will first need to approve the Developer License Contract (0x9A9D2E717bB005B240094ba761Ff074d392C7C85) to be a spender of DIMO tokens in your spender wallet. To do so, you will need to call the approve (0x...61db) after connecting your spender wallet.

The amount of DIMO tokens you want to approve the Dev License to spend, in units of wei. To approve 1 $DIMO, append 18 zeros to convert into wei. You can also use to facilitate the calculation.

Your DIMO Developer License is granted as you trigger the issuance, sign the transaction, and when the transaction is marked as complete. A successful transaction will return a few things: tokenId, owner, and clientId. The tokenId is your public ID for your Developer License, the owner being the holder account, and the clientId is what you will need to obtain access to the DIMO API.

(aka Redirect URI)

Signers are essentially the trusted signer wallets to perform the wallet-based . The Developer License (aka your app) has a clientId and a domain, but in order for you to authenticate and obtain a valid access_token to the DIMO API, you will need to provide a signer wallet. By default, a Developer License that was created will not have any signer provisioned, even if you are the holder of the license.

✅
Developer Console
function on the DIMO Token Contract
Issue in DIMO Credits
Issue in DIMO Credits to a targeted address
Issue in DIMO Tokens
Issue in DIMO Tokens to a targeted address
Set Domain
authentication flow
Enable Signer
https://eth-converter.com/
Developer Console
Issuing a DIMO Developer License
Setting a signer and sharing vehicle permissions with a DIMO Developer License
Approving Developer License to spend your $DIMO
The 4 different ways of issuing a Developer License
Setting a domain for your app, simply set enabled to true
Enabling a signer on your Developer License