The Solayer command-line interface allows you to interact directly with Solayer’s core functionalities, including restaking and managing endogenous Actively Validated Services (AVS). Whether you’re a developer integrating Solayer into your project or an advanced user managing your stake, this CLI provides the tools you need.

Installation

1

Clone the repository

git clone git@github.com:solayer-labs/solayer-cli.git
2

Navigate to the project directory

cd solayer-cli
3

Install the dependencies

yarn install

Restaking

The restaking feature is at the heart of Solayer, allowing you to manage your stake efficiently. Here’s how to use it:

Basic Usage

To start the restaking CLI tool, use:

yarn restaking

This command will guide you through the process interactively.

Partner Restake

To restake native SOL through the partner API endpoint:

yarn restaking --action=partnerRestake --amount=<amount> --referrer=<referrer>
  • <amount>: The amount of native SOL to restake
  • <referrer>: Your partner wallet address for tracking referral stakes

Example:

yarn restaking --action=partnerRestake --amount=10 --referrer=ABcDefG123456789

Unrestake SOL

To withdraw restaked native SOL:

yarn restaking --action=unrestake --amount=<amount>
  • <amount>: Amount of SOL to unrestake

Example:

yarn restaking --action=unrestake --amount=5

Endogenous AVS

The endoAVS program allows you to create and manage endogenous Actively Validated Service instances.

Basic Usage

To start the endoAVS CLI tool, use:

yarn endoavs

This command will guide you through the available actions interactively.

Create EndoAVS

To create a new endogenous AVS:

yarn endoavs --action=create --avsName=<avsName> --avsTokenMintKeyPairPath=<avsTokenMintKeyPairPath>
  • <avsName>: Name of the new AVS
  • <avsTokenMintKeyPairPath>: Path to the keypair file for the AVS token mint

Example:

yarn endoavs --action=create --avsName=MyAVS --avsTokenMintKeyPairPath=./my-avs-token-mint-keypair.json

Delegate SOL

To delegate SOL to an endogenous AVS:

yarn endoavs --action=delegate --numberOfSOL=<numberOfSOL> --endoAvsAddress=<endoAvsAddress>

Undelegate SOL

To undelegate SOL from an endogenous AVS:

yarn endoavs --action=undelegate --numberOfSOL=<numberOfSOL> --endoAvsAddress=<endoAvsAddress>

Additional EndoAVS Operations

The CLI supports several other operations for managing your endoAVS:

  • Transfer Authority
  • Update AVS
  • Update/Set Metadata

Transfer Authority

Change the authority of your endoAVS:

yarn endoavs --action=transferAuthority --newAuthorityAddr=<newAuthorityAddr> --endoAvsAddress=<endoAvsAddress>

Update AVS

Update the name and URL of your endoAVS:

yarn endoavs --action=updateAvs --newName=<newName> --newUrl=<newUrl> --endoAvsAddress=<endoAvsAddress>

Update/Set Metadata

Update or set token metadata for your endoAVS:

yarn endoavs --action=updateMetadata --name=<name> --symbol=<symbol> --uri=<uri> --endoAvsAddress=<endoAvsAddress>

Technical Details

For those interested in the underlying mechanics, here are some key technical details:

  • The restaking program (sSo1iU21jBrU9VaJ8PJib1MtorefUV4fzC9GURa2KNn) manages the restaking process, including the restake and unrestake operations.
  • The EndoAVS program facilitates the creation and management of endogenous AVS instances.
  • Both programs involve interaction with multiple accounts, including token mints, user token accounts, vaults, and pools.

For more detailed information, refer to our Restaking Program IDL and EndoAVS Program IDL.