Node Provisioning APIs

Provisioning APIs for Ethereum nodes creation and staking delegation

What are the Node Provisioning APIs?

  1. Provision Request API: The client calls this API to initiate a request to create the transaction objects needed to sign

  2. Get Delegation Objects API: The client calls this API to receive the transaction objects that are used to stake with the Ethereum staking contract

  3. Add Stake API: The client calls this API add more stake to an existing validator by retrieving the transaction objects used to stake with the Beacon deposit contract.

  4. Active Indexes API

    The client calls this API to receive indexes of all current active validators associated with an API key.

The Node Provisioning APIs allow clients to spin up new Ethereum nodes via APIs. The APIs can be used to create and receive the transaction objects that need to be signed using the Ethereum Staking contract. The APIs involved are

API Reference

Provisioning Request

POST /provision

Submits a provision request to our secure node systems to generate the required files based on the withdrawal address and the number of validators sent in the request.

The response will contain a UUID which can be used to track the provision request.

Query Parameters

Name
Type
Description

api_key*

String

API Key provided by Luganodes

Request Body

Name
Type
Description

attributes*

Object

Attributes Object

Attributes Object

Property
Description
Type

eth1Address*

Ethereum wallet address which will be used to create withdrawal credentials for the validator

String

validators*

Array of Validator Config Object

Array

compounding

true will return transaction objects for 0x02 type withdrawal credentials

false will return transactions objects for 0x01 type withdrawal credentials NOTE: 0x02 type validators can accommodate stake between 32 - 2048 ETH and are eligible for partial withdrawals. Default is false

Boolean

amountPerValidator

Stake amount that can be set for each validator with 0x02 type withdrawal credentials.

Default is 32 ETH

Number

Validator Config Object

The validators property in the request body accepts an array as its value. This enables easy migration from the previous staking provider. The array must possess only one object with count as the sole property of that object.

A maximum of 100 nodes can only be requested in a single Provision request. To do more, a new Provision request can be triggered

Provisioning Response Object

Property
Description
Type

uuid

Unique identifier of provisioning request

String

withdrawalKey

withdrawal key added to the validators

String

status

Provisioning request status - "CREATED"

String

clientId

Client identifier associated with api key

String

attributes

attributes object that is passed in the request's body

Object

created

Timestamp of the creation of the provision request

String

Get Delegation Objects

GET /validators

Fetch the transaction objects that need to be signed by sending the UUID received in the Provisioning Request API.

Query Parameters

Name
Type
Description

api_key*

String

API key provided by Luganodes

filters*

String

provisioning_request_uuid:YOUR UUID

page

Number

page number to be fetched

per_page

Number

Number of results per page

Validators are provisioned asynchronously, and the automation script processes provision requests, generating required files and transaction objects; hence, an empty array response is received until script execution is completed.

Paginated Response Object

Field
Description
Type

results

Array of ETH2 delegation objects

Array

page

Page of fetched results

Number

per_page

Number of results per page

Number

pages

Total number of pages

Number

total

Number of results in total

Number

Delegation Object

Field
Description
Type

id

Identifier of delegation object

String

address

Validator public key

String

attributes

Delegation attributes object

Object

amount

Amount currently delegated

String

created

Delegation object creation time

String

status

Delegation status enum

String

clientId

Partner identifier associated with api key

String

provisioning_request_uuid

Associated provisioning request unique identifier

String

Delegation Attributes Object

Field
Description
Type

count

Total number of validators in associated provisioning request

Number

index

Index of validator in associated provisioning request

Number

depositInput

Validator deposit transaction data

String

validatorKey

Validator public key

String

Delegation Status Enum

Field
Description

CREATED

Validator was provisioned through Luganodes API

DEPOSITED

Deposit is waiting to be seen by ETH2 chain

PENDING

Validator is in the queue waiting to go live

ACTIVE

Validator is participating and earning rewards

EXIT_SENT

Exit transaction for the validator is issued

EXITED

Validator has exited from the network

UNKNOWN

Error while fetching the status of validator

Add Stake Request

POST /validators/add-stake

Submits a request to generate the transaction objects required to stake with the beacon deposit contract. This request allows users to add more stake to only active validators having 0x02 type withdrawal credentials. If validator does not have 0x02 type withdrawal credentials, it can be switched through the Switch API.

Query Parameters

Name
Type
Description

api_key*

String

API Key provided by Luganodes

Request Body

Name
Type
Description

address*

String

Public address of validator

amount*

Number

Amount to be staked

Add stake operations can only be performed on active validators and cannot exceed a balance of 2048 ETH. Additionally. this operation can only be performed on 0x02 type validators.

Sample Request

Types

Add Stake Response Object

Property
Description
Type

address

Public address of validator

String

addStakeAmount

Amount which needs to be staked

Object

depositInput

Unsigned deposit object for executing the transaction on the Beacon deposit contract.

String

Get Active Indexes

GET /active-indexes

Fetch the indexes of all current active validators associated with an API key.

Query Parameters

Name
Type
Description

api_key*

String

API key provided by Luganodes

Response Object

Field
Description
Type

activeIndexes

Array of indexes of all active validators

Array

Last updated