Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/e2e-track
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.5
v0.6
4 changes: 4 additions & 0 deletions .github/workflows/smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ on:
jobs:
smoke:
name: Testnet Smoke Tests
# The v0.40 line intentionally targets the resolution-kernel train and
# does not support the currently deployed pre-train testnets. Its live
# coverage comes from the cross-repository E2E stack until they upgrade.
if: github.event_name != 'pull_request' || github.base_ref != 'v0.40-dev'
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,8 @@ COMMANDS:
delegation-info [validator] Get delegation info for a delegator with a validator
epoch-info [options] Get current/previous epoch info (--epoch <n> for specific)
validators [options] Show validator set with stake, primed status, and weight
active-validators [options] List all active validators
active-validators [options] List validators currently eligible for consensus duties
joined-validators [options] List every validator in the joined registry
quarantined-validators List all quarantined validators
banned-validators List all banned validators

Expand Down Expand Up @@ -551,7 +552,7 @@ EXAMPLES:
#
# Current Epoch: 5 (started 9h 30m ago)
# Next Epoch: in 14h 30m
# Validators: 33
# Active Validators: 33
# ...
#
# Previous Epoch: 4 (finalized)
Expand All @@ -563,7 +564,7 @@ EXAMPLES:
# Query specific epoch data
genlayer staking epoch-info --epoch 4

# List active validators
# List validators currently eligible for consensus duties
genlayer staking active-validators
# Output:
# {
Expand All @@ -575,6 +576,9 @@ EXAMPLES:
# ]
# }

# List every joined validator, including identities that are not currently active
genlayer staking joined-validators

# Show validator set table with stake, status, weight
genlayer staking validators
genlayer staking validators --all # Include banned validators
Expand Down
1 change: 1 addition & 0 deletions docs/api-references/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"estimate-fees": "estimate-fees",
"finalize": "finalize",
"finalize-batch": "finalize-batch",
"lifecycle": "lifecycle",
"vesting": "vesting",
"wallet": "wallet"
}
1 change: 1 addition & 0 deletions docs/api-references/configuration/network/add.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ alias Custom network alias
| | --rounds-storage &lt;addr&gt; | RoundsStorage contract address override | No | |
| | --appeals &lt;addr&gt; | Appeals contract address override | No | |
| | --chain-id &lt;n&gt; | Chain ID override | No | |
| | --explorer &lt;url&gt; | Block explorer URL for this custom network (custom networks do NOT inherit the base's explorer, to avoid misleading links) | No | |
| -h | --help | display help for command | No | |
2 changes: 1 addition & 1 deletion docs/api-references/finalize-batch.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: finalize-batch
---

Finalize a batch of idle transactions in a single call (public call)
Advanced recovery: manually finalize eligible idle transactions

### Usage

Expand Down
2 changes: 1 addition & 1 deletion docs/api-references/finalize.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: finalize
---

Finalize a transaction that is ready to be finalized (public call)
Advanced recovery: manually finalize an eligible transaction

### Usage

Expand Down
7 changes: 4 additions & 3 deletions docs/api-references/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ GenLayer CLI is a development environment for the GenLayer ecosystem. It allows
developers to interact with the protocol by creating accounts, sending
transactions, and working with Intelligent Contracts by testing, debugging, and
deploying them.
Version: `0.40.0-clarke.2`
Version: `0.40.0-clarke.4`

### Command List

Expand All @@ -29,12 +29,13 @@ Version: `0.40.0-clarke.2`
- `genlayer appeal` — Appeal a transaction by its hash
- `genlayer appeal-bond` — Show minimum appeal bond required for a transaction
- `genlayer trace` — Get execution trace for a transaction (return data, stdout, stderr, GenVM logs)
- `genlayer finalize` — Finalize a transaction that is ready to be finalized (public call)
- `genlayer finalize-batch` — Finalize a batch of idle transactions in a single call (public call)
- `genlayer staking` — Staking operations for validators and delegators
- `genlayer vesting` — Vesting operations for beneficiaries
- `genlayer wallet` — Manage the persistent browser-wallet (MetaMask) signing session
- `genlayer balances` — Show wallet + vesting balances and committed stake (read-only)
- `genlayer lifecycle` — Advanced: inspect raw stored/projected lifecycle and resolution action
- `genlayer finalize` — Advanced recovery: manually finalize an eligible transaction
- `genlayer finalize-batch` — Advanced recovery: manually finalize eligible idle transactions

---

Expand Down
21 changes: 21 additions & 0 deletions docs/api-references/lifecycle.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: lifecycle
---

Advanced: inspect raw stored/projected lifecycle and resolution action

### Usage

`$ genlayer lifecycle [options] <txId>`

### Arguments

- `<txId>`

### Options

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --timestamp &lt;timestamp&gt; | Evaluate lifecycle at a Unix timestamp | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| -h | --help | display help for command | No | |
9 changes: 6 additions & 3 deletions docs/api-references/staking/staking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,25 @@ Staking operations for validators and delegators

### Subcommands

- `genlayer wizard` — Interactive wizard to become a validator: funds the stake from your wallet or a vesting contract, and signs with a keystore key or a browser wallet (--wallet browser)
- `genlayer wizard` — Interactive wizard to become a validator: funds the stake from your wallet or a vesting contract, and signs with a keystore key or a browser wallet (--wallet browser). Every prompt can be supplied by a flag; pass --non-interactive to run scripted with zero prompts
- `genlayer validator-join` — Join as a validator by staking tokens
- `genlayer validator-deposit` — Make an additional deposit to a validator wallet
- `genlayer validator-exit` — Exit as a validator by withdrawing shares
- `genlayer validator-claim` — Claim validator withdrawals after unbonding period
- `genlayer validator-prime` — Prime a validator to prepare their stake record for the next epoch
- `genlayer prime-all` — Prime all validators that need priming
- `genlayer set-operator` — Change the operator address for a validator wallet
- `genlayer set-operator` — Rotate a validator operator using a possession proof
- `genlayer initiate-operator-transfer` — Start a two-step operator rotation for a validator wallet
- `genlayer complete-operator-transfer` — Finalise a pending operator rotation once its delay has elapsed
- `genlayer set-identity` — Set validator identity metadata (moniker, website, socials, etc.)
- `genlayer delegator-join` — Join as a delegator by staking with a validator
- `genlayer delegator-exit` — Exit as a delegator by withdrawing shares from a validator
- `genlayer delegator-claim` — Claim delegator withdrawals after unbonding period
- `genlayer validator-info` — Get information about a validator
- `genlayer delegation-info` — Get delegation info for a delegator with a validator
- `genlayer epoch-info` — Get current epoch and staking parameters
- `genlayer active-validators` — List all active validators
- `genlayer active-validators` — List validators currently eligible for consensus duties
- `genlayer joined-validators` — List every validator in the joined registry
- `genlayer quarantined-validators` — List all quarantined validators
- `genlayer banned-validators` — List all banned validators
- `genlayer validators` — List validators with stake, status, and optional explorer performance
Expand Down
2 changes: 1 addition & 1 deletion docs/api-references/staking/staking/active-validators.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: staking active-validators
---

List all active validators
List validators currently eligible for consensus duties

### Usage

Expand Down
25 changes: 25 additions & 0 deletions docs/api-references/staking/staking/complete-operator-transfer.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: staking complete-operator-transfer
---

Finalise a pending operator rotation once its delay has elapsed

### Usage

`$ genlayer staking complete-operator-transfer [options] [validator]`

### Arguments

- `[validator]`

### Options

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --validator &lt;address&gt; | Validator wallet address | No | |
| | --account &lt;name&gt; | Account to use (validator owner or pending operator) | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --wallet &lt;mode&gt; | Signing mode: 'keystore' or 'browser' (sign in MetaMask via a local bridge; forward the port for remote/SSH: ssh -L &lt;port&gt;:127.0.0.1:&lt;port&gt;). Defaults to the 'walletMode' config value, else 'keystore'. | No | |
| -h | --help | display help for command | No | |
29 changes: 29 additions & 0 deletions docs/api-references/staking/staking/initiate-operator-transfer.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: staking initiate-operator-transfer
---

Start a two-step operator rotation for a validator wallet

### Usage

`$ genlayer staking initiate-operator-transfer [options] [validator] [operator]`

### Arguments

- `[validator]`
- `[operator]`

### Options

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --validator &lt;address&gt; | Validator wallet address | No | |
| | --operator &lt;address&gt; | Incoming operator address (key must be in the local keystore) | No | |
| | --operator-account &lt;name&gt; | Keystore account holding the incoming operator key | No | |
| | --operator-password &lt;password&gt; | Password to unlock the incoming operator account | No | |
| | --account &lt;name&gt; | Account to use (must be validator owner) | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --wallet &lt;mode&gt; | Signing mode: 'keystore' or 'browser' (sign in MetaMask via a local bridge; forward the port for remote/SSH: ssh -L &lt;port&gt;:127.0.0.1:&lt;port&gt;). Defaults to the 'walletMode' config value, else 'keystore'. | No | |
| -h | --help | display help for command | No | |
18 changes: 18 additions & 0 deletions docs/api-references/staking/staking/joined-validators.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: staking joined-validators
---

List every validator in the joined registry

### Usage

`$ genlayer staking joined-validators [options]`

### Options

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --staking-address &lt;address&gt; | Staking contract address (overrides chain config) | No | |
| -h | --help | display help for command | No | |
4 changes: 3 additions & 1 deletion docs/api-references/staking/staking/set-operator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: staking set-operator
---

Change the operator address for a validator wallet
Rotate a validator operator using a possession proof

### Usage

Expand All @@ -19,6 +19,8 @@ Change the operator address for a validator wallet
| --- | --- | --- | :---: | --- |
| | --validator &lt;address&gt; | Validator wallet address (deprecated, use positional arg) | No | |
| | --operator &lt;address&gt; | New operator address (deprecated, use positional arg) | No | |
| | --operator-account &lt;name&gt; | Keystore account holding the incoming operator key | No | |
| | --operator-password &lt;password&gt; | Password to unlock the incoming operator account | No | |
| | --account &lt;name&gt; | Account to use (must be validator owner) | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
Expand Down
1 change: 1 addition & 0 deletions docs/api-references/staking/staking/validator-deposit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ Make an additional deposit to a validator wallet
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --force | Proceed even if self-stake is below the minimum required to become active | No | |
| | --wallet &lt;mode&gt; | Signing mode: 'keystore' or 'browser' (sign in MetaMask via a local bridge; forward the port for remote/SSH: ssh -L &lt;port&gt;:127.0.0.1:&lt;port&gt;). Defaults to the 'walletMode' config value, else 'keystore'. | No | |
| -h | --help | display help for command | No | |
1 change: 1 addition & 0 deletions docs/api-references/staking/staking/validator-info.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ Get information about a validator
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --staking-address &lt;address&gt; | Staking contract address (overrides chain config) | No | |
| | --json | Output raw validator info as machine-readable JSON | No | |
| | --debug | Show raw unfiltered pending deposits/withdrawals | No | |
| -h | --help | display help for command | No | |
4 changes: 3 additions & 1 deletion docs/api-references/staking/staking/validator-join.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ Join as a validator by staking tokens
| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --amount &lt;amount&gt; | Amount to stake (in wei or with 'eth'/'gen' suffix, e.g., '42000gen') | No | |
| | --operator &lt;address&gt; | Operator address (defaults to signer) | No | |
| | --operator &lt;address&gt; | Operator address for an imported local CLI account (defaults to signer) | No | |
| | --operator-password &lt;password&gt; | Password for the selected operator keystore (for non-interactive proof signing) | No | |
| | --account &lt;name&gt; | Account to use | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
| | --network &lt;network&gt; | built-in or custom network alias (see: genlayer network list) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --force | Proceed even if self-stake is below the minimum required to become active | No | |
| | --staking-address &lt;address&gt; | Staking contract address (overrides chain config) | No | |
| | --wallet &lt;mode&gt; | Signing mode: 'keystore' or 'browser' (sign in MetaMask via a local bridge; forward the port for remote/SSH: ssh -L &lt;port&gt;:127.0.0.1:&lt;port&gt;). Defaults to the 'walletMode' config value, else 'keystore'. | No | |
| -h | --help | display help for command | No | |
21 changes: 20 additions & 1 deletion docs/api-references/staking/staking/wizard.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ title: staking wizard

Interactive wizard to become a validator: funds the stake from your wallet or a
vesting contract, and signs with a keystore key or a browser wallet (--wallet
browser)
browser). Every prompt can be supplied by a flag; pass --non-interactive to run
scripted with zero prompts

### Usage

Expand All @@ -19,5 +20,23 @@ browser)
| | --skip-identity | Skip identity setup step | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --staking-address &lt;address&gt; | Staking contract address (overrides chain config) | No | |
| | --non-interactive | Run end-to-end with no prompts; every choice must come from a flag | No | |
| | --yes | Alias for --non-interactive (assume yes to confirmations) | No | |
| | --funding-source &lt;source&gt; | Where the self-stake is funded from: 'wallet' (default) or 'vesting' | No | |
| | --vesting-contract &lt;address&gt; | Vesting contract to fund from (with --funding-source vesting) | No | |
| | --operator &lt;address&gt; | Operator address for an imported local CLI account (0x...) | No | |
| | --create-operator &lt;name&gt; | Create a new operator account and export its keystore | No | |
| | --operator-same | Use the owner address as the operator | No | |
| | --operator-password &lt;password&gt; | Password for the exported operator keystore (with --create-operator) | No | |
| | --operator-keystore-out &lt;path&gt; | Output filename for the exported operator keystore | No | |
| | --amount &lt;amount&gt; | Self-stake amount (GEN, e.g. '42' or '42gen') | No | |
| | --moniker &lt;name&gt; | Validator display name (enables the identity step) | No | |
| | --logo-uri &lt;uri&gt; | Logo URI | No | |
| | --website &lt;url&gt; | Website URL | No | |
| | --description &lt;text&gt; | Description | No | |
| | --email &lt;email&gt; | Contact email | No | |
| | --twitter &lt;handle&gt; | Twitter handle | No | |
| | --telegram &lt;handle&gt; | Telegram handle | No | |
| | --github &lt;handle&gt; | GitHub handle | No | |
| | --wallet &lt;mode&gt; | Signing mode: 'keystore' or 'browser' (sign in MetaMask via a local bridge; forward the port for remote/SSH: ssh -L &lt;port&gt;:127.0.0.1:&lt;port&gt;). Defaults to the 'walletMode' config value, else 'keystore'. | No | |
| -h | --help | display help for command | No | |
3 changes: 2 additions & 1 deletion docs/api-references/transactions/receipt.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ Get transaction receipt by hash

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --status &lt;status&gt; | Transaction status to wait for (UNINITIALIZED, PENDING, PROPOSING, COMMITTING, REVEALING, ACCEPTED, UNDETERMINED, FINALIZED, CANCELED, APPEAL_REVEALING, APPEAL_COMMITTING, READY_TO_FINALIZE, VALIDATORS_TIMEOUT, LEADER_TIMEOUT, LEADER_REVEALING) | No | `FINALIZED` |
| | --wait-until &lt;stage&gt; | Wait for a materialized decision or finalization (decided, finalized) | No | `finalized` |
| | --retries &lt;retries&gt; | Number of retries | No | `100` |
| | --interval &lt;interval&gt; | Interval between retries in milliseconds (default: 5000) | No | |
| | --rpc &lt;rpcUrl&gt; | RPC URL for the network | No | |
| | --stdout | Print only stdout from the receipt | No | |
| | --stderr | Print only stderr from the receipt | No | |
| | --raw | Show full raw receipt data | No | |
| -h | --help | display help for command | No | |
3 changes: 2 additions & 1 deletion docs/api-references/vesting/validator/create.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ Create a vesting-backed validator

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --operator &lt;address&gt; | Operator address (deprecated, use positional arg) | No | |
| | --operator &lt;address&gt; | Operator address for an imported local CLI account (deprecated, use positional arg) | No | |
| | --amount &lt;amount&gt; | Amount to self-stake (in wei or with 'eth'/'gen' suffix) | No | |
| | --force | Proceed even if self-stake is below the minimum required to become active | No | |
| | --vesting &lt;address&gt; | Vesting contract address (overrides beneficiary lookup) | No | |
| | --account &lt;name&gt; | Account to use | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
Expand Down
1 change: 1 addition & 0 deletions docs/api-references/vesting/validator/deposit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Deposit more vesting-held tokens to a validator wallet
| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --amount &lt;amount&gt; | Amount to deposit (in wei or with 'eth'/'gen' suffix) | No | |
| | --force | Proceed even if self-stake is below the minimum required to become active | No | |
| | --validator-wallet &lt;address&gt; | Validator wallet address (deprecated, use positional arg) | No | |
| | --vesting &lt;address&gt; | Vesting contract address (overrides beneficiary lookup) | No | |
| | --account &lt;name&gt; | Account to use | No | |
Expand Down
3 changes: 2 additions & 1 deletion docs/api-references/vesting/validator/join.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ Create a vesting-backed validator

| Short | Long | Description | Required | Default |
| --- | --- | --- | :---: | --- |
| | --operator &lt;address&gt; | Operator address (deprecated, use positional arg) | No | |
| | --operator &lt;address&gt; | Operator address for an imported local CLI account (deprecated, use positional arg) | No | |
| | --amount &lt;amount&gt; | Amount to self-stake (in wei or with 'eth'/'gen' suffix) | No | |
| | --force | Proceed even if self-stake is below the minimum required to become active | No | |
| | --vesting &lt;address&gt; | Vesting contract address (overrides beneficiary lookup) | No | |
| | --account &lt;name&gt; | Account to use | No | |
| | --password &lt;password&gt; | Password to unlock account (skips interactive prompt) | No | |
Expand Down
2 changes: 1 addition & 1 deletion docs/delegator-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Note the `delegatorMinStake` - you need at least this amount.

## Step 5: Find a Validator

List all active validators:
List validators currently eligible for consensus duties:

```bash
genlayer staking active-validators
Expand Down
Loading
Loading