Authentication
Sign up and manage API keys through our APIs to seamlessly manage your stake with us!
API URL
Sign up 
POST /user/signup
Create an account for your organization with Luganodes. Please contact [email protected] in order to approve your organisation and receive an API key once you've signed up using this endpoint.
Request Body
{
  "email": "[email protected]",
  "password": "TestPass123",
  "org": "Test Organization",
  "scope": {
    "sui": {
      "validator_addresses": ["0x7e254f0f55e24b8a6995567241618f750d0d94f2cf49b36703869779d2ee4327"],
      "delegator_addresses": ["0xfaiojf923h2i.....", "0x329hipnasfnweufaw....."]
    }
  }
}email*
String
Organization email
password*
String
Password for organization account
org*
String
Organization Name
scope*
Object
Object containing whitelisted addresses
Note: If you are not sure what needs to be added as a scope, apply with an empty scope object and get in touch with our team at [email protected]
{
    "message": "Registration request received and is pending approval."
}{
    "error": "A user with this email already exists",
    "code": "USER_EXISTS"
}{
    error: "Invalid JSON payload",
    code: "INVALID_JSON"
}{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "email",
            "message": "Please provide a valid email address"
        }
    ]
}{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "password",
            "message": "Password must be at least 8 characters long"
        },
        {
            "field": "password",
            "message": "Password must contain at least one lowercase letter, one uppercase letter, and one number"
        }
    ]
}{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "org",
            "message": "Required"
        }
    ]
}{ 
    error: "Internal Server Error",
    code: "INTERNAL_SERVER_ERROR",
}Sample Request
curl --location '{{URL}}/user/signup' \
--header 'Content-Type: application/json' \
--data-raw '{
  "email": "[email protected]",
  "password": "TestPass123",
  "org": "Test Organization",
  "scope": {
    "ethereum": {
      "validator_addresses": ["0x7e254f0f55e24b8a6995567241618f750d0d94f2cf49b36703869779d2ee4327"],
      "delegator_addresses": ["0xfaiojf923h2i.....", "0x329hipnasfnweufaw....."]
    }
  }
}'Create API key 
POST /user/api-keys
Send a request to generate a new API key.
Headers
Authorization*
Basic Auth
Base64 encoded email:password
Request Body
{
  "label": "Test API Key"
}label*
String
API Key Label
{
    "keyId": "68c0f941ac35dcc2130a00aX",
    "label": "Test API Key",
    "apiKey": "luga-f1cd0029-a256-b234-c9e1-41233a260ea7"
}{
    error: "Invalid JSON payload",
    code: "INVALID_JSON"
}{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "label",
            "message": "Required"
        }
    ]
}{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "label",
            "message": "Label is too long"
        }
    ]
}{ 
    error: "Internal Server Error",
    code: "INTERNAL_SERVER_ERROR",
}Sample Request
curl --location '{{URL}}/user/api-keys' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGVzdHVzZXXAXuhbXBsZS5jb206GGVzdFBhc3MxMjM=' \
--data '{
  "label": "Test API Key"
}'List API keys
GET /user/api-keys
List all currently active API Keys.
Headers
Authorization*
Basic Auth
Base64 encoded email:password
{
    "keys": [
        {
            "keyId": "68c0f9413c35d9c2140a00a7",
            "label": "Test API Key",
            "createdAt": "2024-09-10T04:06:25.693Z"
        },
        {
            "keyId": "68c0fa9c3c48d9x2140a00ad",
            "label": "Test API Key 1",
            "createdAt": "2024-08-12T04:12:12.131Z"
        },
        {
            "keyId": "68c0fbed3c98d7y2140x00bb",
            "label": "Test API Key 2",
            "createdAt": "2025-01-01T04:17:49.258Z"
        },
        {
            "keyId": "68c0fbfa3c35d9c2140a00c5",
            "label": "Test API Key 3",
            "createdAt": "2025-05-04T04:18:02.692Z"
        },
        {
            "keyId": "68c0fc073c35d9c2140a00d1",
            "label": "Test API Key 4",
            "createdAt": "2025-09-10T04:18:15.306Z"
        }
    ]
}{ 
    error: "Internal Server Error",
    code: "INTERNAL_SERVER_ERROR",
}Sample Request
curl --location '{{URL}}/user/api-keys' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGVzdHVzZXXAXuhbXBsZS5jb206GGVzdFBhc3MxMjM='Revoke API key
DEL /user/api-keys/{{keyId}}
Revoke an API Key
Headers
Authorization*
Basic Auth
Base64 encoded email:password
If you receive a 204 No Content status, it means that the key has successfully been revoked.
{
    "error": "Validation failed",
    "code": "VALIDATION_ERROR",
    "details": [
        {
            "field": "keyId",
            "message": "Invalid API key ID format"
        }
    ]
}{
    "error": "API key not found or does not belong to user",
    "code": "API_KEY_NOT_FOUND"
}{ 
    error: "Internal Server Error",
    code: "INTERNAL_SERVER_ERROR",
}Sample Request
curl --location '{{URL}}/user/api-keys/{{keyId}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGVzdHVzZXXAXuhbXBsZS5jb206GGVzdFBhc3MxMjM='Last updated