Generate a key

How is a key generated and stored ?

AWS KMS

As previously discussed in the introduction, AWS KMS offers key features such as randomly generating private keys. AWS KMS adheres to the FIPS 140-2 Level 2 security standard and operates using a fleet of devices called HSMs (Hardware Security Modules). Private keys are securely stored within the HSM, which handles critical cryptographic operations such as encryption, decryption, and signing, ensuring strong security.

Fireblocks' Direct Custodial Wallet

The Overwallet administrator, acting as the sole custodian, maintains exclusive ownership of the master key generated on Fireblocks. This master key is divided into three shards and securely distributed across separate cloud environments using MPC (Multi-Party Computation). Key pairs derived from this master key are assigned to applications identified by clientId and managed on Quant Connect through hdAccountId.


Prerequisites


Call the endpoint

To generate a private key, you can use the endpoint:

https://hook.eu2.make.com/f7jjioctt4fyssxxnxm5r1nv0ulm4vmh

To use this endpoint you need to pass in the DLT network details to generate a private key for that specific network:

curl --request POST \
     --url https://https://hook.eu2.make.com/f7jjioctt4fyssxxnxm5r1nv0ulm4vmh \
     --header 'Authorization: Bearer token' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "clientId": "6rigmpr3qtji7dbfolrsbdh4ic",
  "serviceProvider": {
      "name": "fireblocks",
      "hdAccountId": 107
  },
  "location": {
      "technology": "ethereum",
      "network": "ethereum sepolia testnet"
  }
}
'

If the request is successful you receive a response with the address and public key of your asset:

{
  "address": "0x6F37b996AF773a38ADE9525f1396ba09Ae0a3c84",
  "publicKey": "046f2f9c4f4eda1d35c4784e630e65bad8150793083573178a0d9d57f047340197336b808bf5dd23a08ad61525206995b7f6aeb91402acb1cd3f60e836217a2b68"
}