Skip to content

Latest commit

 

History

History
93 lines (75 loc) · 2.64 KB

create-an-api-key.md

File metadata and controls

93 lines (75 loc) · 2.64 KB
layout
title description tableOfContents outline pagination
visible
true
visible
visible
true
visible
true
visible
true

🔑 Create an API Key

An API key is required to use Lighthouse, it can be generated using Files Dapp UI (check quick start for more detail), CLI, and SDK. Refer to the given code examples to generate an API key based on your preferred environment.

In general, to create an API key there are two steps involved:
1. The user requests an authentication message from the message API.
2. The user signs the auth message to get the API key.

{% tabs %} {% tab title="JS SDK" %}

import axios from 'axios'
import { ethers } from 'ethers'
import lighthouse from '@lighthouse-web3/sdk'

const signAuthMessage = async(privateKey, verificationMessage) =>{
  const signer = new ethers.Wallet(privateKey)
  const signedMessage = await signer.signMessage(verificationMessage)
  return(signedMessage)
}

const getApiKey = async() =>{
  const wallet = {
    publicKey: 'YOUR_PUBLIC_KEY', // Ex: '0xEaF4E24ffC1A2f53c07839a74966A6611b8Cb8A1'
    privateKey: 'WALLET_PRIVATE_KEY'
  }
  const verificationMessage = (
    await axios.get(
        `https://api.lighthouse.storage/api/auth/get_message?publicKey=${wallet.publicKey}`
    )
  ).data
  const signedMessage = await signAuthMessage(wallet.privateKey, verificationMessage)
  const response = await lighthouse.getApiKey(wallet.publicKey, signedMessage)
  console.log(response)
}

getApiKey()

{% endtab %}

{% tab title="API" %} First, we need to get an authentication message that should be signed in order to generate an API key

curl https://api.lighthouse.storage/api/auth/get_message?publicKey=<publicKey>

This will send a message(string) in response that has to be signed by the user, the signature will be required to generate the API key

curl -X POST -d '{"publicKey": "value1", "signedMessage": "value2", "keyName": "value3"}' https://api.lighthouse.storage/api/auth/create_api_key

{% endtab %}

{% tab title="CLI" %} Before generating the API key using CLI make sure there is a wallet created or an existing wallet is imported in CLI. To check your wallet use the following command

lighthouse-web3 wallet
#Returns
#Public Key: 0x92a605b54a7F3171aF7D093d8CeD874236ea96A5
#Network: polygon

If there is no wallet, create one or import one using

lighthouse-web3 create-wallet

lighthouse-web3 import-wallet --key <private_key>

Now run the following command to create API key

lighthouse-web3 api-key --new

{% endtab %} {% endtabs %}