"
```
## Notes
* TLS and `lavavisor` are recommended for production deployments.
* Use the official **Supported Chains** list to ensure your `api-interface`/endpoints match each spec.
# Installation
Source: https://docs.krews.xyz/full-node-installation/sunrise
How to run a Sunrise full consensus node (mainnet sunrise-1). Includes dependencies, genesis, peers, gas prices, and start options.
This guide follows the official Sunrise documentation. Use mainnet values unless you intentionally target the testnet.
## Quick facts
* **Binary**: `sunrised`
* **Chain ID (mainnet)**: `sunrise-1`
* **Go toolchain**: 1.24.2 (min per docs)
* **Recommended min gas price**: `0.025uusdrise` (protects from spam)
* **Mainnet genesis**: `https://raw.githubusercontent.com/sunriselayer/network/main/sunrise-1/genesis.json`
## Install & initialize
Ubuntu 22.04 LTS is used in the official guide.
```bash theme={null}
# Install Go 1.24.x (example using tarball; or use your package manager)
wget https://go.dev/dl/go1.24.2.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.2.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' | tee -a ~/.profile
source ~/.profile
go version
```
```bash theme={null}
git clone https://github.com/sunriselayer/sunrise.git
cd sunrise
git checkout # Use the binary version appropriate for your sync height
make install # installs sunrised in $GOBIN
sunrised version
```
```bash theme={null}
export CHAIN_ID=sunrise-1
export MONIKER="my-node"
sunrised init "$MONIKER" --chain-id $CHAIN_ID
```
```bash theme={null}
rm -f $HOME/.sunrise/config/genesis.json
curl -L https://raw.githubusercontent.com/sunriselayer/network/main/sunrise-1/genesis.json -o $HOME/.sunrise/config/genesis.json
```
```bash theme={null}
sed -i.bak -e 's/^minimum-gas-prices *=.*/minimum-gas-prices = "0.025uusdrise"/' $HOME/.sunrise/config/app.toml
```
Seeds and peers are published in the **network** repo. Example (mainnet seeds):
```bash theme={null}
SEEDS=$(curl -sL https://raw.githubusercontent.com/sunriselayer/network/main/sunrise-1/seeds.txt | tr '\n' ',')
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" $HOME/.sunrise/config/config.toml
```
You can also populate `persistent_peers` similarly.
If connecting to a bridge node or running an archive, enable tx indexing and retain all block data:
```toml theme={null}
# config.toml
indexer = "kv"
# app.toml
min-retain-blocks = 0
```
**With Cosmovisor** (recommended for upgrades): follow the official Cosmovisor setup, then start.\
**Without Cosmovisor**:
```bash theme={null}
sunrised start
```
## Verify sync
```bash theme={null}
curl -s localhost:26657/status | jq .result.sync_info.catching_up
```
Mainnet endpoints and the latest release tags are listed under **Run a Sunrise Node → Networks → Mainnet**. Snapshots are often provided by third parties (e.g., Polkachu). Validate source and height before use.
# Introduction
Source: https://docs.krews.xyz/index
Krews is an independent validator and infrastructure team. We run high-performance Proof-of-Stake validators on multiple networks and publish open dashboards, explorers, and documentation so anyone can verify performance, uptime, and network health.
## Who We Are
Krews is a validator and infrastructure team formed by professionals who have worked together across multiple projects. We combine practical ops experience with dedicated, bare-metal infrastructure to deliver secure, reliable staking services. Our goal is simple: empower projects and communities with verifiable performance and transparent operations.
## Our Mission
* **Security First** — Enterprise-grade, dedicated servers (ECC memory, power and data redundancy) and a global sentry topology designed to minimize downtime and slash risk.
* **Reliability at Scale** — Bare-metal only, with carefully tuned setups for predictable performance under load.
* **Transparency** — We surface validator behavior, performance, and network health via public dashboards and explorers.
* **Sustainability** — We prioritize energy-efficient choices and practices to reduce carbon footprint without sacrificing performance.
## What We Do
* **24/7 Live Monitoring & Incident Response**\
Continuous monitoring with automated alerting and human on-call. We detect anomalies fast and remediate quickly.
* **Bare-Metal Infrastructure & Sentries**\
Dedicated servers only—no shared virtualization. Global sentry nodes harden network access and increase resilience.
* **Open Reporting**\
Public dashboards, explorers, and weekly status views so delegators and teams can audit us in real time.
* **Documentation & How-Tos**\
We maintain docs and runbooks so operators and delegators can follow clear, repeatable processes.
## Public Tools & Dashboards
Real-time validator uptime, missed proposals, performance metrics and decentralization analytics for Celestia Network.
Real-time Monad analytics with live consensus, validator insights and network metrics.
Live Story Protocol validator analytics, uptime tracking, missed-signature insights and full snapshot services.
Specialized tools and monitoring services for Sunrise Network, including uptime, node health and validator analytics.
Block explorer for RiseChain providing transaction tracking, validator insights and on-chain activity monitoring.
## Why Choose Krews
1. **Verifiable performance** — We publish metrics and history so anyone can check signing, missed blocks, and trends.
2. **Operational discipline** — Safe rollouts, redundancy, and quick rollback strategies to reduce operational risk.
3. **Clarity over hype** — Concrete dashboards, explorers, and docs instead of vague claims.
## **Supported Projects**
Celestia is a modular data availability network that separates consensus from execution, enabling scalable and efficient blockchain deployment.
Story Protocol is a decentralized framework for intellectual property, enabling creators to register, manage, and monetize their works on-chain.
Avail is a modular blockchain base layer that ensures high data availability, enabling developers to build scalable and interoperable applications.
Monad is a high-performance Layer 1 blockchain that enables fast and efficient execution for EVM-based applications.
Canton Network is a privacy-focused blockchain network that enables secure and interoperable workflows for regulated institutions.
Aligned is a decentralized network that verifies zero-knowledge proofs, improving scalability and efficiency for blockchains.
Initia is a next-gen Layer 1 blockchain designed for full-stack applications, combining modular infrastructure with seamless interoperability.
Sunrise is a specialized Data Availability (DA) layer that introduces Proof of Liquidity (PoL) to enhance scalability and liquidity for modular blockchains.
Espresso is a decentralized sequencing layer that delivers fast finality and enhances rollup interoperability using BFT consensus.
Aptos is a Layer-1 blockchain built with the Move language. It emphasizes safety and performance with features like parallel execution (Block-STM), low-latency confirmations, and a flexible fee model.
Dymension is a modular Layer 1 network that powers RollApps, enabling scalable and interconnected blockchain ecosystems.
Lava Network is a modular protocol that decentralizes blockchain data access, providing scalable and reliable RPC and API services for multi-chain ecosystems.
Lava Network is a modular protocol that decentralizes blockchain data access, providing scalable and reliable RPC and API services for multi-chain ecosystems.
# Overview
Source: https://docs.krews.xyz/networks/aligned
It's a proof verification layer developed on top of the EigenLayer using restaking and proof aggregation. This will enable cost-effective verification of any SNARK proof, leveraging Ethereum validator
[Website](https://alignedlayer.com/) | [Twitter](https://x.com/alignedlayer) | [Github](https://github.com/yetanotherco/aligned_layer) | [Resources](https://blog.alignedlayer.com/)
```API API theme={null}
https://alignedlayer-api.krews.xyz/
```
```RPC RPC theme={null}
https://alignedlayer-rpc.krews.xyz/
```
```Explorer Explorer theme={null}
https://explorer.krews.xyz/alignedlayer
```
## FAQ
Aligned Layer operates as an AVS (Actively Validated Service) on EigenLayer, and does not require a traditional wallet UI like Metamask. However, any wallet or tooling that supports Ethereum staking and EigenLayer restaking (e.g., MetaMask + EigenLayer frontend, or CLI tools) can be used to interact with the system.
Yes. Krews charges a 10% commission on staking rewards. This commission is applied to any earnings you receive from participating in proof verification through Aligned Layer. Rewards may be distributed based on the pay-per-verification or subscription-based staking model adopted by the network.
Aligned Layer does not have its own unbonding logic. If you are restaking ETH or other assets via EigenLayer, the unbonding period depends on EigenLayer’s unbonding parameters, which typically range from 7 to 10 days, but may vary depending on the staking configuration.
1. Stake ETH (or supported assets) via EigenLayer.
2. Opt in to Aligned Layer as an AVS.
3. Delegate to Krews Validator if selection is available.
4. Your stake contributes to securing Aligned’s proof verification layer.
5. You will start receiving rewards proportional to your stake, minus the 10% commission.
Rewards are distributed automatically through EigenLayer’s mechanisms. To increase your stake, you can manually restake additional ETH or ALIGN via EigenLayer’s dashboard. Krews does not currently offer auto-restake functionality for Aligned Layer.
Ensure your wallet has enough ETH to cover transaction fees when claiming or restaking.
# Overview
Source: https://docs.krews.xyz/networks/aptos
Aptos is a Layer-1 blockchain built with the Move language. It emphasizes safety and performance with features like parallel execution (Block-STM), low-latency confirmations, and a flexible fee model.
[Website](https://aptosnetwork.com/) | [Twitter](https://x.com/Aptos) | [Github](https://github.com/aptos-labs) | [Resources](https://aptos.dev/)
## FAQ
Aptos is a Layer-1, proof-of-stake blockchain that uses the Move programming language, designed for asset safety and expressive smart contracts. The network implements parallel execution (Block-STM) to improve throughput and latency.
Aptos supports multiple Move-compatible wallets. Common options include **Petra** (by Aptos Labs) and third-party wallets such as **Martian** and **Pontem**. Dapps integrate wallets via the Aptos Wallet Adapter standard.
Yes. Transactions pay gas in **APT**. Fees include execution/IO costs and storage fees; gas parameters are configurable via on-chain governance. Developers can specify gas price and limits; users typically just confirm in their wallet.
Aptos uses delegated staking. You can request to unlock at any time, but funds become **withdrawable only after the delegation pool’s lockup cycle ends**. The lockup duration is set by governance and can vary by pool/cycle; always check the pool’s current unlock date in the UI.
1. Install a supported wallet (e.g., Petra).
2. Open the official explorer or a partner interface that supports delegated staking.
3. Choose a validator / pool and delegate your APT.
4. Rewards accrue per protocol rules; when you unlock, you can withdraw after the pool’s lockup cycle ends.
# Overview
Source: https://docs.krews.xyz/networks/avail
Avail is a Substrate-based, modular data-availability layer designed to provide scalable, decentralized data storage for downstream blockchains. By separating settlement from data-availability, Avail enables developers to deploy rollups, DA chains, and other layer-2 systems with minimal overhead. As a validator service, Krews operates high-performance nodes on the Avail network, ensuring reliable block production, robust finality, and continuous uptime for our delegators.
[Website](https://www.availproject.org/) | [Twitter](https://x.com/AvailProject) | [Github](https://github.com/availproject) | [Resources](https://blog.availproject.org/)
## FAQ
Any wallet that supports Substrate-based networks and has Avail configuration will work. Common options include Talisman, Polkawallet, SubWallet, or Polkadot.js (configured for Avail).
Yes. Krews charges a 10% commission on staking rewards. The APR displayed on your dashboard reflects the network’s gross yield before deducting Krews’s commission.
Avail enforces a **28-day unbonding period**. When you decide to unstake, your AVAIL tokens enter a 28-day lockup during which they do not earn rewards and cannot be transferred. After 28 days, you are free to withdraw or redelegate.
1. Install and configure a compatible wallet (e.g., Talisman) with Avail’s network endpoint.
2. Transfer AVAIL tokens into your staking account.
3. Visit the Avail Staking Dashboard (e.g., [https://staking.avail.tools/#/validators](https://staking.avail.tools/#/validators)).
4. Connect your wallet and search for “Krews Validator” under the validator list.
5. Submit a nomination (bond) transaction to delegate your AVAIL to Krews.
6. Once the next era is reached, your stake becomes active, and you start earning rewards (minus our 10 % commission).
You may claim rewards manually via the Staking Dashboard by clicking “Withdraw Rewards” under your account’s staking page. To compound your yield, use the “Bond Extra” function to re-delegate the claimed AVAIL in a single transaction. Krews does not currently offer an auto-restake (REstake) service on Avail; all restaking must be performed manually.
Always ensure you have enough AVAIL in your wallet to cover transaction fees. If you plan to withdraw or redelegate, account for the 28-day unbonding lock-up period before your funds become available again.
# Overview
Source: https://docs.krews.xyz/networks/celestia
Celestia is a modular blockchain network that provides a dedicated data availability (DA) layer for scalable rollups and modular blockchains. By separating consensus and data availability from execution, Celestia enables developers to deploy sovereign rollups with minimal setup and security overhead.
[Website](https://celestia.org/) | [Twitter](https://x.com/celestia) | [Github](https://github.com/celestiaorg) | [Resources](https://blog.celestia.org/)
## FAQ
Wallets commonly used with Cosmos SDK–based chains work with Celestia. Official guides cover **Keplr** and **Leap** (Gem is also documented). To delegate/stake, connect your wallet to a supported staking interface such as the Celestia explorers.guru portal.
See: wallet & staking docs and the validator portal.
Transactions pay gas in **TIA**. Validator commissions are set by each validator and shown in staking dashboards; check the validator’s profile before delegating.
Celestia currently enforces a **21-day unbonding period**. During unbonding, TIA is locked and does not earn rewards. (An upgrade proposal/roadmap item targets \~14 days, but mainnet parameters today remain 21 days.)
1. Install a supported wallet (e.g., Keplr or Leap).
2. Fund your wallet with **TIA**.
3. Open a staking portal (e.g., explorers.guru Celestia validators), pick a validator, and **Delegate**.
4. Confirm in your wallet to start earning per protocol rules.
Rewards can be claimed in your wallet or via the staking UI. Auto-compounding is **not automatic by default**, but many validators enable it via **REStake** using Cosmos **Authz**—you can opt-in and revoke at any time.
# Overview
Source: https://docs.krews.xyz/networks/dymension
Dymension is a settlement Layer-1 for modular blockchains called RollApps. It connects users and liquidity to RollApps and provides tooling for launching, settling, and operating application-specific chains.
[Website](https://dymension.xyz/) | [Twitter](https://x.com/dymension) | [Github](https://github.com/dymensionxyz) | [Resources](https://docs.dymension.xyz/)
## FAQ
Dymension is a delegated proof-of-stake L1 that powers **RollApps**—application-specific rollups that connect to the Dymension Hub for security, user access, and liquidity.
On the Hub, Cosmos wallets like **Keplr** and **Leap** are commonly used (via the official Portal UI). Individual RollApps may support additional wallets depending on their stack; check each RollApp’s docs.
Hub transactions pay gas in **DYM**. RollApps set their own fee policies; consult each RollApp’s documentation.
The unbonding period on Dymension is **21 days**. During unbonding, tokens are locked and do not generate rewards.
Use the Dymension Portal or a supported wallet to select a validator and delegate. Rewards accrue per protocol rules; after you start an unstake, tokens become withdrawable when the 21-day unbonding ends.
# Overview
Source: https://docs.krews.xyz/networks/espresso
Espresso is a global confirmation network and shared sequencer for rollups. Using the HotShot BFT consensus, it provides fast, credible confirmations and optional decentralized sequencing/DA to improve security and cross-chain composability.
[Website](https://www.espressosys.com/) | [Twitter](https://x.com/EspressoSys) | [Github](https://github.com/EspressoSystems) | [Resources](https://docs.espressosys.com/)
## FAQ
Espresso is a global confirmation layer and shared sequencer for rollups. It leverages the HotShot BFT consensus so rollup transactions can be credibly confirmed within seconds, providing early, shared certainty before L1 finality.
Yes. Espresso is live as “Mainnet 0,” a production phase with a preregistered operator set and a roadmap toward broader proof-of-stake participation.
Wallets depend on the integrated rollup and release. Most Espresso-enabled rollups use Ethereum-compatible wallets (e.g., MetaMask); operator/integration flows may also interact with L1 contracts.
Builders deposit ETH into an L1 fee-token contract to pay HotShot data-processing fees; HotShot tracks working balances. Withdrawals are planned in a future release. Users otherwise pay gas on the chains they interact with.
Use the persistent **Decaf** testnet and the official integration guides in the docs. Start on testnet, then follow release-specific mainnet instructions as they evolve.
# Overview
Source: https://docs.krews.xyz/networks/initia
Initia is a Cosmos‑based Layer‑1 with enshrined modularity: an Interwoven L1 paired with native rollups and tooling. By unifying execution, networking, and economics, Initia enables developers to launch interoperable app‑chains (“Minitias”) while the L1 provides shared security, routing, and liquidity primitives.
[Website](https://initia.xyz/) | [Twitter](https://x.com/initia) | [Github](https://github.com/initia-labs) | [Resources](https://docs.initia.xyz/)
## FAQ
You can use the official Initia App to manage assets and staking across the ecosystem, as well as Cosmos‑compatible wallets like Leap, Keplr, or Cosmostation. Feature coverage can differ by wallet, so prefer the Initia App or Leap for the most complete experience.
Initia currently uses a 21‑day unbonding period on the L1. After initiating an undelegation, your INIT becomes withdrawable only after the 21‑day window completes.
1. Connect a supported wallet or the Initia App to the interwoven‑1 network (mainnet).
2. Fund your address with INIT and open the staking/validators page.
3. Select a validator, review commission and uptime, then submit a Delegate transaction.
4. To switch validators without unbonding, use Redelegate.
Validator commissions are set per operator and displayed in wallets/dashboards. Network gas fees apply. Minimum delegation is determined by the interface you use (wallets often enforce small thresholds for practicality).
Claim staking rewards in your wallet or the Initia App. To compound, delegate the claimed INIT again. Keep a small balance to cover gas when claiming or redelegating.
# Overview
Source: https://docs.krews.xyz/networks/iota
IOTA is a programmable blockchain platform with an EVM-compatible smart contract chain (IOTA EVM) live on mainnet and an evolving Layer 1 architecture focused on performance, safety, and real-world adoption.
[Website](https://www.iota.org/) | [Twitter](https://x.com/iota) | [Github](https://github.com/iotaledger) | [Resources](https://blog.iota.org/)
## FAQ
IOTA is a programmable blockchain platform designed for internet-scale applications. Today, the ecosystem includes **IOTA EVM**—a fully EVM-compatible smart contract chain running on the IOTA mainnet—and a broader roadmap that brings improved scalability, developer ergonomics, and mainstream-friendly tooling to Layer 1.
For **IOTA EVM**, you can use standard EVM wallets such as **MetaMask**. Developer quickstarts cover connecting a wallet, funding testnets, and deploying contracts. For the evolving Layer 1, follow the official wallet and tooling guides referenced from IOTA’s documentation and blog.
On **IOTA EVM**, transactions pay gas in **IOTA** (MIOTA). Typical fees are low (often under a cent) and shown in the network explorer’s gas tracker. Fee behavior on the Layer 1 will follow protocol specifications as they evolve; check the official docs for the latest parameters.
1. Review the **IOTA EVM Quickstart** (wallet setup, RPC, bridge/faucet for testnets).
2. Explore official docs for SDKs, CLI tools, and examples.
3. Use the **IOTA EVM Explorer** to verify contracts, track transactions, and inspect gas usage.
4. Monitor the IOTA blog and GitHub for updates to the Layer 1 and Move-based tooling.
Official announcements appear on the **IOTA Blog** and X (Twitter). On-chain activity (transactions, contracts, gas) for IOTA EVM is visible in the public **Blockscout explorer**.
# Overview
Source: https://docs.krews.xyz/networks/lava
Lava is a modular, decentralized data-access network (RPC & APIs). A Cosmos SDK appchain coordinates providers that serve relays off-chain for performance, while payments/quality-of-service and pairing are handled on-chain.
[Website](https://www.lavanet.xyz/) | [Twitter](https://x.com/lavanetxyz) | [Github](https://github.com/lavanet) | [Resources](https://docs.lavanet.xyz/)
## FAQ
Lava is a Cosmos-SDK–based network that decentralizes blockchain data access. Providers serve RPC/API relays via an off-chain protocol; staking, pairing, payments, and incentives are settled on-chain.
Common Cosmos wallets include **Keplr** and **Leap** (Ledger supported). You can add the Lava chain directly in these wallets per the official docs.
On-chain transactions pay gas in **LAVA**. For RPC/API usage, developers buy on-chain subscription plans measured in **Compute Units (CU)**; rewards are distributed to providers based on relays served and QoS.
The staking unbonding period is currently \~**21 days** (Cosmos staking module). Parameters can change via governance; always check current chain parameters.
Add the Lava chain in a supported wallet (e.g., Keplr/Leap), choose a validator, and delegate. Rewards accrue per protocol rules; after starting an unstake, funds become withdrawable once the unbonding period ends.
# Overview
Source: https://docs.krews.xyz/networks/story
Story Protocol is a modular, EVM-first blockchain focused on programmable intellectual property (IP). By separating execution from staking with Cosmos-style modules, Story lets creators register IP on-chain, set licensing terms, and monetize usage while validators secure the network. As a validator service, Krews runs high-availability infrastructure on Story to deliver reliable performance and continuous uptime for our delegators.
[Website](https://www.story.foundation/) | [Twitter](https://x.com/StoryProtocol) | [Github](https://github.com/storyprotocol) | [Resources](https://www.story.foundation/blog)
## FAQ
Story is EVM-compatible. Any modern EVM wallet works via WalletConnect—common choices include MetaMask, Rabby, Rainbow, and Coinbase Wallet. Hardware wallets (e.g., Ledger) can be used through these wallets’ EVM integrations. If your wallet needs network parameters, add Story from Chainlist or the official docs.
Yes. Krews charges a 10% commission on staking rewards. The APR you see on dashboards reflects the network’s gross yield before deducting Krews’s commission.
Story uses a **14-day unbonding period**. After you initiate unstake, tokens wait \~14 days without accruing rewards. Once unbonded, withdrawals are processed through a queue (processed in batches each block). When your request is executed, you can withdraw the tokens to your wallet.
1. Connect an EVM wallet (e.g., MetaMask).
2. Acquire IP tokens and fund the wallet with a small amount for fees.
3. Open the official **Story Staking Dashboard**: [https://staking.story.foundation/](https://staking.story.foundation/)
4. Find “Krews” in the validator list and open the validator page.
5. Choose your staking type (flexible or fixed, if available for your token type) and amount.
6. Confirm the transaction in your wallet. Rewards start accruing after your stake is active.
Claim rewards from the Staking Dashboard when available under your account/validator position. To compound, delegate claimed IP back to Krews in a new stake transaction. If you plan to unstake, remember the **14-day unbonding** applies before you can withdraw.
Keep a small IP balance for network fees. Some fixed-term staking options restrict unstaking until the term ends; flexible staking can be unstaked anytime but still observes the 14-day unbonding before withdrawal.
# Overview
Source: https://docs.krews.xyz/networks/sunrise
Sunrise is a next‑generation Layer‑1 that unifies a high‑throughput Data Availability layer with a native Liquidity Hub. By integrating Proof‑of‑Liquidity (PoL) and fee abstraction, Sunrise enables rollups and app‑chains to access shared liquidity, flexible gas payments, and scalable off‑chain blobs for data‑intensive use cases.
[Website](https://sunriselayer.io/) | [Twitter](https://x.com/SunriseLayer) | [Github](https://github.com/sunriselayer) | [Resources](https://docs.sunriselayer.io/)
## FAQ
Sunrise works with Cosmos SDK–compatible wallets such as Keplr, Leap, or Cosmostation. You can also use the Sunrise App to delegate or manage locked assets as described in the docs. Availability of features (governance, staking views, etc.) may vary by wallet.
Sunrise enforces a 21‑day unbonding period. After submitting an undelegation, your RISE or vRISE remains locked and non‑transferable for 21 days; once the period ends, funds become withdrawable.
1. Install a Cosmos‑compatible wallet (e.g., Keplr or Leap) and connect it to the Sunrise network or open the Sunrise App.
2. Acquire RISE (or manage vRISE if applicable) and choose a validator from the staking interface.
3. Submit a Delegate transaction and keep a small balance for gas.
4. To change validators without waiting, use Redelegate (subject to chain rules).
Yes. Each validator sets a commission rate on staking rewards. Review a validator’s commission and performance before delegating. Network gas fees also apply to transactions.
Rewards can be claimed from your wallet or the Sunrise App’s staking page. To compound, claim rewards and delegate them again to your chosen validator. Always leave a small amount of RISE for gas.
# Installation (Holesky/Mainnet)
Source: https://docs.krews.xyz/node-installation-mainnet/aligned
Run the Aligned Layer Operator binary using the official steps. This guide is trimmed to the essential build, configure, and start sequence.
**Note:** You must be [**whitelisted**](https://docs.google.com/forms/d/e/1FAIpQLSdH9sgfTz4v33lAvwj6BvYJGAeIshQia3FXz36PFfF-WQAWEQ/viewform) to operate on Aligned. Current operator version in docs: `v0.19.1` ([check docs for updates](https://github.com/yetanotherco/aligned_layer/releases/tag/v0.19.1)).
## 1) Requirements
* Linux x86\_64
* Go, Rust, Foundry
* Build deps: `pkg-config`, `libssl-dev`, `g++`
| **Component** | **Specification** |
| ------------- | ----------------- |
| **CPU** | 16 cores |
| **Memory** | 32 GB RAM |
| **Bandwidth** | 1 Gbps |
| **Storage** | 256 GB disk space |
## 2) Clone and build
```bash theme={null}
git clone https://github.com/yetanotherco/aligned_layer.git --branch v0.19.1
cd aligned_layer
# Install Foundry
make foundry_install && foundryup
# Build operator (testnet example: Holesky/Hoodi)
make operator_build ENVIRONMENT=testnet
# For mainnet build:
# make operator_build ENVIRONMENT=mainnet
```
## 3) Configure your operator
Provide RPC endpoints, keys, and strategy-specific settings in your config file(s). See the docs for the required fields and supported strategies list.
## 4) Register the operator
Follow the registration step in docs (requires whitelisting and EigenLayer operator registration).
## 5) Start the operator
```bash theme={null}
# From the repo root, using your config
./operator/build/aligned-operator --config
```
(Optional) Run with systemd as shown in the docs for persistence.
## 6) Check version & status
```bash theme={null}
./operator/build/aligned-operator --version
# Telemetry (replace ):
# Mainnet
curl https://mainnet.telemetry.alignedlayer.com/versions/
# Holesky
curl https://holesky.telemetry.alignedlayer.com/versions/
```
# Installation
Source: https://docs.krews.xyz/node-installation-mainnet/story
Set up a Story mainnet full node (execution: story-geth, consensus: story) with Cosmovisor-based management.
## System requirements (official)
| Component | Recommended (Mainnet) |
| --------- | --------------------- |
| CPU | Dedicated **8 cores** |
| RAM | **32 GB** |
| Disk | **500 GB NVMe** |
| Bandwidth | **25 MBit/s** |
* Ubuntu 22.04 LTS
* Open ports: **30303** (Geth P2P), **8545/8546** (JSON-RPC/WS, optional), **26656/26657** (consensus P2P/RPC), **26660** (Prometheus)
```bash theme={null}
sudo apt update && sudo apt install -y curl git unzip wget jq make build-essential lz4
```
```bash theme={null}
# Download latest mainnet binary
cd $HOME
curl -L -o story-geth https://github.com/piplabs/story-geth/releases/latest/download/geth-linux-amd64
chmod +x story-geth && sudo mv story-geth /usr/local/bin/story-geth
# Verify
story-geth version
```
```bash theme={null}
# Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.6.0
cosmovisor version
# Download latest story binary
cd $HOME
curl -L -o story https://github.com/piplabs/story/releases/latest/download/story-linux-amd64
chmod +x story && sudo mv story /usr/local/bin/story
story version
```
```bash theme={null}
# Initialize consensus store for mainnet
cosmovisor init $(which story)
cosmovisor run init --network story --moniker "$HOSTNAME"
```
```bash theme={null}
# story-geth
sudo tee /etc/systemd/system/story-geth.service > /dev/null < /dev/null <
```bash theme={null}
# Execution (JSON-RPC): latest block
curl -s -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545
# Consensus (Tendermint RPC): status & peers
curl -s localhost:26657/status | jq
curl -s localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
```
For versions and release notes, always consult the official **Story** release pages before installing/upgrading.
# Installation
Source: https://docs.krews.xyz/node-installation-testnet/story
Set up a Story Aeneid testnet full node (execution: story-geth with --aeneid, consensus: story --network aeneid).
## System requirements (baseline)
Use the **same baseline** as mainnet for best compatibility:
| Component | Recommended (Aeneid baseline) |
| --------- | ----------------------------- |
| CPU | Dedicated **8 cores** |
| RAM | **32 GB** |
| Disk | **500 GB NVMe** |
| Bandwidth | **25 MBit/s** |
Resource usage on testnet can be lower, but keeping mainnet-class specs avoids sync issues and reorg sensitivity during testnet events.
* Ubuntu 22.04 LTS
* Open ports: **30303** (Geth P2P), **8545/8546** (JSON-RPC/WS, optional), **26656/26657** (consensus P2P/RPC), **26660** (Prometheus)
```bash theme={null}
sudo apt update && sudo apt install -y curl git unzip wget jq make build-essential lz4
```
```bash theme={null}
cd $HOME
curl -L -o story-geth https://github.com/piplabs/story-geth/releases/latest/download/geth-linux-amd64
chmod +x story-geth && sudo mv story-geth /usr/local/bin/story-geth
story-geth version
```
```bash theme={null}
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.6.0
cosmovisor version
cd $HOME
curl -L -o story https://github.com/piplabs/story/releases/latest/download/story-linux-amd64
chmod +x story && sudo mv story /usr/local/bin/story
story version
```
```bash theme={null}
# Consensus store
cosmovisor init $(which story)
cosmovisor run init --network aeneid --moniker "$HOSTNAME"
```
```bash theme={null}
# story-geth (Aeneid)
sudo tee /etc/systemd/system/story-geth.service > /dev/null < /dev/null <
```bash theme={null}
# Execution
curl -s -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:8545
# Consensus
curl -s localhost:26657/status | jq
curl -s localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
```
Use separate data directories/wallets between mainnet and Aeneid. The `--aeneid` flag reconfigures **story-geth** to the testnet with different bootnodes and network IDs.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/aligned
Upgrade the Aligned Layer operator by checking out the target tag and rebuilding.
You must be **authorized/whitelisted** to operate. Follow the exact tag required by the network announcement.
## Rebuild to a target version
```bash theme={null}
# From the repo root
cd ~/aligned_layer || git clone https://github.com/yetanotherco/aligned_layer.git ~/aligned_layer && cd ~/aligned_layer
# Fetch and checkout the target tag (example: v0.19.1; replace as announced)
git fetch --tags
git checkout v0.19.1
# Build (example: testnet)
make operator_build ENVIRONMENT=testnet
# For mainnet:
# make operator_build ENVIRONMENT=mainnet
```
## Restart
```bash theme={null}
# If you used systemd
sudo systemctl restart aligned-operator && journalctl -u aligned-operator -f -o cat
# Or run the binary directly with your config
./operator/build/aligned-operator --config
```
## Verify
```bash theme={null}
# Local version
./operator/build/aligned-operator --version
```
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/aptos
Upgrade an Aptos Public Fullnode (PFN) installed via Docker or from source. Minimal, correct steps with verification links.
These steps apply to **PFN** on **mainnet** or **testnet**. Your network is determined by the **docker image tag** or **git branch** and the **genesis/waypoint** files in your config.
## A) Docker-based PFN
```bash theme={null}
# 1) Pull the new image
docker pull aptoslabs/validator:mainnet # use :testnet for testnet
# 2) Stop + remove the old container (adjust the name if different)
docker stop aptos-pfn || true && docker rm aptos-pfn || true
# 3) Start with the SAME volume and your config (fullnode.yaml + genesis/waypoint)
docker run -d --name aptos-pfn -v $(pwd):/opt/aptos/etc -p 8080:8080 -p 9101:9101 aptoslabs/validator:mainnet aptos-node -f /opt/aptos/etc/fullnode.yaml
```
## B) Source-based PFN
```bash theme={null}
# 1) Update source
cd aptos-core || git clone https://github.com/aptos-labs/aptos-core.git && cd aptos-core
git fetch --tags
git checkout origin/mainnet # or origin/testnet
# 2) Rebuild
cargo build -p aptos-node --release
# 3) Restart your service/process using the new binary
# e.g., systemd: systemctl restart aptos-pfn
```
## Verify
* **REST**: `curl -s http://127.0.0.1:8080/v1 | jq` (returns chain\_id and ledger info)
* **Metrics**: `curl -s http://127.0.0.1:9101/metrics | head`
* **NHC** (optional): follow the Node Health Checker guide above.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/avail
Upgrade an Avail full node (Mainnet or Turing) installed via pre-built binaries, Docker, or from source. Minimal, clear steps with verification and links to official docs.
This page covers **full/RPC nodes**. Validator operators should consider the **Slow & Safe Upgrade** (rolling replacement with key rotation) described in the official guide.
## Before you start
* Check the latest version and [**release notes**](https://github.com/availproject/avail/releases/) on the GitHub Releases page.
* Plan a maintenance window if you expose RPC to users.
* The procedure is identical for **Mainnet** and **Turing**; your `--chain` flag selects the network.
## A) Upgrade — Pre-built binary
Replace the existing `avail-node` binary with the latest release, then restart the service.
```bash theme={null}
# 1) Stop the service
sudo systemctl stop avail.service
# 2) Download & extract the latest binary (choose the right file for your OS/arch)
cd /usr/local/bin
curl -L -O https://github.com/availproject/avail/releases/download//.tar.gz
tar -xzvf .tar.gz
# 3) Replace the old binary (keep a backup just in case)
sudo mv avail-node avail-node.bak || true
sudo mv ./avail-node /usr/local/bin/avail-node
sudo chmod +x /usr/local/bin/avail-node
# 4) Start and follow logs
sudo systemctl start avail.service
journalctl -u avail.service -f -o cat
```
Some packages/bundles name the binary `data-avail`. If that's your case, replace `avail-node` in the commands above with `data-avail`.
## B) Upgrade — Docker
```bash theme={null}
# 1) Pull the new image tag
docker pull availj/avail:
# 2) Stop & remove the existing container (name it if you didn't before)
docker stop avail && docker rm avail
# 3) Start a new container with the same volumes/ports
docker run --name avail --restart=on-failure -d -v /root/avail/node-data:/da/node-data -p 9944:9944 -p 30333:30333 docker.io/availj/avail: --chain mainnet -d ./output --name ""
# For Turing, switch --chain to `turing` (or provide an explicit Turing chainspec path if needed)
```
## C) Upgrade — Build from source
```bash theme={null}
# 1) Ensure Rust toolchain is installed
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
# 2) Update sources and build
cd /opt/avail || git clone https://github.com/availproject/avail.git /opt/avail && cd /opt/avail
git fetch --tags
git checkout
cargo build --release --locked
# 3) Replace the running binary and restart
sudo systemctl stop avail.service
sudo install -m 0755 ./target/release/avail-node /usr/local/bin/avail-node
sudo systemctl start avail.service
journalctl -u avail.service -f -o cat
```
## Verify the upgrade
* **Logs** show the new version near startup (e.g., `version 2.x.x-`).
* **Telemetry**: find your node by `--name` on the correct network tab and confirm the reported version.
* **RPC** (if enabled): `curl http://127.0.0.1:9944 -H 'Content-Type: application/json' -d '{"id":1,"jsonrpc":"2.0","method":"system_version","params":[]}'`
After protocol/runtime upgrades, nodes running an **outdated client** may fail to sync or build blocks. Keep up with release announcements and upgrade promptly.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/celestia
Safely upgrade celestia-node and celestia-app, including Cosmovisor-managed consensus upgrades.
## celestia-node (DA) upgrade
```bash theme={null}
# Stop your service (example name)
sudo systemctl stop celestia-light || true
sudo systemctl stop celestia-full || true
sudo systemctl stop celestia-bridge || true
# Update from source
cd $HOME/celestia-node || { cd $HOME; rm -rf celestia-node; git clone https://github.com/celestiaorg/celestia-node.git; cd celestia-node; }
git fetch --all --tags
git checkout $(git describe --tags --abbrev=0)
make node-install
celestia version
```
```bash theme={null}
sudo systemctl start celestia-light || true
sudo systemctl start celestia-full || true
sudo systemctl start celestia-bridge || true
journalctl -u celestia-light -f -o cat || true
```
## celestia-app (consensus) upgrade with Cosmovisor
```bash theme={null}
# As per Cosmos SDK tooling (see official docs)
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.6.0
cosmovisor version
```
```bash theme={null}
# Build or download new celestia-appd and place under the target upgrade dir
# Example layout:
mkdir -p $HOME/.celestia-app/cosmovisor/upgrades//bin
cp $(which celestia-appd) $HOME/.celestia-app/cosmovisor/upgrades//bin/
```
Use your chain’s **governance proposal** (if applicable) or the advised block **height/time** from Celestia release notes. Cosmovisor will switch binaries automatically when the upgrade triggers.
```bash theme={null}
journalctl -u cosmovisor -f -o cat
# If needed, stop services and revert to the previous binary placed under `genesis/bin`.
```
Always confirm the **target version / upgrade height** from the official release notes and the network announcements before scheduling upgrades.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/dymension
Upgrade the Dymension Hub full node by building the target tag and restarting.
Confirm the **latest mainnet tag** from the official repository or docs before upgrading.
## Build the target version
```bash theme={null}
cd ~/dymension || git clone https://github.com/dymensionxyz/dymension.git ~/dymension && cd ~/dymension
git fetch --tags
git checkout v3.2.0 # replace with the announced version
make install # installs 'dymd' to $GOBIN
dymd version --long
```
## Restart
```bash theme={null}
# If using systemd
sudo systemctl restart dymd
journalctl -u dymd -f -o cat
# Or run in foreground
dymd start
```
## Verify
```bash theme={null}
curl -s localhost:26657/status | jq '.result.sync_info'
```
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/espresso
Safe upgrade procedure for Espresso sequencer nodes on the Decaf testnet. Covers image tags, backups, health checks, and rollback.
Open the Decaf **release** page and note the latest **Docker image tag** for the sequencer. For example, the current tag is:
```bash theme={null}
ghcr.io/espressosystems/espresso-sequencer/sequencer:20251106-patch1
```
Also check for any changes to **endpoints**, **genesis file**, or **staking rules**.
Back up your mounted directories (adjust paths if different):
```bash theme={null}
sudo systemctl stop docker || true
# or just stop the container:
docker stop espresso-sequencer || true
# back up sqlite store (non-DA) or any local data
rsync -aH /opt/espresso/store/ /opt/espresso/backup/store-$(date +%F)/
# back up key material
rsync -aH /opt/espresso/keys/ /opt/espresso/backup/keys-$(date +%F)/
```
If you operate a **DA node**, back up your **PostgreSQL** database per your DB’s backup procedure.
```bash theme={null}
export NEW_TAG="20251106-patch1" # replace with the tag from release notes
docker pull ghcr.io/espressosystems/espresso-sequencer/sequencer:${NEW_TAG}
docker pull ghcr.io/espressosystems/espresso-sequencer/staking-cli:main
```
Confirm your environment is still valid for **Decaf** (notably, the **genesis file** and **endpoints**):
```bash theme={null}
export ESPRESSO_SEQUENCER_GENESIS_FILE="/genesis/decaf.toml"
export ESPRESSO_SEQUENCER_CONFIG_PEERS="https://cache.decaf.testnet.espresso.network"
export ESPRESSO_SEQUENCER_ORCHESTRATOR_URL="https://orchestrator-UZAFTUIMZOT.decaf.testnet.espresso.network/"
export ESPRESSO_SEQUENCER_CDN_ENDPOINT="cdn.decaf.testnet.espresso.network:1737"
export ESPRESSO_STATE_RELAY_SERVER_URL="https://state-relay.decaf.testnet.espresso.network"
```
Then restart the container using the **new tag**:
```bash theme={null}
docker rm -f espresso-sequencer || true
docker run -d --name espresso-sequencer --restart unless-stopped -v /opt/espresso/store:/mount/sequencer/store -v /opt/espresso/keys:/mount/sequencer/keys:ro -e ESPRESSO_SEQUENCER_L1_PROVIDER -e ESPRESSO_SEQUENCER_L1_WS_PROVIDER -e ESPRESSO_SEQUENCER_CONFIG_PEERS -e ESPRESSO_SEQUENCER_ORCHESTRATOR_URL -e ESPRESSO_SEQUENCER_CDN_ENDPOINT -e ESPRESSO_STATE_RELAY_SERVER_URL -e ESPRESSO_SEQUENCER_GENESIS_FILE ghcr.io/espressosystems/espresso-sequencer/sequencer:${NEW_TAG} sequencer -- http -- catchup -- status
```
* Watch logs: `docker logs -f espresso-sequencer` and ensure the node **joins** and **syncs**.
* Confirm **/status** and/or metrics are exposed on your configured API port.
* Check **libp2p** connectivity (UDP port reachable, peers listed).
```bash theme={null}
export PREV_TAG="202510XX-some-previous" # your last known good tag
docker rm -f espresso-sequencer || true
docker run -d --name espresso-sequencer -v /opt/espresso/store:/mount/sequencer/store -v /opt/espresso/keys:/mount/sequencer/keys:ro ghcr.io/espressosystems/espresso-sequencer/sequencer:${PREV_TAG} sequencer -- http -- catchup -- status
```
Restore from your **store/** and **keys/** backups if corruption is suspected.
*Supported networks:* **Espresso Decaf testnet**.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/initia
How to handle Initia node upgrades using Cosmovisor (auto) or manual binary replacement.
## Recommended: Cosmovisor (auto-upgrade)
If you used **Weave**, select the **automatic upgrades via Cosmovisor** option in the wizard. This will wire your node so new binaries are picked up at governance-scheduled heights.
Cosmovisor expects a directory layout under `~/.initia/cosmovisor/` with `genesis/` and `upgrades//bin/`. When an upgrade triggers, the daemon switches to the new binary automatically.
Keep an eye on governance proposals that schedule upgrades. Confirm the **target version tag** and the **upgrade height** before the event.
## Manual upgrade (if not using Cosmovisor)
Identify the correct **release tag** for your network (Mainnet `interwoven-1` or Testnet `initiation-2`). Use the official releases and notes.
```bash theme={null}
cd ~/initia || git clone https://github.com/initia-labs/initia.git && cd initia
git fetch --all
git checkout
make install
initiad version
```
```bash theme={null}
sudo systemctl stop initiad || true
# If using a static path, ensure $(which initiad) now points to the new binary
sudo systemctl start initiad
journalctl -u initiad -f
```
```bash theme={null}
initiad version
curl -s localhost:26657/status | jq .result.node_info.network
curl -s localhost:26657/status | jq .result.sync_info.catching_up
```
If your node falls behind or you upgraded late, consider **state sync** or a **snapshot** provider compatible with your chain and height. Always verify integrity and provenance.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/lava
Upgrade the Lava RPC Provider (lavap) by building the latest tag and restarting the process.
The provider fronts your own chain nodes. Upgrading `lavap` does not upgrade those underlying nodes.
## Build latest
```bash theme={null}
cd ~/lava || git clone https://github.com/lavanet/lava.git ~/lava && cd ~/lava
git fetch --tags
# Checkout a specific tag if announced, else build default
# git checkout vX.Y.Z
LAVA_BINARY=lavap make install
lavap version || lavap --version
```
## Restart
```bash theme={null}
# If systemd-managed
sudo systemctl restart lavap && journalctl -u lavap -f -o cat
# Or run directly (example)
lavap rpcprovider lava-provider.yml --from --geolocation 1 --chain-id lava-mainnet-1
```
## Verify
```bash theme={null}
# Connectivity test
lavap test rpcprovider --from
```
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/story
How to upgrade Story clients: story-geth (execution) and story (consensus), including Cosmovisor scheduling.
## Upgrade story-geth
```bash theme={null}
sudo systemctl stop story-geth || true
sudo systemctl stop story || true
```
```bash theme={null}
cd $HOME
curl -L -o story-geth https://github.com/piplabs/story-geth/releases/latest/download/geth-linux-amd64
chmod +x story-geth && sudo mv story-geth /usr/local/bin/story-geth
story-geth version
```
```bash theme={null}
sudo systemctl start story-geth
sudo systemctl start story
journalctl -u story-geth -f -o cat
```
## Upgrade story (consensus)
```bash theme={null}
sudo systemctl stop story
# Download new binary
cd $HOME
curl -L -o story https://github.com/piplabs/story/releases/latest/download/story-linux-amd64
chmod +x story && sudo mv story /usr/local/bin/story
sudo systemctl start story
story version
```
```bash theme={null}
# 1) Place the new binary
export UPGRADE_NAME=
mkdir -p $HOME/.story/story/cosmovisor/upgrades/$UPGRADE_NAME/bin
cp /usr/local/bin/story $HOME/.story/story/cosmovisor/upgrades/$UPGRADE_NAME/bin/
# 2) Schedule at announced height
source $HOME/.bash_profile || true
cosmovisor add-upgrade $UPGRADE_NAME $HOME/.story/story/cosmovisor/upgrades/$UPGRADE_NAME --force --upgrade-height
# 3) Monitor
journalctl -u story -f -o cat
```
Always confirm **target versions** and **upgrade height/time** from official announcements before scheduling. Ensure the node is fully synced and has free disk space.
# Upgrade
Source: https://docs.krews.xyz/upgrade-mainnet/sunrise
Handle Sunrise chain upgrades safely. Cosmovisor automation and manual procedures for soft/hard forks.
## Cosmovisor (recommended)
Configure Cosmovisor per the official tutorial so it manages your `sunrised` binary under `~/.sunrise/cosmovisor/`. Enable:
```bash theme={null}
export DAEMON_ALLOW_DOWNLOAD_BINARIES=true
```
Upgrades are scheduled via on-chain governance. Confirm proposed **height** and **target binary version** before the event.
With Cosmovisor, the process switches to the prepared binary at the scheduled height with minimal downtime. Ensure your `upgrades//bin/sunrised` is present beforehand.
## Manual upgrades (no Cosmovisor)
Check the **network** repository for your chain (e.g., `sunrise-1`) and the latest release on GitHub for the required `sunrised` version.
```bash theme={null}
cd ~/sunrise || git clone https://github.com/sunriselayer/sunrise.git && cd sunrise
git fetch --all
git checkout
make install
sunrised version
```
```bash theme={null}
sudo systemctl stop sunrised || true
sunrised start &
curl -s localhost:26657/status | jq .result.sync_info.catching_up
```
### Soft vs Hard Fork
* **Soft fork**: same chain-id, binary changes handled by an upgrade handler; Cosmovisor can automate.
* **Hard fork**: new `genesis.json` and often a **new chain-id**; syncing starts from height 1; follow migration notes provided in the proposal.