Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Download and install Cosmostation Wallet as a browser extension
Create Wallet:
Save the mnemonic phrase afterward. To store this password, we recommend using , as they're the most secure password management solution.
Reconnect to Cosmostation extension and enter a password
Navigate to "Add Custom Chain" > "Add a custom Cosmos chain."
Once the chain is added, return to the wallet and select the new chain:
Description of the Oak Security audit for Slide SDK
Slide SDK was audited by Oak Security, you can read the audit here.
Enhance your Cosmos SDK application by integrating the light-clients/14-avalanche module. Follow this step-by-step guide to easily import and register the Avalanche light-client in your project.
First, ensure you import the Avalanche (ava) module into your Cosmos SDK application. Typically, this is done in the ibc.go file, where your application's modules are defined.
Next, add the ava module to your application’s ModuleManager. Locate the section where you initialize the ModuleManager and include the Avalanche light-client:
Finally, register the Avalanche module in the RegisterIBC function of your application. This function is typically found in the ibc.go file.
By following these steps, you'll successfully integrate the Avalanche light-client module into your Cosmos SDK application, enabling enhanced interoperability with Avalanche-based chains.
Download and install Cosmostation Wallet as a browser extension
Create Wallet:
Save mnemonic phrase afterward
Reconnect to Cosmostation extension and enter a password
Navigate to "Add Custom Chain" > "Add a custom Cosmos chain". Once the chain is added, return to the wallet and select the new chain:
Explaining the Osmosis integration
Here is a quick overview of how works on the Osmosis decentralized exchange:
Cosmoswap leverages Osmosis's pooled liquidity infrastructure to enable customizable "outposts" - IBC-connected DEX deployments on other chains.
For example, Landslide functions as a Cosmoswap outpost on Avalanche. Landslide, built with the Cosmos SDK, handles the Avalanche-side transactions and liquidity routing.
Osmosis manages the core liquidity pools and validation logic. Landslide contains router contracts directing trades to Osmosis over IBC.
For a detailed overview, please refer to the
The below diagram depicts the interaction between two Cosmos SDK-based chains, Osmosis and Landslide, through the IBC protocol. The IBC Relayer acts as a mediator between the two chains.
When a message transfer is initiated by Chain A (Osmosis), it generates a packet commitment (hash) and stores it in the KV store by key (port, channel, sequence). Then it emits a packet event and the IBC Relayer handles this event. The IBC Relayer queries for the packet commitment proof from Chain A (Osmosis), which is then returned by Chain A (Osmosis). The IBC Relayer creates a message to relay the packet to Chain B (Landslide).
After receiving the message, Chain B (Landslide) sends back a WriteAck result to the IBC Relayer. The IBC Relayer then queries for the acknowledgement proof from Chain B (Landslide), which is then returned by Chain B (Landslide). The IBC Relayer creates an acknowledgement message containing the packet, acknowledgement, and proofs, which is then sent to Chain A (Osmosis).
How to Run Landslide on a Testnet
License terms
Slide SDK is launched under a
The license limits use of the v0.1 source code in a commercial or production setting until April 1st, 2027. After this, the license will convert to a general public license. This means anyone can fork the code for their own use — as long as it is kept open source.
The Gaia Labs Labs team will create documents that outline the forking process here.
How to get tokens from Faucet
How to deploy CosmWasm contract


import (
// other imports...
ava "github.com/cosmos/ibc-go/v8/modules/light-clients/14-avalanche"
)app.ModuleManager = module.NewManager(
// other modules...
ava.AppModuleBasic{},
)func RegisterIBC(registry cdctypes.InterfaceRegistry) map[string]appmodule.AppModule {
modules := map[string]appmodule.AppModule{
// other modules...
ava.ModuleName: ava.AppModuleBasic{},
}
...
}Cosmoswap outposts like Landslide go beyond basic bridges. They create customizable DEX environments tuned to each chain's needs while benefiting from Osmosis's back-end infrastructure.
Active transaction listening via WebSockets provides rich insights into swap status and performance. This enhances user experience with timely notifications.
Overall, Cosmoswap unlocks new horizons for multi-chain decentralization by deploying adaptable outposts that harness Osmosis's liquidity. This delivers on the vision of fluid interoperability across heterogeneous networks.
When utilizing Cosmoswap's outpost architecture, transaction validation occurs across both chains:
Trades executed on the Landslide outpost on Avalanche are validated by Avalanche validators, not Osmosis validators.
However, the IBC packet transfers enabling asset flows between Osmosis and Landslide are validated on both sides:
Osmosis validators validate escrowing, transferring, and releasing assets on the Osmosis chain side.
Avalanche validators validate unwrapping assets and confirming token releases on Landslide.
The core liquidity pools reside on Osmosis. Osmosis validators govern deposit and withdrawal transactions for these pools.
Landslide contains router contracts that direct trades to the Osmosis pools while handling the user-facing Avalanche side.
This separation of duties retains security while maximizing performance. Osmosis secures the central pools while Avalanche validators handle end-user trades.
In summary, Osmosis validators secure core pool liquidity and IBC transactions while Avalanche/Landslide validators govern swap execution and finality on the user front-end. This hybrid validation approach powers decentralized cross-chain swaps.
A more detailed view
An overview of the Landslide Network
Landslide brings seamless interchain connectivity between Avalanche and the interchain ecosystem through IBC.
Landslide is a game-changing IBC connection to Avalanche, enabling seamless interoperability between Avalanche, Cosmos, and other IBC-enabled chains. It ushers in a new era of cross-chain DeFi operations, scalability, and streamlined user experience by enabling any CosmWasm-based dapp to run natively on the Avalanche network. Through Landslide, we're fostering a more interconnected, robust blockchain ecosystem, enhancing liquidity, diversifying applications and assets, and attracting a broader user base to web3.
An Inter-Blockchain Communication (IBC) bridge to Avalanche represents a significant development in the blockchain space, offering various benefits.
Firstly, the IBC protocol allows for seamless interoperability between different blockchains. In the context of Avalanche, an IBC bridge means that Avalanche can securely and efficiently interact with Cosmos and any other IBC-enabled chains ( being the most recent), facilitating asset and data transfer between these networks. This opens up a new world of possibilities, such as cross-chain DeFi operations, where a user on one network can utilize financial products on another network, enhancing overall accessibility and utility.
Secondly, this expansion of IBC to Avalanche, a non-Cosmos chain, is a crucial step towards a more interconnected and interoperable blockchain ecosystem. As more non-Cosmos chains adopt IBC, the possibilities for cross-chain interactions expand exponentially. This broadening network effect can lead to higher liquidity, increased diversity of applications and assets, and enhanced robustness of the ecosystem as a whole.
Thirdly, Avalanche has gained a lot of traction due to its high throughput and low fees. By building a bridge to Avalanche, Cosmos-based dApps can leverage these advantages, offering their users a better experience.
Finally, from a user perspective, this means that users can access more diverse dApps and services without needing to manage multiple wallets or navigate different networks. This streamlines the user experience, potentially attracting more users to the blockchain ecosystem.
The Landslide Network is a new Avalanche Subnet that enables any CosmWasm-based dapp to run natively on the Avalanche network. This means that dApps previously restricted to other networks like Osmosis, WYND, and Helix can now be accessed by a new pool of users on Avalanche. This document aims to provide an overview of the Landslide Network, its goals, and features.
The Landslide Network aims to address some of the challenges existing blockchain networks face, such as slow transaction finality, scalability issues, and limited interoperability. The following are the main goals of the Landslide Network:
Connect natively to IBC: The Landslide Network enables native transfers of all IBC-connected tokens, allowing for seamless asset transfers between the Landslide Network and other IBC-enabled chains.
Decrease transaction finality: The Landslide Network aims to reduce the finality time of transactions on Tendermint from 7-22 seconds to under 1 second, making it one of the fastest networks in the blockchain ecosystem.
Take advantage of trading opportunities: With faster finality times, the Landslide Network can take advantage of trading opportunities that arise in fast-paced environments, making it an attractive platform for high-frequency traders.
Landslide is building a Cosmos IBC enabled subnet for Avalanche. This will allow Native IBC integration within the @avalancheavax ecosystem. What does this mean for?
1. Under 1 second finality for bridged/forked assets into the Landslide L1.
2. Compatibility between assets of any built with Tendermint/ Cosmos SDK assets. ( , , , )
3. Aggregated liquidity
—
We've put together some helpful guides for you to get setup with our product quickly and easily.
The following endpoints are available for connecting to the Landslide Network testnet:
The RPC (Remote Procedure Call) endpoint allows for direct interaction with the blockchain through JSON-RPC calls. Use this for submitting transactions, querying chain state, and other blockchain interactions.
Some background on Tendermint
CometBFT consensus is a Byzantine fault-tolerant consensus algorithm used in distributed systems, particularly in blockchain networks. It is used in various blockchain projects, including Cosmos, Binance Chain, and Injective.
In CometBFT consensus, formerly called Tendermint, nodes in the network reach an agreement on the order and content of transactions in the blockchain. The consensus algorithm ensures that all nodes agree on the current state of the blockchain, and that new transactions are added in a consistent and secure manner.
CometBFT consensus works by using a round-based voting process. Each round has a leader node that proposes a block of transactions to the network. The other nodes in the network then vote on whether to accept the proposed block. If enough nodes vote to accept the block, it is added to the blockchain.
However, the deterministic nature of CometBFT consensus can also make it slower than other consensus algorithms, as it requires every node in the network to confirm each transaction before it can be added to the blockchain. This can lead to longer confirmation times and slower transaction throughput than probabilistic consensus algorithms like Avalanche consensus. CometBFT consensus is a widely used consensus algorithm in blockchain networks that prioritizes security and determinism. However, its deterministic finality mechanism can make it slower than other consensus algorithms in certain circumstances.
100% compatibility with Cosmos SDK: The Landslide Network is designed to be highly compatible with the native Cosmos-based SDK, enabling developers to easily port their existing dApps to the Landslide Network.
Collaboration between Avalanche, Cosmos, and other IBC-enabled chains: The Landslide Network aims to create closer collaboration between the three ecosystems of Avalanche, Cosmos, and other IBC-enabled chains, creating a stronger, more interconnected blockchain ecosystem.
Lower than version 0.50
Higher than version 0.50
Landslide Network features
The Landslide Network offers several features that make it an attractive platform for developers and users alike. These include:
High throughput and scalability: The Landslide Network is designed to handle high throughput and scalability, making it ideal for developing games, AMMs, and other dapps that require fast finality times.
Native support for IBC: The Landslide Network natively supports IBC, enabling seamless transfer of assets between the Landslide Network and other IBC-enabled chains.
Interoperability with Cosmos-based SDK: The Landslide Network is 100% compatible with the native Cosmos-based SDK, making it easy for developers to port their existing dApps to the Landslide Network.
Airdrop tokens to Avalanche and Cosmos users: The Landslide Network will conduct an airdrop of tokens to users on Avalanche and Cosmos, providing an incentive for users to join the Landslide Network and participate in its ecosystem.
The gRPC endpoint provides high-performance, bi-directional streaming capabilities. Ideal for applications requiring efficient data streaming and complex service definitions.
The REST API endpoint offers a RESTful interface for blockchain interactions. Perfect for web applications and clients that prefer standard HTTP methods.
These endpoints are for the testnet environment and should not be used for production applications. Network performance and availability may vary as this is a test network.
https://cometrpc.testnet.landslide.networkhttps://grpc.testnet.landslide.networkhttps://api.testnet.landslide.networkconst provider = new JsonRpcProvider("https://cometrpc.testnet.landslide.network");curl https://api.testnet.landslide.network/cosmos/bank/v1beta1/balances/{address}import grpc
channel = grpc.insecure_channel('grpc.testnet.landslide.network:443')
Slide SDK (currently known as LandslideVM, changing shortly) is a powerful toolkit for building and deploying CosmWasm applications on the Avalanche network.
Download and install Go version go1.22 or later from the
AvalancheGo is the official Go implementation of an Avalanche node. Follow these steps to install it:
This command clones the Slide SDK repository and navigates into the newly created directory.
Run the following command from inside the landslidevm repository to download AvalancheGo:
This command:
Sets up environment variables for the installation paths.
Runs a script that downloads and installs a compatible version of AvalancheGo.
The installed AvalancheGo will be located in /tmp/e2e-test-landslide/avalanchego.
CosmWasm is a smart contracting platform built for the Cosmos ecosystem. We need to build a plugin to enable CosmWasm support in Avalanche.
Run this command from the landslidevm directory:
This script:
Compiles the CosmWasm plugin.
Places the compiled plugin in the AvalancheGo plugins directory.
The long string in the path is a unique identifier for the plugin.
Now we'll set up and run a Wasm L1 (Layer 1) on an Avalanche node using the Landslide Runner.
This clones the Landslide Runner repository and navigates into it.
a. Clone repository:
b. Start the Avalanche node with Landslide L1:
This command:
Builds and configures the Landslide L1.
Starts an Avalanche node with the Landslide L1 deployed.
You should see logs indicating that the node is running and syncing with the network.
When you run make run-wasm, you should expect to see output similar to the following:
Network Creation:
The system will create a network with 5 nodes.
You'll see log entries for each node being added, with details like node name, directory, and ports.
Health Check:
Key Information to Note:
Subnet ID: e.g., "2c1CbR7FGYdeFPB4WaeWphHZrChLH7TQ92FRW6U4mCWTnaxVsB"
Blockchain-ID: e.g., "WKQC4prgnS66BYgQw8ZBdjgYtPhKaRmDEqB5iXKG55Wj13gHu"
RPC URLs: e.g., "http://127.0.0.1:9750/ext/bc/WKQC4prgnS66BYgQw8ZBdjgYtPhKaRmDEqB5iXKG55Wj13gHu/rpc"
gRPC URLs: e.g., "http://127.0.0.1:9090"
If you see this output, your Landslide network is up and running successfully. You can interact with your network using the provided RPC and gRPC URLs. Remember that you can stop the network by pressing CTRL + C.
Congratulations! You now have a running Avalanche node with Landslide L1 and CosmWasm support. You can start developing and deploying CosmWasm smart contracts on this infrastructure.
To interact with your node or deploy contracts, you'll need to use appropriate tools and APIs. Refer to the Avalanche and CosmWasm documentation for more information on interacting with the network and writing smart contracts.
If you encounter issues:
Ensure all dependencies are correctly installed, and versions are compatible.
Check that you have the necessary permissions to execute scripts and create directories.
Review console output for error messages.
Consult our FAQ or community forums for common issues and solutions.
For further assistance, reach out to our support team or community channels.
This guide will walk you through setting up a local Landslide network, deploying CosmWasm contracts, and connecting your wallet to interact with the local network.
How to set up a network locally
Setting up your development environment
Starting a local Landslide network
Preparing your CosmWasm contract
Uploading and instantiating contracts on Landslide
Configuring your wallet for local development
Interacting with your deployed contracts
Landslide Core comes with built-in support for Avalanche Warp Messaging (AWM). AWM allows any Avalanche Subnet to quickly send arbitrary messages to another Subnet, without relying on a trusted relayer or bridge. This is made possible by utilizing the validators of the sending Subnet. The messages are delivered in just a few seconds, or even less. You can find more information about AWM and how it functions on this page.
Enhance your Cosmos SDK application by integrating the light-clients/14-avalanche module. Follow this step-by-step guide to easily import and register the Avalanche light-client in your project.
First, ensure you import the Avalanche (ava) module into your Cosmos SDK application. Typically, this is done in the app.go file, where your application's modules are defined.
Next, add the ava module to your application’s ModuleManager. Locate the section where you initialize the ModuleManager and include the Avalanche light-client:
By following these steps, you'll successfully integrate the Avalanche light-client module into your Cosmos SDK application, enabling enhanced interoperability with Avalanche-based chains.
How IBC gets the state proof from AVAX mainnet
The sequence diagram describes an Inter-Blockchain Communication (IBC) relayer retrieving Avalanche L1 proof.
The process involves multiple participants: the relayer, L1 Node 1 through Node N, and L1 Validator 1 through Validator N.
The relayer first queries proof by key from L1 Node 1. Node 1 attempts to get the payload by key, and if the signature is already in its internal cache, it retrieves it. If the signature is not cached, it makes a call through the Virtual Machine (VM) context to Validator 1 to sign the payload. After Validator 1 returns the signature, Node 1 forwards it back to the relayer.
A similar process occurs with L1 Node 2 and its corresponding Validator. However, in this case, it's noted that the signature is not cached and needs to be signed by the Validator through the VM context.
The process repeats for all remaining nodes (represented as Node N) and their corresponding Validators (Validator N).
After collecting all signatures from the different L1 Nodes, the relayer then composes these signatures from Node 1, up to Node N.
How IBC-go interacts with the Avalanche IBC light client
See original
The IBC-go library is a Go implementation of the IBC protocol and provides a set of interfaces and functions to handle the different components of the IBC protocol. To interact with the IBC light client for Avalanche, you can use the IBC-go library to implement the necessary functionality to receive and send packets over the IBC protocol.
Here are the general steps for using IBC-go to interact with the IBC light client for Avalanche:
Install and configure the IBC-go library. You can follow the installation instructions provided in the Github repository to set up the library and configure it for your specific use case.
A regularly updated roadmap.
A Primer on Landslide as it relates to Ethereum dApps.
Bridging Ethereum apps to Avalanche
This flowchart illustrates the interoperability of applications running on different blockchain networks - Cosmos, Polkadot, and Ethereum - through the use of Landslide technology on the Avalanche network.
Starting from the left, we have three subgraphs representing the Cosmos, Polkadot, and Ethereum networks. Each network runs a specific application: Osmosis on Cosmos, DOT on Polkadot, and Synthetix on Ethereum.
These applications interact with their respective IBC light clients. For Cosmos, it's the Landslide SDK IBC light client; for Polkadot, it's the ; and for Ethereum, it's the Landslide EVM IBC light client. These light clients are responsible for maintaining a connection and facilitating communication between the networks.
All three light clients then connect to the IBC bridge, which serves as the main hub for transferring state between the source and target chains. The IBC bridge then connects to three more IBC light clients, which are responsible for transferring the source chain's state to the Avalanche network.
Finally, the state is transferred to the Avalanche network, where it's run natively inside an Avalanche subnet. This is represented by three subgraphs under Avalanche: Landslide running Synthetix, Landslide2 running OSMO, and Landslide3 running DOT. The transition between these subgraphs is facilitated by Avalanche Warp Messaging, indicating the flow of transactions within the Avalanche network.
The ABCI (Application Blockchain Interface) calls in the Landslide Core repository provide the interface for Cosmos-based dApps to interact with the Avalanche network. Developers can plug their existing Cosmos dApps into the Landslide Core by implementing the necessary ABCI calls. The repository includes example ABCI applications such as the KVStoreApplication and the PersistentKVStoreApplication, which can be used as placeholders for Cosmos SDK-based applications.
To connect existing Cosmos dApps to Avalanche using the Landslide Core repository, developers need to implement the necessary ABCI calls in their application. This includes implementing the InitChain, BeginBlock, DeliverTx, CheckTx, and EndBlock ABCI calls, which enable the dApp to interact with the Avalanche network. Once the ABCI calls are implemented, the dApp can be compiled using the Landslide SDK and deployed to the Avalanche network.
The ABCI calls in the Landslide Core repository provide the interface for Cosmos-based dApps to interact with the Avalanche network.
InitChain: This ABCI call is used to initialize the application state. It is called once when the application is first started or when a new chain is created. This is where the initial genesis state of the application is set.
BeginBlock: This ABCI call is called at the beginning of each block. It provides information about the current block and allows the application to update its state based on the contents of the block.
DeliverTx: This ABCI call is called when a new transaction is delivered to the application. It is used to validate the transaction and update the application state if the transaction is valid.
CheckTx: This ABCI call is called when a new transaction is received by the node. It is used to validate the transaction before it is included in a block.
EndBlock: This ABCI call is called at the end of each block. It provides information about the current block and allows the application to update its state based on the contents of the block.
To connect an existing Cosmos dApp to Avalanche using Landslide Core, developers need to implement these ABCI calls in their application. This is done by creating a new ABCI application that implements the necessary functions for each of the ABCI calls. These functions will define how the application interacts with the Avalanche network.
Once the ABCI application is implemented, it can be compiled using the Landslide SDK and deployed to the Avalanche network. The Landslide SDK is a fork of the Cosmos SDK that is 99% compatible with the existing Cosmos SDK, with the exception of the consensus algorithm. The Landslide SDK includes all the necessary libraries and modules needed to build and deploy the ABCI application to the Avalanche network.
In summary, by implementing the necessary ABCI calls, developers can connect their existing Cosmos dApps to the Avalanche network using Landslide Core. This allows them to take advantage of the benefits of the Avalanche network, including faster finality times and IBC compatibility.
Implement the necessary functions to handle incoming packets from other chains. These functions should validate and verify the packets and then trigger the appropriate action within the Landslide network based on the contents of the packet.
Implement the necessary functions to send packets to other chains. These functions should prepare the packet data and send it through the IBC light client to the appropriate destination chain.
Set up the relayer to relay packets between different chains. The relayer is responsible for forwarding packets between different chains and ensuring that the packets are received in the correct order.
Here are some specific functions and interfaces in the IBC-go library that can be used to interact with the Avalanche IBC light client:
IBCClient: This interface defines the basic functionality for an IBC client, including sending and receiving packets, creating and updating connections, and handling events.
ConnState: This interface defines the possible states of a connection and provides functions for updating the connection state.
ChannelState: This interface defines the possible states of a channel and provides functions for updating the channel state.
Packet: This struct represents a packet of data that is sent over the IBC protocol. It contains information such as the source and destination chains, sequence number, and packet data.
IBCReceiver: This interface defines the necessary functions for handling incoming packets from other chains. These functions should validate and verify the packet and trigger the appropriate action within the Landslide network.
IBCSender: This interface defines the necessary functions for sending packets to other chains. These functions should prepare the packet data and send it through the IBC light client to the appropriate destination chain.
By using these functions and interfaces from the IBC-go library, the Avalanche IBC light client for Landslide implements the necessary functionality to send and receive packets over the IBC protocol.
import (
// other imports...
ava "github.com/cosmos/ibc-go/v8/modules/light-clients/14-avalanche"
)app.ModuleManager = module.NewManager(
// other modules...
ava.AppModuleBasic{},
)Once you have cloned the repository, navigate to the root directory of the repository in your terminal.
Build the LandslideCore binary by running the following command:
make buildThis will create the landslide binary in the build directory.
Optionally, you can install the LandslideCore binary system-wide by running the following command:
make installThis will copy the landslide binary to /usr/local/bin, making it accessible from anywhere on your system.
If you encounter any issues during the installation process, please refer to the documentation or open an issue on the LandslideCore repository for assistance.
git clone https://github.com/ConsiderItDone/LandslideCore.gitVersions of Go 1.23 and above may encounter WASM compilation errors, particularly with certain dependencies.
If you encounter build issues:
Check your current Go version:
If you're not using Go 1.22.7, consider downgrading:
On macOS with Homebrew:
Add to your PATH:
After changing Go versions:
Clean your Go module cache:
Update your modules:
Retry your build process.
If you need to manage multiple Go versions across different projects, consider using a Go version manager like gvm.
Always refer to the project's go.mod file for the most up-to-date Go version and dependency requirements.
If you continue to experience issues after following these steps, please contact the development team or open an issue in the project repository.
The system will wait for all nodes to report as healthy.
Subnet Creation:
A new subnet will be created (you'll see a subnet ID).
The nodes will be added as subnet validators.
Blockchain Creation:
A new blockchain for Landslide (referred to as "landslidevm") will be created.
You'll see a blockchain ID generated.
Node Restart:
The nodes will be restarted to track the new subnet.
Plugin Reload:
The system will reload plugin binaries.
Custom Chain Creation:
The Landslide blockchain will be created on the subnet.
Health Check for Custom Chains:
The system will wait for the custom chain (Landslide) to report as healthy on all nodes.
You'll see log entries checking for log files on each node.
Final Setup:
The system will register blockchain aliases.
A final health check will be performed.
RPC URLs:
The system will output RPC and gRPC URLs for each node. These are crucial for interacting with your Landslide network.
Network Running:
You'll see a message: "Network will run until you CTRL + C to exit..."
Cosmoswap/Osmosis integration
Run local private Avalanche network
Andromeda Integration
IBC Light Client testnet
Osmosis testnet
Avalanche VM
IBC Light Client audit
Archway testnet
API
This flowchart demonstrates how disparate applications on Cosmos, Polkadot, and Ethereum can be run natively inside an Avalanche subnet, as long as state is transferred safely between IBC light clients running on the source and target chain and transitioned through the IBC bridge.

Some background on Snow and Avalanche Consensus. Watch this video for a full explanation.
Watch this video for a full explanation with animations.
Landslide replaced Tendermint consensus with Avalanche consensus and runs on an Avalanche subnet. Landslide enables users to:
run the Tendermint ABCI on an Avalanche subnet
run any Cosmos-based dApp on an Avalanche subnet
send assets and message across IBC to/from Avalanche to any other IBC-enabled blockchain
Avalanche consensus is a novel consensus algorithm designed for distributed ledger technology that aims to achieve high throughput, low latency, and high scalability. It is unique in that it uses a new consensus paradigm called the Avalanche family of protocols, which rely on a new approach to network sampling, voting, and confirmation.
In Avalanche consensus, nodes can propose transactions and vote on them. Unlike traditional consensus algorithms like Proof of Work or Proof of Stake, in which nodes vote on a single block, in Avalanche consensus, nodes vote on multiple transactions at the same time. This allows Avalanche to achieve high throughput, as it can process multiple transactions in parallel.
The Avalanche family of protocols is also designed to handle network partitions gracefully. In traditional consensus algorithms, a network partition can cause forks in the blockchain, which can be difficult to resolve. In Avalanche, network partitions are resolved automatically by having nodes vote on transactions independently in each partition. When the network partitions are resolved, the protocol ensures that only one transaction is accepted for each transaction ID.
Avalanche consensus is also able to achieve low latency, as transactions can be confirmed within seconds of being proposed. This is achieved through a process called sub-sampling, in which nodes sample only a small portion of the network to determine whether a transaction is valid. If a transaction is deemed valid by this small group of nodes, it is then broadcast to the rest of the network for confirmation. This allows for fast confirmation times while still maintaining the security of the system.
In Avalanche consensus, the network subsampling algorithm is designed to be meta-stable, which means that it is able to maintain consensus even in the presence of temporary failures or inconsistencies in the network. This is important because it allows the protocol to continue to operate correctly even if a small subset of nodes fail or behave maliciously.
The network subsampling algorithm in Avalanche works by randomly selecting a subset of nodes from the network to participate in a transaction vote. Each selected node then votes on the transaction, and if enough nodes vote in favor of the transaction, it is considered confirmed and added to the blockchain.
In order for the network subsampling algorithm to be meta-stable, it is designed to be resilient to a variety of network failures and inconsistencies. For example, if a node fails to respond to a vote request, the algorithm is designed to select a replacement node to vote in its place. Similarly, if there are inconsistencies in the votes received from the selected nodes, the algorithm is designed to use a fallback mechanism to resolve the inconsistency and ensure consensus.
The meta-stability of the network subsampling algorithm is important because it ensures that the consensus protocol can continue to operate correctly even in the face of temporary network failures or inconsistencies. This makes Avalanche consensus more robust and reliable than traditional consensus algorithms, which may be vulnerable to these types of failures.
Overall, the meta-stability of the network subsampling algorithm is a key feature of Avalanche consensus that helps to ensure the security and reliability of the protocol.
Time to finality is faster on Avalanche consensus compared to Tendermint consensus due to the probabilistic nature of the Avalanche consensus algorithm. In probabilistic consensus, transactions are not required to be confirmed by every node in the network, but rather by a statistically significant subset of nodes. This allows transactions to be confirmed more quickly, as they do not have to wait for every node in the network to confirm them.
In contrast, Tendermint consensus is a deterministic consensus algorithm in which every node in the network must confirm each transaction before it can be added to the blockchain. This can lead to longer confirmation times, as the confirmation process can be bottlenecked by slow or faulty nodes.
The probabilistic nature of Avalanche consensus allows it to achieve faster time to finality by using a process called sub-sampling. In this process, a small subset of nodes is selected to confirm each transaction, and if the transaction is confirmed by this subset, it is then broadcast to the rest of the network for confirmation. This allows transactions to be confirmed much more quickly than in deterministic consensus algorithms like Tendermint.
Additionally, the sub-sampling process in Avalanche consensus is designed to be meta-stable, which means that it is able to maintain consensus even in the presence of temporary failures or inconsistencies in the network. This further improves the speed and efficiency of the confirmation process.
Overall, the probabilistic nature of Avalanche consensus, combined with its sub-sampling process and meta-stability, allows it to achieve faster time to finality than deterministic consensus algorithms like Tendermint.
Got 2 minutes? Check out a video overview of Dr. Emin Gün Sirer explaining Avalanche consensus:
How Landslide accepts ATOM in addition to AVAX for validators.
*Please Note: this is a working document and is intended to change over time.
Original Source where Sunny from Osmosis and Emin Gün Sirer from Ava Labs discuss this proposal.
This will involve understanding the CCV protocol in depth and implementing it within the Landslide Network. This will allow the network to borrow security from more established chains, thus increasing the cost of attacking the network.
Here is a detailed for the Cross-Chain Validation (CCV) protocol in the Cosmos Inter-Blockchain Communication (IBC) ecosystem. Here's a summary of the key concepts and operations:
The CCV protocol is designed for chains that use a proof of stake mechanism. It relies on validators who bond (lock, stake) tokens to validate blocks. The amount of tokens bonded determines a validator's voting power. Misbehaving validators can be punished by slashing their bonded tokens. The security of consumer chains is based on the tokens validators bonded on the provider chain.
CCV is a building block that enables shared security models. It allows chains to borrow security from more established chains, thus increasing the cost of attacking their networks. It also enables hub minimalism, keeping a hub in the Cosmos network as simple as possible to decrease the attack surface.
The document introduces new terms such as Provider Chain (the blockchain that provides security), Consumer Chain (the blockchain that consumes security), and Validator Set Change (VSC - a change in the validator set of the provider chain that must be reflected in the validator sets of the consumer chains).
The CCV protocol differentiates between chains that start directly as consumer chains and existing chains that transition to consumer chains. In both cases, consumer chains are created through governance proposals.
This operation updates the validator sets of all the consumer chains based on the information obtained from the provider chain. It also enables the timely completion of unbonding operations.
(this will not be implemented on AVAX)
This operation enables the provider chain to slash and jail bonded validators that misbehave while validating on the consumer chain.
Reward Distribution:
This operation enables the distribution of block production rewards and transaction fees from the consumer chains to the validators on the provider chain.
Currently, the subnets are a subset of the current p-chain validator list. This can be changed as long as the new validators are renting the required minimum AVAX amount from other providers in the network. The customization of subnets will allow for greater flexibility and control over the network's operations.
is reducing the 2000 AVAX requirement via a liquidity bootstrapping method, essentially AVAX lending plus staking 100 AVAX worth of GoGoPool tokens (GGP). Collaborating with GoGoPool can provide a way to lower the barrier to entry for new validators, thus increasing the security and decentralization of the network.
This will look a lot like interchain security on Cosmos. This will involve implementing the security model of Cosmos within the Landslide Network, allowing for shared security models and increased network security.
This will involve creating a subnet that is also a zone that uses ATOM in addition to staking AVAX. This will allow for the integration of IBC and Warp together, providing greater flexibility and control over the network's operations.
This roadmap is ambitious and requires a deep understanding of blockchain technology, particularly the Cosmos IBC and Avalanche's infrastructure. However, it is a feasible plan that could greatly enhance the security and functionality of the Landslide Network.
go versionbrew install [email protected]
brew unlink go
brew link [email protected]echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcgit clone https://github.com/LandslideNetwork/landslidevm.git && cd landslidevmBASEDIR=/tmp/e2e-test-landslide AVALANCHEGO_BUILD_PATH=/tmp/e2e-test-landslide/avalanchego ./scripts/install_avalanchego_release.sh./scripts/build_wasm.sh /tmp/e2e-test-landslide/avalanchego/plugins/pjSL9ksard4YE96omaiTkGL5H6XX2W5VEo3ZgWC9S2P6gzs9Acd .. && git clone https://github.com/ConsiderItDone/landslide-runner.git && cd landslide-runnermake run-wasm
One of the most significant advantages that Avalanche brings to the table is faster finality times. The Avalanche consensus protocol enables blazing fast transaction confirmations, typically in the range of sub-second to a few seconds. This is a substantial improvement compared to native Tendermint, where users often have to wait 3-8 seconds to achieve transaction finality.
For Cosmos dApps, faster finality times translate into a multitude of benefits:
Improved user experience: Users can execute trades swiftly and enjoy seamless interaction with Avalanche. This will not only attract more users but also encourage existing ones to engage more frequently, ultimately driving up our user retention and growth.
Increased liquidity: With faster finality times, Landslide can process more transactions per second, leading to higher trading volumes. This increased liquidity will help create a more robust market and improve price discovery, benefitting all Cosmos users.
Reduced risk of liquidations: Faster finality times minimize the risk of cascading liquidations due to market volatility, as users can adjust their positions more promptly. This will help protect our users' assets and boost their confidence in our platform.
Enhanced arbitrage opportunities: Quicker transaction times enable efficient cross-chain arbitrage, allowing traders to take advantage of price discrepancies across different platforms. This will attract sophisticated traders and lead to a more mature ecosystem.
Deploying an outpost on Avalanche is a strategic move that can greatly benefit any Cosmos dApp by capitalizing on the faster finality times. This will not only improve the user experience but also contribute to the overall growth and success of Cosmos.
A Landslide outpost: The term "outpost" refers to a specialized deployment of the existing CosmWasm software stack, such as White Whale, on another blockchain network. The purpose of establishing an outpost is to use the already existing software stack and just change the consensus algorithm to expand the dApp's reach, functionality, and interoperability by tapping into the unique features and advantages of the target blockchain network.
Avalanche Warp Messaging (AWM) allows any Avalanche Subnet to quickly send arbitrary messages to another Subnet, without relying on a trusted relayer or bridge. This is made possible by utilizing the validators of the sending Subnet. The messages are delivered in just a few seconds, or even less. AWM enables liquidity sharing between subnets and the P-chain.
Problem: If a Cosmos dApp like White Whale wants to deploy on Avalanche, it is currently impossible because it cannot deploy its software stack it can only wrap its tokens and send them over a bridge like Axelar.
Solution: White Whale has to deploy its software stack onto Landslide, just like it would to native Cosmos. Here are the steps for that to take place:
IBC Integration: White Whale will first integrate the IBC protocol into its existing CosmWasm software stack on the native Cosmos network. IBC enables communication between heterogeneous blockchain networks, allowing users to securely and efficiently transfer assets and data between IBC-enabled chains. (This is usually completed for most Cosmos chains.)
Landslide SDK and Landslide Core Integration: To facilitate seamless communication between White Whale's CosmWasm stack and Avalanche, White Whale has to integrate the Landslide SDK and Landslide Core into their software stack, just as if they are re-deploying their app stack to a Cosmos chain. These components will serve as a White Whale outpost, its stack operating on a different consensus algorithm.
IBC Connection Establishment: Once the IBC integration and Landslide SDK and Core integration are complete, White Whale will establish a secure IBC connection between the native Cosmos network and Avalanche. This connection will allow for the transfer of assets and data between the two networks, enabling White Whale to operate on both platforms.
CosmWasm Contract Deployment on Avalanche: With the IBC connection established and Landslide SDK and Core in place, White Whale will deploy its CosmWasm contracts on Landslide. These contracts will interact with the Landslide SDK and Core to ensure smooth communication and interoperability between White Whale's services on both Cosmos and Avalanche.
Testing and Auditing: Before launching the White Whale outpost on Avalanche, White Whale will conduct rigorous testing and auditing to ensure the security and reliability of the newly deployed CosmWasm contracts and the Landslide SDK and Core. This process will help identify and address any potential vulnerabilities or issues that may arise during the deployment.
Launch and User Onboarding: Once testing and auditing are complete, White Whale will officially launch its outpost on Avalanche. This will involve marketing campaigns, user education, and support to ensure that our existing and new users can easily navigate and take advantage of the new outpost and its benefits.
This diagram shows the process of transferring packets between Osmosis and Landslide using the IBC protocol.
First, Osmosis creates the packet data and sends it to the IBC module.
The IBC module sends the packet to the relayer.
The relayer relays the packet to the destination chain, which in this case is Landslide on the AVAX subnet.
Landslide receives the packet and sends an acknowledgement back to the IBC module.
The IBC module sends the acknowledgement to the relayer.
The relayer relays the acknowledgement back to the source chain, which is Osmosis.
Osmosis receives the acknowledgement from the IBC module.
go clean -modcachego mod tidyrelayer comes in. A relayer process monitors for updates on opens paths between sets of IBC enabled chains. The relayer submits these updates in the form of specific message types to the counterparty chain. Clients are then used to track and verify the consensus state. In addition to relaying packets, this relayer can open paths across chains, thus creating clients, connections and channels. Additional information on how IBC works can be found .The
-h(help) flag tailing anyrlycommand will be your best friend. USE THIS IN YOUR RELAYING JOURNEY.
Clone, checkout and install the latest release (). needs to be installed and a proper Go environment needs to be configured
Initialize the relayer's configuration directory/file.
Default config file location: ~/.relayer/config/config.yaml By default, transactions will be relayed with a memo of rly(VERSION) e.g. rly(v2.5.2). To customize the memo for all relaying, use the --memo flag when initializing the configuration.
After setting up your Landslide local network, follow these steps to deploy and interact with smart contracts.
Before proceeding, it's crucial to understand the correct setup:
Keep your original terminal window running the Landslide network (make run-wasm command) open and active. This terminal maintains your local network.
Open a new terminal window to execute the following commands. This separation allows you to interact with the network without interrupting its operation.
This two-terminal approach provides several benefits:
Keeps the network running uninterrupted
Allows easy reference to network logs while executing commands
Prevents accidental network stoppage
Facilitates easier troubleshooting
Now, in your new terminal window, proceed with the following steps:
is the CLI tool for interacting with CosmWasm contracts.
a. Clone the Wasmd repository:
b. Checkout the most stable version (replace v0.53.0 if needed):
c. Install Wasmd:
d. Verify the installation:
or
When running a local testnet, as opposed to connecting to a live testnet or mainnet, you need to use a pre-configured account that has been allocated tokens in the genesis state. This differs from a live network, where you would typically create a new account and obtain tokens through a faucet or a transfer.
In a local testnet environment:
The network is initialized with a set of pre-defined accounts.
These accounts are already funded with tokens in the genesis block.
One of these accounts is designated for testing and development purposes.
To interact with the network, you'll need to import this specific testnet private key:
When prompted, enter the following bip39 mnemonic (seed phrase):
This mnemonic corresponds to a pre-funded account in your local testnet. By importing this key, you're gaining access to an account that already has tokens, allowing you to perform transactions, deploy contracts, and interact with the network without acquiring tokens first.
Important Notes:
This specific key should only be used for local testing purposes.
Never use this key on a public testnet or mainnet, as the private key is publicly known.
In a production environment, you would generate your own secure keys and properly manage them.
Understanding this process helps clarify the difference between working with a local testnet and interacting with a live network, where account creation and token acquisition would be handled differently.
Now, you're ready to deploy a smart contract to your Landslide network.
a. Upload an example contract (in this case, hackatom.wasm):
Important:
Replace [REPLACE_WITH_YOUR_RPC_URL] with the RPC URL provided in your Landslide network output. This is visible in the first terminal where you started your Landslide node. It should look something like http://127.0.0.1:9750/ext/bc/....
At this point, you'll be prompted to confirm the transaction. Review the details carefully and enter 'y' to confirm and proceed with signing and broadcasting, or 'N' to cancel the transaction.
After executing the command to upload the smart contract, you should see an output similar to this:
Great! Your smart contract has been successfully uploaded to the Landslide network. Here's what you need to know:
The code: 0 indicates that the transaction was successful.
The most important piece of information is the txhash. Yours will look different, but in this case, it's: F15A7FB824FA83D58E556224FE2D5BD59A4FC7FB8E50400D5B0649E78D873D53
Next Steps: You'll need this transaction hash for the next step, which is to fetch the code_id of your uploaded contract. The code_id is crucial for future interactions with your contract.
Proceed to the next step in the documentation, where you'll query this transaction to get the code_id. Make sure to replace the placeholder transaction hash with the one you received in your output.
If you encountered any errors or didn't receive a similar output, double-check that you've correctly replaced the RPC URL in the command and that your Landslide network is running properly.
b. Fetch the code ID using the transaction hash from the previous output:
After executing the command to query the transaction, you should see an output similar to this:
Here's what to look for in this output:
Check that the code field is 0, which indicates the transaction was successful.
Look for the events array in the output. Find the event with "type": "store_code".
Within the store_code event, there are attributes. Find the attribute with
This code_id is crucial for future interactions with your contract, such as instantiation or execution. Make note of it for use in subsequent steps.
After uploading your smart contract, you can retrieve its metadata using the code ID. Run the following command:
Replace <CODE_ID> with the code ID you obtained in the previous step, and [REPLACE_WITH_YOUR_RPC_URL] with your Landslide network's RPC URL.
Example output:
This output provides important information about your uploaded smart contract:
code_id: Confirms the ID of your uploaded contract.
creator: The address that uploaded the contract.
data_hash: A unique hash of the contract's bytecode.
This information is useful for verifying the contract's details and understanding its deployment permissions. The data_hash can be used to ensure the integrity of the uploaded contract.
With your contract deployed, you can now interact with it using Wasmd commands. Consider exploring:
Instantiating your contract
Querying contract state
Executing contract functions
Remember to always use the correct node URL and chain ID in your commands, as provided by your Landslide network setup (visible in the first terminal).
If commands fail, double-check your node URL and chain ID from the first terminal.
Ensure your private key has sufficient funds for gas fees.
Verify that your Landslide network is still running and healthy in the first terminal.
For more advanced usage or specific contract interactions, refer to the CosmWasm documentation and your contract's specific interface.
Run Landslide local network following
"key": "code_id"The value associated with this code_id is the unique identifier assigned to your uploaded smart contract. In this example, the code_id is 1.
instantiate_permission: Indicates who can instantiate this contract. In this case, "Everybody" means anyone can create an instance of this contract.git clone https://github.com/CosmWasm/wasmd.git && cd wasmdgit checkout v0.53.0make installwasmd version~/go/bin/wasmd version~/go/bin/wasmd keys add privatekey --recovertip yard art tape orchard universe angle flame wave gadget raven coyote crater ethics able evoke luxury predict leopard delay peanut embody blast soap~/go/bin/wasmd tx wasm store "./x/wasm/keeper/testdata/hackatom.wasm" \
--from privatekey \
--gas=auto --gas-adjustment=1.15 \
--node "REPLACE_WITH_YOUR_RPC_URL" \
--chain-id=landslide-testCopycode: 0
codespace: ""
data: ""
events: []
gas_used: "0"
gas_wanted: "0"
height: "0"
info: ""
logs: []
raw_log: ""
timestamp: ""
tx: null
txhash: F15A7FB824FA83D58E556224FE2D5BD59A4FC7FB8E50400D5B0649E78D873D53~/go/bin/wasmd q tx YOUR_TRANSACTION_HASH \
--node "REPLACE_WITH_YOUR_RPC_URL" \
-o json{
"height": "2",
"txhash": "F15A7FB824FA83D58E556224FE2D5BD59A4FC7FB8E50400D5B0649E78D873D53",
"codespace": "",
"code": 0,
"data": "124E0A262F636F736D7761736D2E7761736D2E76312E4D736753746F7265436F6465526573706F6E73651224080112203F4CD47C39C57FE1733FB41ED176EEBD9D5C67BAF5DF8A1EEDA1455E758F8514",
"raw_log": "",
"logs": [],
"info": "",
"gas_wanted": "1463549",
"gas_used": "1274349",
"tx": {
// ... (tx details)
},
"timestamp": "2024-09-06T12:13:32Z",
"events": [
// ... (other events)
{
"type": "store_code",
"attributes": [
{
"key": "code_checksum",
"value": "3f4cd47c39c57fe1733fb41ed176eebd9d5c67baf5df8a1eeda1455e758f8514",
"index": true
},
{
"key": "code_id",
"value": "1",
"index": true
},
{
"key": "msg_index",
"value": "0",
"index": true
}
]
}
]
}~/go/bin/wasmd q wasm code-info 1 \
--node "[REPLACE_WITH_YOUR_RPC_URL]" \
-o json{
"code_id": "1",
"creator": "wasm1kng6sqkm0mjuh09cwz6u86f75lmeflj9h0fqhr",
"data_hash": "3F4CD47C39C57FE1733FB41ED176EEBD9D5C67BAF5DF8A1EEDA1455E758F8514",
"instantiate_permission": {
"permission": "Everybody",
"addresses": []
}
}rly(VERSION) appended. For example, a memo of My custom memo running on relayer version v2.5.2 would result in a transaction memo of My custom memo | rly(v2.5.2). The --memo flag is also available for other rly commands also that involve sending transactions such as rly tx link and rly start. It can be passed there to override the config.yaml value if desired. To omit the memo entirely, including the default value of rly(VERSION), use - for the memo.Configure the chains you want to relay between. In our example, we will configure the relayer to operate on the canonical path between the Cosmos Hub and Osmosis.
The rly chains add command fetches chain meta-data from the chain-registry and adds it to your config file.
Adding chains from the chain-registry randomly selects an RPC address from the registry entry. If you are running your own node, manually go into the config and adjust the rpc-addr setting.
NOTE:
rly chains addwill check the liveliness of the available RPC endpoints for that chain in the chain-registry. It is possible that the command will fail if none of these RPC endpoints are available. In this case, you will want to manually add the chain config. To add the chain config files manually, example config files have been included here
Slide config example
Import OR create new keys for the relayer to use when signing and relaying transactions.
key-nameis an identifier of your choosing. If you need to generate a new private key you can use theaddsubcommand.
If you already have a private key and want to restore it from your mnemonic you can use the restore subcommand.
Use the key-name created above.
This step is necessary if you chose a
key-nameother than "default"
Ensure the keys associated with the configured chains are funded.
Your configured addresses will need to contain some of the respective native tokens for paying relayer fees.
You can query the balance of each configured key by running:
Configure path meta-data in config file.
We have the chain meta-data configured, now we need path meta-data. For more info on path terminology visit here.
NOTE: Thinking of chains in the config as "source" and "destination" can be confusing. Be aware that most path are bi-directional.
rly paths fetch will check for IBC path meta data from the chain-registry and add these paths to your config file.
NOTE: Don't see the path metadata for paths you want to relay on? Please open a PR to add this metadata to the GitHub repo!
Configure the channel filter.
By default, the relayer will relay packets over all channels on a given connection.
Each path has a src-channel-filter which you can utilize to specify which channels you would like to relay on.
The rule can be one of three values:
allowlist which tells the relayer to relay on ONLY the channels in channel-list
denylist which tells the relayer to relay on all channels BESIDES the channels in channel-list
empty value, which is the default setting, and tells the relayer to relay on all channels
Since we are only worried about the canonical channel between the Cosmos Hub and Landslide our filter settings would look like the following. Example:
Because two channels between chains are tightly coupled, there is no need to specify the dst channels. If you only know the "dst" channel-ID you can query the "src" channel-ID by running:
rly q channel <dst_chain_name> <dst_channel_id> <port> | jq '.channel.counterparty.channel_id'
Finally, we start the relayer on the desired path. The relayer will periodically update the clients and listen for IBC messages to relay.
When running multiple instances of
rly start, you will need to use the--debug-addrflag and provide an address:port. You can also pass an empty string''to turn off this feature or passlocalhost:0to randomly select a port.
Slide SDK and landslide-runner are already installed and set up.
You have obtained a Blockchain ID from the landslide-runner.
First, we need to deploy Andromeda to your local Landslide network:
Navigate to the landslide-runner directory (installed earlier):
Run the following command to deploy Andromeda:
Replace <blockchain-ID> with the actual Blockchain ID you received from the landslide-runner.
For example:
Wait for the deployment process to complete. This may take a few minutes.
Let's break down what happened when you ran that ./andr.sh command.
The ./andr.sh command sets up Andromeda on your local Landslide network. It deploys several smart contracts that make up the Andromeda system.
The Good Stuff:
The script connected to your Landslide network successfully. Yay!
It deployed several important contracts:
Andromeda Kernel (the brain of the system)
VFS (Virtual File System, for managing data)
Your Andromeda system is mostly set up. 🎉
Try using the Andromeda CLI to interact with your newly deployed contracts. This will help you confirm what's working.
It might be helpful to check the current state of your network before running the deployment script. There could be existing contracts or transactions that are affecting the process.
If you continue to encounter issues, it may be worth discussing with more experienced team members or consulting the Andromeda documentation for troubleshooting steps.
As you work more with blockchain systems like Andromeda, you'll encounter various errors and edge cases. Each one is an opportunity to deepen your understanding of how these systems work under the hood.
After deploying Andromeda to your local network, install the Andromeda CLI globally:
Now, configure the Andromeda CLI to connect to your local Landslide network:
Create the configuration directory (if it doesn't exist):
Create and open the configuration file in a text editor:
Copy and paste the following JSON content into the file:
Replace <BLOCKCHAIN_ID> in the chainUrl
To verify that Andromeda is correctly installed and configured:
Start the Andromeda CLI:
In the CLI, switch to the Landslide network:
If successful, you should now be connected to your local Landslide network.
When you run the command chain use landslide-test in the Andromeda CLI, you should expect to see output similar to the following:
Successful Steps:
The CLI successfully loads the configurations.
It confirms that the config is loaded.
It attempts to connect to the client (your local Landslide network).
The configuration for your landslide-test network is correct and recognized by the CLI.
The CLI can connect to your local Landslide network.
Some expected contracts or data aren't available yet, which is normal at this stage.
You can proceed with the next steps in setting up your Andromeda environment.
After seeing this output, you can continue with the next steps in the setup process, such as adding a wallet or deploying contracts. The error message does not prevent you from proceeding with these tasks.
If you encounter different errors or issues, please consult with your team lead or refer to the troubleshooting section of the Andromeda documentation.
After successfully connecting to the landslide-test network, the next step is to add a wallet. This wallet will be used for transactions and interactions with smart contracts on your local Landslide network.
In the Andromeda CLI, enter the following command:
You will be prompted to enter a password. Choose a secure password and remember it, as you'll need it for future interactions with this wallet.
After entering the password, you'll be asked to input a mnemonic phrase. For this setup, use *this specific private key*, as we loaded it with testnet tokens. Enter this mnemonic:
Enter the mnemonic phrase exactly as shown above when prompted.
After entering the mnemonic, you should see output similar to the following:
The error message is similar to what you saw when connecting to the network. This is normal at this stage of the setup.
Despite the error, the wallet should be successfully added to your Andromeda CLI configuration.
To confirm that the wallet was added successfully:
Exit the Andromeda CLI:
Restart the Andromeda CLI:
Once back in the CLI, you should see a prompt indicating you're using the test wallet:
You can now switch to the landslide-test network again:
With your wallet set up, you're now ready to interact with your local Landslide network using the Andromeda CLI. The next steps typically involve deploying contracts or interacting with existing ones on your network.
Remember, the mnemonic phrase is crucial for accessing your wallet. In a real-world scenario, you should never share your mnemonic phrase. This test mnemonic is for local development purposes only.
If you encounter any issues during this process that differ from what's described here, please consult with your team lead or refer to the troubleshooting section of the Andromeda documentation.
Now that you've set up Andromeda, here are some basic operations you can perform:
To check the balance of an address, follow these steps:
In the Andromeda CLI, type the following command and hit Enter:
You will be prompted to enter the denom (denomination) of the token. For our current setup, we are using "stake". So, type:
and hit Enter.
Next, you'll be prompted to enter the address. Use this address:
and hit Enter.
To transfer funds to another address:
You can set various keys in the kernel. Here are examples for economics, vfs, and adodb keys:
To query the kernel for set keys:
To get information about a deployed contract:
Mint Tokens
Transfer Tokens
Check Token Balance
To interact with the VFS (Virtual File System):
To interact with the economics contract:
To check current sales on the CW20-Exchange:
This guide covers the basics of setting up and using the Slide SDK with Andromeda CLI. As you become more familiar with these operations, you'll be able to build more complex interactions and applications on the Landslide network.
Remember to always refer to the most up-to-date documentation and seek help from more experienced developers when dealing with advanced topics or issues.
A short primer on IBC
Here is a primer on the key aspects of the Inter-blockchain Communication (IBC) protocol:
Standard protocol for blockchain networks to communicate
Allows transfer of data and value between heterogeneous chains
Developed by Cosmos but blockchain agnostic
Light clients verify state proofs from other chains
Allow verifying transactions without running a full node
Establishes a verified link between two chain's clients
Enables creation of channels
Unidirectional data pipes between chains
Facilitate asynchronous, ordered packet passing
Forward packets between chains along opened channels
Can be nodes or external processes
Asset tracking maintains fungibility across zones
Escrow, transfer and mint/burn allows cross-chain atomicity
Token transfers (liquidity, arbitrage)
Atomic swaps
Cross-chain smart contracts
Decentralized bridges
Interoperability between blockchain networks
Expanded liquidity and composability
Trust minimization between counterparties
Censorship resistance via decoupling
protocol is a standard communication protocol that enables blockchain networks to interoperate with each other. It allows different blockchain networks to communicate and transfer value in a secure manner, creating a truly decentralized and interconnected ecosystem. For the Cosmos ecosystem, IBC is a critical component that enables Cosmos chains to connect and interact with each other, enabling new use cases and expanding the reach of the ecosystem. With IBC, Cosmos chains can seamlessly transfer assets, data, and logic across different chains, opening up new possibilities for decentralized applications and enabling greater network effects.
Additionally, IBC is not limited to only Cosmos chains. With the emergence of multi-chain ecosystems such as Polkadot and Ethereum 2.0, the ability to communicate and transfer value between different chains will become increasingly important for users. IBC provides a standardized protocol for cross-chain communication, allowing for interoperability between chains regardless of their underlying technology or consensus mechanism. This opens up a wide range of possibilities for users, such as accessing decentralized applications and assets on different chains or taking advantage of unique features and capabilities of different ecosystems.
This shows:
Chains establish IBC connection handshake
Each chain sends header and commit proofs to the other
The receiving chain verifies the proof using the IBC client
This allows each chain to verify proofs from the other without running a full node
So the IBC clients allow trustlessly verifying proofs and packet data to facilitate cross-chain interoperation without the overhead of running full nodes.
Explanation:
The connection handshake allows two chains to establish a secure, verified link between their respective IBC clients.
Chain A's client creates a connection handshake packet to start the process. This contains data like Chain A's client ID, desired connection version and parameters, proofs, and signatures.
Chain A relays this packet to Chain B via an IBC relayer.
So the two-way handshake allows the clients to verify each other's proofs and signatures to establish trust required for further cross-chain interactions like creating channels.
Explanation:
IBC channels are unidirectional data pipelines allowing asynchronous cross-chain communication.
Chain A endpoint module sends an IBC data packet destined for Chain B.
Relayer picks up and forwards the packet to Chain B.
Chain B receives the packet on its endpoint module and processes it.
So in summary, IBC channels provide ordered, unidirectional data flow between chains facilitated by relayers. This allows modular cross-chain communication.
Explanation:
IBC relayers forward packets between blockchains along opened IBC channels.
Chain A sends an IBC packet destined to Chain B to a relayer.
The relayer stores the packet temporarily until it can be forwarded.
The relayer then forwards the packet to Chain B along the channel.
So in summary, relayers provide the key role of forwarding IBC packets and acknowledgements between blockchains to facilitate cross-chain communication.
Explanation:
IBC enables cross-chain atomic token transfers between chains.
On Chain A, the sender escrows tokens into the IBC module. This locks the tokens.
Chain A relays a packet to Chain B to transfer the escrowed tokens.
Chain B verifies the packet data then mints new tokens to the receiver.
So IBC enables atomic cross-chain token transfers while tracking assets across zones to maintain fungibility.
$ rly chains add cosmoshub slide$ rly chains add --url https://raw.githubusercontent.com/cosmos/relayer/main/docs/example-configs/cosmoshub-4.json cosmoshubglobal:
api-listen-addr: :5183
timeout: 10s
memo: ""
light-cache-size: 20
log-level: ""
ics20-memo-limit: 0
max-receiver-size: 0
chains:
slide:
type: avalanche
value:
rpc-addr: http://127.0.0.1:9650/ext/bc/2qdf414xEdWsmjSK1Q59Gautq6fERXbXm4jJnJkZ6MfFBB6PaH/rpc
base-rpc-addr: http://127.0.0.1:9650
subnet-id: 2c1CbR7FGYdeFPB4WaeWphHZrChLH7TQ92FRW6U4mCWTnaxVsB
blockchain-id: 2qdf414xEdWsmjSK1Q59Gautq6fERXbXm4jJnJkZ6MfFBB6PaH
chain-id: "slide"
network-id: 1337
timeout: 10s
contract-address: 0x0300000000000000000000000000000000000002
transferrer-address: 0x17aB05351fC94a1a67Bf3f56DdbB941aE6c63E25
key-directory: ~.relayer/keys/avalanche-slide
key: testkey
keyring-backend: test
extra-codecs: []
min-loop-duration: 0s
ibcgo:
type: cosmos
value:
key-directory: ~/.relayer/keys/ibcgo
key: testkey
chain-id: ibcgo
rpc-addr: http://localhost:26657
account-prefix: cosmos
keyring-backend: test
dynamic-gas-price: false
gas-adjustment: 1.5
gas-prices: 0.025stake
min-gas-amount: 0
max-gas-amount: 0
debug: true
timeout: 10s
block-timeout: ""
output-format: json
sign-mode: direct
extra-codecs: []
coin-type: null
signing-algorithm: ""
broadcast-mode: batch
min-loop-duration: 0s
extension-options: []
feegrants: null
paths:
demo:
src:
chain-id: slide
dst:
chain-id: ibcgo
src-channel-filter:
rule: ""
channel-list: []
demo2:
src:
chain-id: ibcgo
dst:
chain-id: slide
src-channel-filter:
rule: ""
channel-list: []$ rly keys add ibcgo [key-name]
$ rly keys add slide [key-name]$ rly keys restore ibcgo [key-name] "mnemonic words here"
$ rly keys restore slide [key-name] "mnemonic words here"$ rly keys use ibcgo [key-name]
$ rly keys use slide [key-name]$ rly q balance ibcgo
$ rly q balance slide$ rly paths fetch$ rly paths list
$ rly start [path]
# Optionally you can omit the `path` argument to start all configured paths
$ rly start$ git clone https://github.com/ConsiderItDone/relayer.git
$ cd relayer && git checkout main
$ make install$ rly config init$ rly config init --memo "My custom memo"ADODB (Andromeda Digitial Object Database; another data management component)
CW20 (a token contract)
CW20 Exchange (for trading those tokens)
Save the file and exit the text editor (in nano, press Ctrl+X, then Y, then Enter).
Expected Error:
You will see an error message starting with "Error: Query failed with (6):..."
This error is expected and not a cause for concern at this stage of setup.
The error occurs because the CLI is trying to query certain contracts (like the kernel or VFS) that aren't fully set up yet on your local network.
Prompt Change:
Despite the error, you should notice that your prompt changes to test@landslide-test>.
This indicates that you have successfully switched to the landslide-test network.
You may see an error message after adding the wallet. This is expected and not a cause for concern.
hubslide:
src:
chain-id: ibcgo
client-id: 07-tendermint-259
connection-id: connection-257
dst:
chain-id: slide
client-id: 14-avalanche-1
connection-id: connection-1
src-channel-filter:
rule: allowlist
channel-list: [channel-141]cd path/to/landslide-runner./andr.sh <blockchain-ID>./andr.sh M5Rj4ySM3g3ZREBJDJgaRCQxbqQutF1MXcHcniZEVZRKm9TPGnpm install -g @andromedaprotocol/climkdir -p ~/.andr-clinano ~/.andr-cli/chainConfigs.json[
{
"chainName": "landslide",
"chainId": "landslide-test",
"chainUrl": "http://127.0.0.1:9754/ext/bc/<BLOCKCHAIN_ID>/rpc",
"chainType": "testnet",
"registryAddress": "",
"addressPrefix": "wasm",
"defaultFee": "0.5stake",
"name": "landslide",
"blockExplorerAddressPages": [],
"blockExplorerTxPages": [],
"kernelAddress": "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d"
}
]andrchain use landslide? test@landslide-test> chain use landslide-test
- Loading configs...
— Loading config...
Config loaded!
– Connecting client...Error: Query failed with (6): type: cosmwasm_std::addresses::Addr; key: [00, 10, 6B, 65, 72, 6E, 65, 6C, 5F, 61, 64, 64, 72, 65, 73, 73, 65, 73, 76, 66, 73] not found: query wasm contract failed: unknown request
[... stack trace ...]wallet add test --recovertip yard art tape orchard universe angle flame wave gadget raven coyote crater ethics able evoke luxury predict leopard delay peanut embody blast soap? Enter password for wallet test: ********
? Enter mnemonic: ****************************************************************************************
Error: Query failed with (6): type: cosmwasm_std::addresses::Addr; key: [00, 10, 6B, 65, 72, 6E, 65, 6C, 5F, 61, 64, 64, 72, 65, 73, 73, 65, 73, 76, 66, 73] not found: query wasm contract failed: unknown request
[... stack trace ...]exitandr? test@<DISCONNECTED>>chain use landslide-testCopybank balanceCopystakeCopywasm1kng6sqkm0mjuh09cwz6u86f75lmeflj9h0fqhrtransfer wasm1c4w4jxdkvj3ygdycdkjy98jve6w0d7257eqfx9 10stakekernel set-key economics wasm1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqr5j2ht
kernel set-key vfs wasm17p9rzwnnfxcjp32un9ug7yhhzgtkhvl9jfksztgw5uh69wac2pgsm0v070
kernel set-key adodb wasm1ghd753shjuwexxywmgs4xz7x2q732vcnkm6h2pyv9s6ah3hylvrq8epk7wkernel queryado info wasm1eyfccmjm6732k7wp4p6gdjwhxjwsvje44j0hfx8nkgrm8fs7vqfsuw7selexecute wasm1eyfccmjm6732k7wp4p6gdjwhxjwsvje44j0hfx8nkgrm8fs7vqfsuw7sel '{"mint":{"recipient":"wasm1c4w4jxdkvj3ygdycdkjy98jve6w0d7257eqfx9","amount":"1000"}}'execute wasm1eyfccmjm6732k7wp4p6gdjwhxjwsvje44j0hfx8nkgrm8fs7vqfsuw7sel '{"transfer":{"recipient":"wasm1kng6sqkm0mjuh09cwz6u86f75lmeflj9h0fqhr","amount":"500"}}'query wasm1eyfccmjm6732k7wp4p6gdjwhxjwsvje44j0hfx8nkgrm8fs7vqfsuw7sel '{"balance":{"address":"wasm1c4w4jxdkvj3ygdycdkjy98jve6w0d7257eqfx9"}}'execute wasm17p9rzwnnfxcjp32un9ug7yhhzgtkhvl9jfksztgw5uh69wac2pgsm0v070 '{"get_possible_vfs_path":{"address":"wasm1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqr5j2ht"}}'execute wasm1nc5tatafv6eyq7llkr2gv50ff9e22mnf70qgjlv737ktmt4eswrqr5j2ht '{"get_funds":{}}'query wasm1pvrwmjuusn9wh34j7y520g8gumuy9xtl3gvprlljfdpwju3x7ucsfg5rpz '{"sale":{"asset":{"cw20":"wasm1eyfccmjm6732k7wp4p6gdjwhxjwsvje44j0hfx8nkgrm8fs7vqfsuw7sel"}}}'Oracle interoperation
When sending IBC packets, the destination chain can use its light client to verify packet proofs from the source chain
Chain B stores details like Chain A's client ID and consensus state to retain connection information.
Chain B constructs its own handshake packet to respond to Chain A, containing symmetric proofs and details.
Chain B relays its handshake response packet back to Chain A.
Chain A verifies Chain B's handshake response, stores the connection info, and sends a confirmation to complete the handshake.
This establishes an authenticated, verified link between both clients.
Now the chains can construct channels over this connection to pass application data.
Chain B sends back an acknowledgement to Chain A to confirm receipt.
Relayer forwards this acknowledgement back to Chain A.
Chain A receives confirmation that the packet was processed on Chain B.
Channels have ordering guarantees so packets are processed in order.
Multiple channels can exist between chains for different applications.
Channels are separate data pipes allowing modular communication between chains.
Chain B sends back an acknowledgement that is picked up by the relayer.
The relayer completes the loop by relaying the acknowledgement back to Chain A.
Relayers can be blockchain nodes or external validator processes dedicated to packet relaying.
There can be multiple relayers to prevent single points of failure.
Chain B confirms successful minting back to Chain A.
Finally, Chain A releases the tokens from escrow by burning them.
The escrow mechanism ensures the tokens are not double-spent across zones.
Minting/burning allows transfer of fungible value while maintaining total supply.
A learning resource 📕
2.) Fast Finality: Avalanche consensus provides sub-second, immutable finality, ensuring that transactions are quickly confirmed and irreversible. This is achieved without needing to limit the number of validators, as the consensus process is not dependent on the size of the validator set.
3.) Security Guarantees: Avalanche consensus is designed to resist various attacks, including Sybil attacks, distributed denial-of-service (DDoS) attacks, and collusion attacks. Its probabilistic nature (rather than the deterministic nature of all Tendermint chains) ensures that the consensus outcome converges to the desired state, even when the network is under attack.
4.) Proven Scalability: The scalability of the Avalanche consensus protocol is not just theoretical. The protocol has been implemented and tested live in the Avalanche network, demonstrating its ability to handle a large number of validators (currently 1,238) without compromising on performance or security.
One important aspect of expanding the Landslide ecosystem is the development of an open source IBC light client, which is being funded by the Interchain Foundation. This light client will allow Avalanche to communicate with other blockchain networks that also support IBC, enabling cross-chain communication and interoperability.
LandslideCore and LandslideSDK are important components in the development of this IBC light client, as they provide the necessary tools and infrastructure for building and deploying dApps on the Avalanche network. With the help of LandslideCore and LandslideSDK, developers can create and manage dApps that communicate with other blockchain networks through IBC, expanding the capabilities and reach of the Avalanche network.
Metastability: The algorithm is designed to be meta-stable, meaning that it can tolerate temporary partitions or forks in the network without compromising safety.
Binary consensus: Each validator in the subsample independently chooses between two binary values (e.g., 0 or 1) and broadcasts their decision to the rest of the subsample.
Repeated subsampling: If the subsample reaches consensus, the decision is propagated up to a larger subsample until the full validator set reaches agreement.
Overall, the Avalanche consensus algorithm is designed to be scalable, secure, and fast, with finality times on the order of seconds rather than minutes or multiple seconds.
Landslide's IBC light client for AVAX verifies and validates packet data from other chains using the existing open source IBC light client specification and appropriate cryptographic algorithms.
This file defines the JSON-RPC spec of CometBFT vs Landslide SDK. This is meant to be implemented by all clients.
Routes
✅
✅
✅
✅
NetInfo
✅
❌
Node heartbeat
None
JSONRPC
Get CometBFT status including node info, pubkey, latest block hash, app hash, block height and time.
None
JSONRPC
Get block headers. Returned in descending order. May be limited in quantity.
minHeight (integer): The lowest block to be returned in the response
maxHeight (integer): The highest block to be returned in the response
JSONRPC
Get block at a specified height.
height (integer): height of the requested block. If no height is specified the latest block will be used.
JSONRPC
hash (string): Hash of the block to query for.
JSONRPC
height (integer): Height of the block which contains the results. If no height is specified, the latest block height will be used
JSONRPC
height (integer): Height of the block the requested commit pertains to. If no height is set the latest commit will be returned.
JSONRPC
height (integer): Block height at which the validators were present on. If no height is set the latest commit will be returned.
page (integer):
per_page (integer):
JSONRPC
Get Genesis of the chain. If the response is large, this operation will return an error: use genesis_chunked instead.
JSONRPC
Get the genesis document in a chunks to support easily transferring larger documents.
chunk (integer): the index number of the chunk that you wish to fetch. These IDs are 0 indexed.
JSONRPC
Get the consensus parameters.
height (integer): Block height at which the consensus params would like to be fetched for.
JSONRPC
Get a list of unconfirmed transactions.
limit (integer) The amount of txs to respond with.
JSONRPC
Get data about unconfirmed transactions.
None
JSONRPC
hash (string): The hash of the transaction
prove (bool): If the response should include proof the transaction was included in a block.
JSONRPC
Response
Searches for transactions based on a query condition. Returns matching transactions along with their details.
query (string): The query condition for searching transactions (e.g., "tx.height=1").
prove (boolean): Indicates whether to include proof data for each transaction.
page (string): The page number for paginated results.
JSONRPC
Searches for blocks based on a query condition. Returns matching blocks along with their details.
query (string): The query condition for searching blocks (e.g., "block.height > 1").
page (string): The page number for paginated results.
per_page (string): The number of blocks to show per page.
JSONRPC
Returns with the response from CheckTx. Does not wait for DeliverTx result.
tx (string): The transaction encoded
JSONRPC
Response
Returns right away, with no response. Does not wait for CheckTx nor DeliverTx results.
tx (string): The transaction encoded
JSONRPC
Checks the transaction without executing it.
tx (string): String of the encoded transaction
JSONRPC
Get some info about the application.
None
JSONRPC
Query the application for some information.
path (string): A request path for the application to interpret analogously to a in e.g. routing.
data (string): Request parameters for the application to interpret analogously to a , expressed as hexadecimal-serialized bytes (convert WasmApp to hex is 5761736d417070).
height (integer)
JSONRPC
per_page (string): The number of transactions to show per page.
order_by (string): Specifies the sort order ("asc" or "desc").
order_by (string): Specifies the sort order ("asc" or "desc").
prove (bool): Return Merkle proof with response if possible.
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
❌
✅
❌
✅
✅
✅
✅
✅
✅
✅
✅
✅
BroadcastEvidence
✅
❌
curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"health\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"status\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"node_info": {
"protocol_version": {
"p2p": "8",
"block": "11",
"app": "0"
},
"id": "cb912d5ed8d2cdc31ba42aad6ec37bd640fdce62",
"listen_addr": "/ext/bc/2rUgWwRguT2uAzPFTZSz2XrJiVZhif5Yv6NKGupFj89CJTEfQu/rpc",
"network": "landslide-test",
"version": "0.38.9",
"channels": "",
"moniker": "cb912d5ed8d2cdc31ba42aad6ec37bd640fdce62",
"other": {
"tx_index": "",
"rpc_address": ""
}
},
"sync_info": {
"latest_block_hash": "775DD3BBA679E6B6467CCCA2E67E7498BE5F2F60219EEEFE34EF40C28D5EA5CC",
"latest_app_hash": "A3C8A1E113E269D723F33A0483ADCEB3EE25D2EC23690BB2E4574367F0EF6417",
"latest_block_height": "39",
"latest_block_time": "2024-09-20T14:37:47.720065252Z",
"earliest_block_hash": "44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC",
"earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"earliest_block_height": "1",
"earliest_block_time": "2024-06-11T19:47:02.588140664Z",
"catching_up": false
},
"validator_info": {
"address": "29CFC6376255A78451EEB4B129ED8EACFFA2FEEF",
"pub_key": {
"type": "tendermint/PubKeySecp256k1",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"voting_power": "0"
}
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"blockchain\",\"params\":{\"minHeight\":\"1\", \"maxHeight\":\"2\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"last_height": "67",
"block_metas": [
{
"block_id": {
"hash": "565633D9EF2063810FEDC5716CFFDED1879F334D051BEC8DCE9BBBD99F9DA478",
"parts": {
"total": 1,
"hash": "974BADDC7392A1DE56C3C586730C37371AF76B2F95BF155AF730B71C757A5ED6"
}
},
"block_size": "913",
"header": {
"version": {
"block": "11"
},
"chain_id": "landslide-test",
"height": "2",
"time": "2024-08-29T13:03:49.002664646Z",
"last_block_id": {
"hash": "44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC",
"parts": {
"total": 1,
"hash": "4001074D14084CC16C61F106675C45DB62732F0A8B5CFBEBD866AB283122C72F"
}
},
"last_commit_hash": "0165478ECE0A31DF2A5F8CF42DA468B42FEB1929404D28E05F587C82B8B69249",
"data_hash": "1969C3306F08030618232225F8B445BD32046E7C297EE2DDA10DC2747EB3F7AC",
"validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"next_validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"app_hash": "63C7D00C46CAA24D0F8745F90CBBC4F573CB77FD1D5F9B80A50AFBEFD83386CB",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"proposer_address": "0000000000000000000000000000000000000000"
},
"num_txs": "1"
},
{
"block_id": {
"hash": "44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC",
"parts": {
"total": 1,
"hash": "4001074D14084CC16C61F106675C45DB62732F0A8B5CFBEBD866AB283122C72F"
}
},
"block_size": "347",
"header": {
"version": {
"block": "11"
},
"chain_id": "landslide-test",
"height": "1",
"time": "2024-06-11T19:47:02.588140664Z",
"last_block_id": {
"hash": "",
"parts": {
"total": 0,
"hash": ""
}
},
"last_commit_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"data_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"next_validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"proposer_address": "0000000000000000000000000000000000000000"
},
"num_txs": "0"
}
]
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"block\",\"params\":{\"height\":\"1\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"block_id": {
"hash": "44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC",
"parts": {
"total": 1,
"hash": "4001074D14084CC16C61F106675C45DB62732F0A8B5CFBEBD866AB283122C72F"
}
},
"block": {
"header": {
"version": {
"block": "11"
},
"chain_id": "landslide-test",
"height": "1",
"time": "2024-06-11T19:47:02.588140664Z",
"last_block_id": {
"hash": "",
"parts": {
"total": 0,
"hash": ""
}
},
"last_commit_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"data_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"next_validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"proposer_address": "0000000000000000000000000000000000000000"
},
"data": {
"txs": []
},
"evidence": {
"evidence": []
},
"last_commit": {
"height": "0",
"round": 0,
"block_id": {
"hash": "",
"parts": {
"total": 0,
"hash": ""
}
},
"signatures": []
}
}
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"block_by_hash\",\"params\":{\"hash\":\"44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"block_id": {
"hash": "",
"parts": {
"total": 0,
"hash": ""
}
},
"block": null
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"block_results\",\"params\":{\"height\":\"1\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": null
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"commit\",\"params\":{\"height\":\"1\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"signed_header": {
"header": {
"version": {
"block": "11"
},
"chain_id": "landslide-test",
"height": "1",
"time": "2024-06-11T19:47:02.588140664Z",
"last_block_id": {
"hash": "",
"parts": {
"total": 0,
"hash": ""
}
},
"last_commit_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"data_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"next_validators_hash": "B797D57B0083DA5EE04C7966CB8F3FA7F75B5767B1F5FCABABB53B0765738981",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"proposer_address": "0000000000000000000000000000000000000000"
},
"commit": {
"height": "1",
"round": 0,
"block_id": {
"hash": "44F0AC57A9A6FA4647A5F6CEA962D081DA9AD1CC8C871BE9725716F34CA08FAC",
"parts": {
"total": 1,
"hash": "4001074D14084CC16C61F106675C45DB62732F0A8B5CFBEBD866AB283122C72F"
}
},
"signatures": [
{
"block_id_flag": 3,
"validator_address": "CB3E8C3DF2B14CBB3538043B49C39DFBEF4B0F80",
"timestamp": "2024-08-29T13:03:49.002664646Z",
"signature": "SWJPZyHs3GpGxGf3UG1iBJAoc9Sd2b6vBKU1n16iRPk22ZcFEMSdCwoCq9uh7t2/Lvk66byOW0P05/2Q0+2aRA=="
}
]
}
},
"canonical": true
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"validators\",\"params\":{\"height\":\"1\", \"page\":\"1\", \"per_page\":\"20\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"block_height": "1",
"validators": [
{
"address": "CB3E8C3DF2B14CBB3538043B49C39DFBEF4B0F80",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "yD+2h7vYYmrU1AA+7sMTv1UjKE8T7hVhgMqr9Ez/HA8="
},
"voting_power": "250",
"proposer_priority": "0"
}
],
"count": "1",
"total": "1"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"genesis\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"genesis": {
"genesis_time": "2024-06-11T19:47:02.588140664Z",
"chain_id": "landslide-test",
"initial_height": "1",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1"
},
"evidence": {
"max_age_num_blocks": "100000",
"max_age_duration": "172800000000000",
"max_bytes": "1048576"
},
"validator": {
"pub_key_types": [
"ed25519"
]
},
"version": {
"app": "0"
},
"abci": {
"vote_extensions_enable_height": "0"
}
},
"app_hash": "",
"app_state": {
"07-tendermint": null,
"auth": {
"params": {
"max_memo_characters": "256",
"tx_sig_limit": "7",
"tx_size_cost_per_byte": "10",
"sig_verify_cost_ed25519": "590",
"sig_verify_cost_secp256k1": "1000"
},
"accounts": [
{
"@type": "/cosmos.auth.v1beta1.BaseAccount",
"address": "wasm1vcw0he5l9mu54zawg3h440p83ex70ccmme53ac",
"pub_key": null,
"account_number": "0",
"sequence": "0"
},
{
"@type": "/cosmos.auth.v1beta1.BaseAccount",
"address": "wasm1kng6sqkm0mjuh09cwz6u86f75lmeflj9h0fqhr",
"pub_key": null,
"account_number": "1",
"sequence": "0"
},
{
"@type": "/cosmos.auth.v1beta1.BaseAccount",
"address": "wasm1c4w4jxdkvj3ygdycdkjy98jve6w0d7257eqfx9",
"pub_key": null,
"account_number": "2",
"sequence": "0"
}
]
},
"authz": {
"authorization": []
},
"bank": {
"params": {
"send_enabled": [],
"default_send_enabled": true
},
"balances": [
{
"address": "wasm1vcw0he5l9mu54zawg3h440p83ex70ccmme53ac",
"coins": [
{
"denom": "stake",
"amount": "1000000000"
}
]
},
{
"address": "wasm1kng6sqkm0mjuh09cwz6u86f75lmeflj9h0fqhr",
"coins": [
{
"denom": "stake",
"amount": "1000000000"
}
]
}
],
"supply": [
{
"denom": "stake",
"amount": "2000000000"
}
],
"denom_metadata": [],
"send_enabled": []
},
"capability": {
"index": "1",
"owners": []
},
"circuit": {
"account_permissions": [],
"disabled_type_urls": []
},
"consensus": null,
"crisis": {
"constant_fee": {
"denom": "stake",
"amount": "1000"
}
},
"distribution": {
"params": {
"community_tax": "0.020000000000000000",
"base_proposer_reward": "0.000000000000000000",
"bonus_proposer_reward": "0.000000000000000000",
"withdraw_addr_enabled": true
},
"fee_pool": {
"community_pool": []
},
"delegator_withdraw_infos": [],
"previous_proposer": "",
"outstanding_rewards": [],
"validator_accumulated_commissions": [],
"validator_historical_rewards": [],
"validator_current_rewards": [],
"delegator_starting_infos": [],
"validator_slash_events": []
},
"evidence": {
"evidence": []
},
"feegrant": {
"allowances": []
},
"feeibc": {
"identified_fees": [],
"fee_enabled_channels": [],
"registered_payees": [],
"registered_counterparty_payees": [],
"forward_relayers": []
},
"genutil": {
"gen_txs": [
{
"body": {
"messages": [
{
"@type": "/cosmos.staking.v1beta1.MsgCreateValidator",
"description": {
"moniker": "node1",
"identity": "",
"website": "",
"security_contact": "",
"details": ""
},
"commission": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
},
"min_self_delegation": "1",
"delegator_address": "",
"validator_address": "wasmvaloper1vcw0he5l9mu54zawg3h440p83ex70ccmw9pdnz",
"pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "yD+2h7vYYmrU1AA+7sMTv1UjKE8T7hVhgMqr9Ez/HA8="
},
"value": {
"denom": "stake",
"amount": "250000000"
}
}
],
"memo": "[email protected]:26656",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [
{
"public_key": {
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "AhFggXG8fW08HKDacLjhUV28l6qQQz67ZAuoHGDlwCx4"
},
"mode_info": {
"single": {
"mode": "SIGN_MODE_DIRECT"
}
},
"sequence": "0"
}
],
"fee": {
"amount": [],
"gas_limit": "200000",
"payer": "",
"granter": ""
},
"tip": null
},
"signatures": [
"elAiSB50eI2jd8Oi/GRePGKiaA4YQ5v2mUmZoTyl1fYPuFG/PDvrQfO8puQjgQ7tAshWVUxWIQt9VDgRhxOrww=="
]
}
]
},
"gov": {
"starting_proposal_id": "1",
"deposits": [],
"votes": [],
"proposals": [],
"deposit_params": null,
"voting_params": null,
"tally_params": null,
"params": {
"min_deposit": [
{
"denom": "stake",
"amount": "10000000"
}
],
"max_deposit_period": "172800s",
"voting_period": "172800s",
"quorum": "0.334000000000000000",
"threshold": "0.500000000000000000",
"veto_threshold": "0.334000000000000000",
"min_initial_deposit_ratio": "0.000000000000000000",
"proposal_cancel_ratio": "0.500000000000000000",
"proposal_cancel_dest": "",
"expedited_voting_period": "86400s",
"expedited_threshold": "0.667000000000000000",
"expedited_min_deposit": [
{
"denom": "stake",
"amount": "50000000"
}
],
"burn_vote_quorum": false,
"burn_proposal_deposit_prevote": false,
"burn_vote_veto": true,
"min_deposit_ratio": "0.010000000000000000"
},
"constitution": ""
},
"group": {
"group_seq": "0",
"groups": [],
"group_members": [],
"group_policy_seq": "0",
"group_policies": [],
"proposal_seq": "0",
"proposals": [],
"votes": []
},
"ibc": {
"client_genesis": {
"clients": [],
"clients_consensus": [],
"clients_metadata": [],
"params": {
"allowed_clients": [
"06-solomachine",
"07-tendermint",
"09-localhost"
]
},
"create_localhost": false,
"next_client_sequence": "0"
},
"connection_genesis": {
"connections": [],
"client_connection_paths": [],
"next_connection_sequence": "0",
"params": {
"max_expected_time_per_block": "30000000000"
}
},
"channel_genesis": {
"channels": [],
"acknowledgements": [],
"commitments": [],
"receipts": [],
"send_sequences": [],
"recv_sequences": [],
"ack_sequences": [],
"next_channel_sequence": "0"
}
},
"interchainaccounts": {
"controller_genesis_state": {
"active_channels": [],
"interchain_accounts": [],
"ports": [],
"params": {
"controller_enabled": true
}
},
"host_genesis_state": {
"active_channels": [],
"interchain_accounts": [],
"port": "icahost",
"params": {
"host_enabled": true,
"allow_messages": [
"*"
]
}
}
},
"mint": {
"minter": {
"inflation": "0.130000000000000000",
"annual_provisions": "0.000000000000000000"
},
"params": {
"mint_denom": "stake",
"inflation_rate_change": "0.130000000000000000",
"inflation_max": "0.200000000000000000",
"inflation_min": "0.070000000000000000",
"goal_bonded": "0.670000000000000000",
"blocks_per_year": "6311520"
}
},
"nft": {
"classes": [],
"entries": []
},
"params": null,
"slashing": {
"params": {
"signed_blocks_window": "100",
"min_signed_per_window": "0.500000000000000000",
"downtime_jail_duration": "600s",
"slash_fraction_double_sign": "0.050000000000000000",
"slash_fraction_downtime": "0.010000000000000000"
},
"signing_infos": [],
"missed_blocks": []
},
"staking": {
"params": {
"unbonding_time": "1814400s",
"max_validators": 100,
"max_entries": 7,
"historical_entries": 10000,
"bond_denom": "stake",
"min_commission_rate": "0.000000000000000000"
},
"last_total_power": "0",
"last_validator_powers": [],
"validators": [],
"delegations": [],
"unbonding_delegations": [],
"redelegations": [],
"exported": false
},
"transfer": {
"port_id": "transfer",
"denom_traces": [],
"params": {
"send_enabled": true,
"receive_enabled": true
},
"total_escrowed": []
},
"upgrade": {},
"vesting": {},
"wasm": {
"params": {
"code_upload_access": {
"permission": "Everybody",
"addresses": []
},
"instantiate_default_permission": "Everybody"
},
"codes": [],
"contracts": [],
"sequences": []
}
}
}
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"genesis_chunked\",\"params\":{\"chunk\":\"0\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"chunk": "0",
"total": "1",
"data": "ewogICJhcHBfbmFtZSI6ICJ3YXNtZCIsCiAgImFwcF92ZXJzaW9uIjogIjAuNTAuMCIsCiAgImdlbmVzaXNfdGltZSI6ICIyMDI0LTA2LTExVDE5OjQ3OjAyLjU4ODE0MDY2NFoiLAogICJjaGFpbl9pZCI6ICJsYW5kc2xpZGUtdGVzdCIsCiAgImluaXRpYWxfaGVpZ2h0IjogIjAiLAogICJhcHBfaGFzaCI6IG51bGwsCiAgImFwcF9zdGF0ZSI6IHsKICAgICIwNy10ZW5kZXJtaW50IjogbnVsbCwKICAgICJhdXRoIjogewogICAgICAicGFyYW1zIjogewogICAgICAgICJtYXhfbWVtb19jaGFyYWN0ZXJzIjogIjI1NiIsCiAgICAgICAgInR4X3NpZ19saW1pdCI6ICI3IiwKICAgICAgICAidHhfc2l6ZV9jb3N0X3Blcl9ieXRlIjogIjEwIiwKICAgICAgICAic2lnX3ZlcmlmeV9jb3N0X2VkMjU1MTkiOiAiNTkwIiwKICAgICAgICAic2lnX3ZlcmlmeV9jb3N0X3NlY3AyNTZrMSI6ICIxMDAwIgogICAgICB9LAogICAgICAiYWNjb3VudHMiOiBbCiAgICAgICAgewogICAgICAgICAgIkB0eXBlIjogIi9jb3Ntb3MuYXV0aC52MWJldGExLkJhc2VBY2NvdW50IiwKICAgICAgICAgICJhZGRyZXNzIjogIndhc20xdmN3MGhlNWw5bXU1NHphd2czaDQ0MHA4M2V4NzBjY21tZTUzYWMiLAogICAgICAgICAgInB1Yl9rZXkiOiBudWxsLAogICAgICAgICAgImFjY291bnRfbnVtYmVyIjogIjAiLAogICAgICAgICAgInNlcXVlbmNlIjogIjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiQHR5cGUiOiAiL2Nvc21vcy5hdXRoLnYxYmV0YTEuQmFzZUFjY291bnQiLAogICAgICAgICAgImFkZHJlc3MiOiAid2FzbTFrbmc2c3FrbTBtanVoMDljd3o2dTg2Zjc1bG1lZmxqOWgwZnFociIsCiAgICAgICAgICAicHViX2tleSI6IG51bGwsCiAgICAgICAgICAiYWNjb3VudF9udW1iZXIiOiAiMSIsCiAgICAgICAgICAic2VxdWVuY2UiOiAiMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJAdHlwZSI6ICIvY29zbW9zLmF1dGgudjFiZXRhMS5CYXNlQWNjb3VudCIsCiAgICAgICAgICAiYWRkcmVzcyI6ICJ3YXNtMWM0dzRqeGRrdmozeWdkeWNka2p5OThqdmU2dzBkNzI1N2VxZng5IiwKICAgICAgICAgICJwdWJfa2V5IjogbnVsbCwKICAgICAgICAgICJhY2NvdW50X251bWJlciI6ICIyIiwKICAgICAgICAgICJzZXF1ZW5jZSI6ICIwIgogICAgICAgIH0KICAgICAgXQogICAgfSwKICAgICJhdXRoeiI6IHsKICAgICAgImF1dGhvcml6YXRpb24iOiBbXQogICAgfSwKICAgICJiYW5rIjogewogICAgICAicGFyYW1zIjogewogICAgICAgICJzZW5kX2VuYWJsZWQiOiBbXSwKICAgICAgICAiZGVmYXVsdF9zZW5kX2VuYWJsZWQiOiB0cnVlCiAgICAgIH0sCiAgICAgICJiYWxhbmNlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiYWRkcmVzcyI6ICJ3YXNtMXZjdzBoZTVsOW11NTR6YXdnM2g0NDBwODNleDcwY2NtbWU1M2FjIiwKICAgICAgICAgICJjb2lucyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJkZW5vbSI6ICJzdGFrZSIsCiAgICAgICAgICAgICAgImFtb3VudCI6ICIxMDAwMDAwMDAwIgogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiYWRkcmVzcyI6ICJ3YXNtMWtuZzZzcWttMG1qdWgwOWN3ejZ1ODZmNzVsbWVmbGo5aDBmcWhyIiwKICAgICAgICAgICJjb2lucyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJkZW5vbSI6ICJzdGFrZSIsCiAgICAgICAgICAgICAgImFtb3VudCI6ICIxMDAwMDAwMDAwIgogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdLAogICAgICAic3VwcGx5IjogWwogICAgICAgIHsKICAgICAgICAgICJkZW5vbSI6ICJzdGFrZSIsCiAgICAgICAgICAiYW1vdW50IjogIjIwMDAwMDAwMDAiCiAgICAgICAgfQogICAgICBdLAogICAgICAiZGVub21fbWV0YWRhdGEiOiBbXSwKICAgICAgInNlbmRfZW5hYmxlZCI6IFtdCiAgICB9LAogICAgImNhcGFiaWxpdHkiOiB7CiAgICAgICJpbmRleCI6ICIxIiwKICAgICAgIm93bmVycyI6IFtdCiAgICB9LAogICAgImNpcmN1aXQiOiB7CiAgICAgICJhY2NvdW50X3Blcm1pc3Npb25zIjogW10sCiAgICAgICJkaXNhYmxlZF90eXBlX3VybHMiOiBbXQogICAgfSwKICAgICJjb25zZW5zdXMiOiBudWxsLAogICAgImNyaXNpcyI6IHsKICAgICAgImNvbnN0YW50X2ZlZSI6IHsKICAgICAgICAiZGVub20iOiAic3Rha2UiLAogICAgICAgICJhbW91bnQiOiAiMTAwMCIKICAgICAgfQogICAgfSwKICAgICJkaXN0cmlidXRpb24iOiB7CiAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgImNvbW11bml0eV90YXgiOiAiMC4wMjAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJiYXNlX3Byb3Bvc2VyX3Jld2FyZCI6ICIwLjAwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgImJvbnVzX3Byb3Bvc2VyX3Jld2FyZCI6ICIwLjAwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgIndpdGhkcmF3X2FkZHJfZW5hYmxlZCI6IHRydWUKICAgICAgfSwKICAgICAgImZlZV9wb29sIjogewogICAgICAgICJjb21tdW5pdHlfcG9vbCI6IFtdCiAgICAgIH0sCiAgICAgICJkZWxlZ2F0b3Jfd2l0aGRyYXdfaW5mb3MiOiBbXSwKICAgICAgInByZXZpb3VzX3Byb3Bvc2VyIjogIiIsCiAgICAgICJvdXRzdGFuZGluZ19yZXdhcmRzIjogW10sCiAgICAgICJ2YWxpZGF0b3JfYWNjdW11bGF0ZWRfY29tbWlzc2lvbnMiOiBbXSwKICAgICAgInZhbGlkYXRvcl9oaXN0b3JpY2FsX3Jld2FyZHMiOiBbXSwKICAgICAgInZhbGlkYXRvcl9jdXJyZW50X3Jld2FyZHMiOiBbXSwKICAgICAgImRlbGVnYXRvcl9zdGFydGluZ19pbmZvcyI6IFtdLAogICAgICAidmFsaWRhdG9yX3NsYXNoX2V2ZW50cyI6IFtdCiAgICB9LAogICAgImV2aWRlbmNlIjogewogICAgICAiZXZpZGVuY2UiOiBbXQogICAgfSwKICAgICJmZWVncmFudCI6IHsKICAgICAgImFsbG93YW5jZXMiOiBbXQogICAgfSwKICAgICJmZWVpYmMiOiB7CiAgICAgICJpZGVudGlmaWVkX2ZlZXMiOiBbXSwKICAgICAgImZlZV9lbmFibGVkX2NoYW5uZWxzIjogW10sCiAgICAgICJyZWdpc3RlcmVkX3BheWVlcyI6IFtdLAogICAgICAicmVnaXN0ZXJlZF9jb3VudGVycGFydHlfcGF5ZWVzIjogW10sCiAgICAgICJmb3J3YXJkX3JlbGF5ZXJzIjogW10KICAgIH0sCiAgICAiZ2VudXRpbCI6IHsKICAgICAgImdlbl90eHMiOiBbCiAgICAgICAgewogICAgICAgICAgImJvZHkiOiB7CiAgICAgICAgICAgICJtZXNzYWdlcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiQHR5cGUiOiAiL2Nvc21vcy5zdGFraW5nLnYxYmV0YTEuTXNnQ3JlYXRlVmFsaWRhdG9yIiwKICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IHsKICAgICAgICAgICAgICAgICAgIm1vbmlrZXIiOiAibm9kZTEiLAogICAgICAgICAgICAgICAgICAiaWRlbnRpdHkiOiAiIiwKICAgICAgICAgICAgICAgICAgIndlYnNpdGUiOiAiIiwKICAgICAgICAgICAgICAgICAgInNlY3VyaXR5X2NvbnRhY3QiOiAiIiwKICAgICAgICAgICAgICAgICAgImRldGFpbHMiOiAiIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJjb21taXNzaW9uIjogewogICAgICAgICAgICAgICAgICAicmF0ZSI6ICIwLjEwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgICAgICAgICAgICJtYXhfcmF0ZSI6ICIwLjIwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgICAgICAgICAgICJtYXhfY2hhbmdlX3JhdGUiOiAiMC4wMTAwMDAwMDAwMDAwMDAwMDAiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIm1pbl9zZWxmX2RlbGVnYXRpb24iOiAiMSIsCiAgICAgICAgICAgICAgICAiZGVsZWdhdG9yX2FkZHJlc3MiOiAiIiwKICAgICAgICAgICAgICAgICJ2YWxpZGF0b3JfYWRkcmVzcyI6ICJ3YXNtdmFsb3BlcjF2Y3cwaGU1bDltdTU0emF3ZzNoNDQwcDgzZXg3MGNjbXc5cGRueiIsCiAgICAgICAgICAgICAgICAicHVia2V5IjogewogICAgICAgICAgICAgICAgICAiQHR5cGUiOiAiL2Nvc21vcy5jcnlwdG8uZWQyNTUxOS5QdWJLZXkiLAogICAgICAgICAgICAgICAgICAia2V5IjogInlEKzJoN3ZZWW1yVTFBQSs3c01UdjFVaktFOFQ3aFZoZ01xcjlFei9IQTg9IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHsKICAgICAgICAgICAgICAgICAgImRlbm9tIjogInN0YWtlIiwKICAgICAgICAgICAgICAgICAgImFtb3VudCI6ICIyNTAwMDAwMDAiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAibWVtbyI6ICIxOTVjYmUyYWM0YTNmMmUwNTFkNmNjNTgwOTZhNTUxNzJkOTMwZDNlQDE5Mi4xNjguNTAuMjUxOjI2NjU2IiwKICAgICAgICAgICAgInRpbWVvdXRfaGVpZ2h0IjogIjAiLAogICAgICAgICAgICAiZXh0ZW5zaW9uX29wdGlvbnMiOiBbXSwKICAgICAgICAgICAgIm5vbl9jcml0aWNhbF9leHRlbnNpb25fb3B0aW9ucyI6IFtdCiAgICAgICAgICB9LAogICAgICAgICAgImF1dGhfaW5mbyI6IHsKICAgICAgICAgICAgInNpZ25lcl9pbmZvcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAicHVibGljX2tleSI6IHsKICAgICAgICAgICAgICAgICAgIkB0eXBlIjogIi9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkiLAogICAgICAgICAgICAgICAgICAia2V5IjogIkFoRmdnWEc4ZlcwOEhLRGFjTGpoVVYyOGw2cVFRejY3WkF1b0hHRGx3Q3g0IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJtb2RlX2luZm8iOiB7CiAgICAgICAgICAgICAgICAgICJzaW5nbGUiOiB7CiAgICAgICAgICAgICAgICAgICAgIm1vZGUiOiAiU0lHTl9NT0RFX0RJUkVDVCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJzZXF1ZW5jZSI6ICIwIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZlZSI6IHsKICAgICAgICAgICAgICAiYW1vdW50IjogW10sCiAgICAgICAgICAgICAgImdhc19saW1pdCI6ICIyMDAwMDAiLAogICAgICAgICAgICAgICJwYXllciI6ICIiLAogICAgICAgICAgICAgICJncmFudGVyIjogIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInRpcCI6IG51bGwKICAgICAgICAgIH0sCiAgICAgICAgICAic2lnbmF0dXJlcyI6IFsKICAgICAgICAgICAgImVsQWlTQjUwZUkyamQ4T2kvR1JlUEdLaWFBNFlRNXYybVVtWm9UeWwxZllQdUZHL1BEdnJRZk84cHVRamdRN3RBc2hXVlV4V0lRdDlWRGdSaHhPcnd3PT0iCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImdvdiI6IHsKICAgICAgInN0YXJ0aW5nX3Byb3Bvc2FsX2lkIjogIjEiLAogICAgICAiZGVwb3NpdHMiOiBbXSwKICAgICAgInZvdGVzIjogW10sCiAgICAgICJwcm9wb3NhbHMiOiBbXSwKICAgICAgImRlcG9zaXRfcGFyYW1zIjogbnVsbCwKICAgICAgInZvdGluZ19wYXJhbXMiOiBudWxsLAogICAgICAidGFsbHlfcGFyYW1zIjogbnVsbCwKICAgICAgInBhcmFtcyI6IHsKICAgICAgICAibWluX2RlcG9zaXQiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZW5vbSI6ICJzdGFrZSIsCiAgICAgICAgICAgICJhbW91bnQiOiAiMTAwMDAwMDAiCiAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAibWF4X2RlcG9zaXRfcGVyaW9kIjogIjE3MjgwMHMiLAogICAgICAgICJ2b3RpbmdfcGVyaW9kIjogIjE3MjgwMHMiLAogICAgICAgICJxdW9ydW0iOiAiMC4zMzQwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJ0aHJlc2hvbGQiOiAiMC41MDAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJ2ZXRvX3RocmVzaG9sZCI6ICIwLjMzNDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgIm1pbl9pbml0aWFsX2RlcG9zaXRfcmF0aW8iOiAiMC4wMDAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJwcm9wb3NhbF9jYW5jZWxfcmF0aW8iOiAiMC41MDAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJwcm9wb3NhbF9jYW5jZWxfZGVzdCI6ICIiLAogICAgICAgICJleHBlZGl0ZWRfdm90aW5nX3BlcmlvZCI6ICI4NjQwMHMiLAogICAgICAgICJleHBlZGl0ZWRfdGhyZXNob2xkIjogIjAuNjY3MDAwMDAwMDAwMDAwMDAwIiwKICAgICAgICAiZXhwZWRpdGVkX21pbl9kZXBvc2l0IjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVub20iOiAic3Rha2UiLAogICAgICAgICAgICAiYW1vdW50IjogIjUwMDAwMDAwIgogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImJ1cm5fdm90ZV9xdW9ydW0iOiBmYWxzZSwKICAgICAgICAiYnVybl9wcm9wb3NhbF9kZXBvc2l0X3ByZXZvdGUiOiBmYWxzZSwKICAgICAgICAiYnVybl92b3RlX3ZldG8iOiB0cnVlLAogICAgICAgICJtaW5fZGVwb3NpdF9yYXRpbyI6ICIwLjAxMDAwMDAwMDAwMDAwMDAwMCIKICAgICAgfSwKICAgICAgImNvbnN0aXR1dGlvbiI6ICIiCiAgICB9LAogICAgImdyb3VwIjogewogICAgICAiZ3JvdXBfc2VxIjogIjAiLAogICAgICAiZ3JvdXBzIjogW10sCiAgICAgICJncm91cF9tZW1iZXJzIjogW10sCiAgICAgICJncm91cF9wb2xpY3lfc2VxIjogIjAiLAogICAgICAiZ3JvdXBfcG9saWNpZXMiOiBbXSwKICAgICAgInByb3Bvc2FsX3NlcSI6ICIwIiwKICAgICAgInByb3Bvc2FscyI6IFtdLAogICAgICAidm90ZXMiOiBbXQogICAgfSwKICAgICJpYmMiOiB7CiAgICAgICJjbGllbnRfZ2VuZXNpcyI6IHsKICAgICAgICAiY2xpZW50cyI6IFtdLAogICAgICAgICJjbGllbnRzX2NvbnNlbnN1cyI6IFtdLAogICAgICAgICJjbGllbnRzX21ldGFkYXRhIjogW10sCiAgICAgICAgInBhcmFtcyI6IHsKICAgICAgICAgICJhbGxvd2VkX2NsaWVudHMiOiBbCiAgICAgICAgICAgICIwNi1zb2xvbWFjaGluZSIsCiAgICAgICAgICAgICIwNy10ZW5kZXJtaW50IiwKICAgICAgICAgICAgIjA5LWxvY2FsaG9zdCIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJjcmVhdGVfbG9jYWxob3N0IjogZmFsc2UsCiAgICAgICAgIm5leHRfY2xpZW50X3NlcXVlbmNlIjogIjAiCiAgICAgIH0sCiAgICAgICJjb25uZWN0aW9uX2dlbmVzaXMiOiB7CiAgICAgICAgImNvbm5lY3Rpb25zIjogW10sCiAgICAgICAgImNsaWVudF9jb25uZWN0aW9uX3BhdGhzIjogW10sCiAgICAgICAgIm5leHRfY29ubmVjdGlvbl9zZXF1ZW5jZSI6ICIwIiwKICAgICAgICAicGFyYW1zIjogewogICAgICAgICAgIm1heF9leHBlY3RlZF90aW1lX3Blcl9ibG9jayI6ICIzMDAwMDAwMDAwMCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJjaGFubmVsX2dlbmVzaXMiOiB7CiAgICAgICAgImNoYW5uZWxzIjogW10sCiAgICAgICAgImFja25vd2xlZGdlbWVudHMiOiBbXSwKICAgICAgICAiY29tbWl0bWVudHMiOiBbXSwKICAgICAgICAicmVjZWlwdHMiOiBbXSwKICAgICAgICAic2VuZF9zZXF1ZW5jZXMiOiBbXSwKICAgICAgICAicmVjdl9zZXF1ZW5jZXMiOiBbXSwKICAgICAgICAiYWNrX3NlcXVlbmNlcyI6IFtdLAogICAgICAgICJuZXh0X2NoYW5uZWxfc2VxdWVuY2UiOiAiMCIKICAgICAgfQogICAgfSwKICAgICJpbnRlcmNoYWluYWNjb3VudHMiOiB7CiAgICAgICJjb250cm9sbGVyX2dlbmVzaXNfc3RhdGUiOiB7CiAgICAgICAgImFjdGl2ZV9jaGFubmVscyI6IFtdLAogICAgICAgICJpbnRlcmNoYWluX2FjY291bnRzIjogW10sCiAgICAgICAgInBvcnRzIjogW10sCiAgICAgICAgInBhcmFtcyI6IHsKICAgICAgICAgICJjb250cm9sbGVyX2VuYWJsZWQiOiB0cnVlCiAgICAgICAgfQogICAgICB9LAogICAgICAiaG9zdF9nZW5lc2lzX3N0YXRlIjogewogICAgICAgICJhY3RpdmVfY2hhbm5lbHMiOiBbXSwKICAgICAgICAiaW50ZXJjaGFpbl9hY2NvdW50cyI6IFtdLAogICAgICAgICJwb3J0IjogImljYWhvc3QiLAogICAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgICAiaG9zdF9lbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICJhbGxvd19tZXNzYWdlcyI6IFsKICAgICAgICAgICAgIioiCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgIm1pbnQiOiB7CiAgICAgICJtaW50ZXIiOiB7CiAgICAgICAgImluZmxhdGlvbiI6ICIwLjEzMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgImFubnVhbF9wcm92aXNpb25zIjogIjAuMDAwMDAwMDAwMDAwMDAwMDAwIgogICAgICB9LAogICAgICAicGFyYW1zIjogewogICAgICAgICJtaW50X2Rlbm9tIjogInN0YWtlIiwKICAgICAgICAiaW5mbGF0aW9uX3JhdGVfY2hhbmdlIjogIjAuMTMwMDAwMDAwMDAwMDAwMDAwIiwKICAgICAgICAiaW5mbGF0aW9uX21heCI6ICIwLjIwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgImluZmxhdGlvbl9taW4iOiAiMC4wNzAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJnb2FsX2JvbmRlZCI6ICIwLjY3MDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgImJsb2Nrc19wZXJfeWVhciI6ICI2MzExNTIwIgogICAgICB9CiAgICB9LAogICAgIm5mdCI6IHsKICAgICAgImNsYXNzZXMiOiBbXSwKICAgICAgImVudHJpZXMiOiBbXQogICAgfSwKICAgICJwYXJhbXMiOiBudWxsLAogICAgInNsYXNoaW5nIjogewogICAgICAicGFyYW1zIjogewogICAgICAgICJzaWduZWRfYmxvY2tzX3dpbmRvdyI6ICIxMDAiLAogICAgICAgICJtaW5fc2lnbmVkX3Blcl93aW5kb3ciOiAiMC41MDAwMDAwMDAwMDAwMDAwMDAiLAogICAgICAgICJkb3dudGltZV9qYWlsX2R1cmF0aW9uIjogIjYwMHMiLAogICAgICAgICJzbGFzaF9mcmFjdGlvbl9kb3VibGVfc2lnbiI6ICIwLjA1MDAwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgInNsYXNoX2ZyYWN0aW9uX2Rvd250aW1lIjogIjAuMDEwMDAwMDAwMDAwMDAwMDAwIgogICAgICB9LAogICAgICAic2lnbmluZ19pbmZvcyI6IFtdLAogICAgICAibWlzc2VkX2Jsb2NrcyI6IFtdCiAgICB9LAogICAgInN0YWtpbmciOiB7CiAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgInVuYm9uZGluZ190aW1lIjogIjE4MTQ0MDBzIiwKICAgICAgICAibWF4X3ZhbGlkYXRvcnMiOiAxMDAsCiAgICAgICAgIm1heF9lbnRyaWVzIjogNywKICAgICAgICAiaGlzdG9yaWNhbF9lbnRyaWVzIjogMTAwMDAsCiAgICAgICAgImJvbmRfZGVub20iOiAic3Rha2UiLAogICAgICAgICJtaW5fY29tbWlzc2lvbl9yYXRlIjogIjAuMDAwMDAwMDAwMDAwMDAwMDAwIgogICAgICB9LAogICAgICAibGFzdF90b3RhbF9wb3dlciI6ICIwIiwKICAgICAgImxhc3RfdmFsaWRhdG9yX3Bvd2VycyI6IFtdLAogICAgICAidmFsaWRhdG9ycyI6IFtdLAogICAgICAiZGVsZWdhdGlvbnMiOiBbXSwKICAgICAgInVuYm9uZGluZ19kZWxlZ2F0aW9ucyI6IFtdLAogICAgICAicmVkZWxlZ2F0aW9ucyI6IFtdLAogICAgICAiZXhwb3J0ZWQiOiBmYWxzZQogICAgfSwKICAgICJ0cmFuc2ZlciI6IHsKICAgICAgInBvcnRfaWQiOiAidHJhbnNmZXIiLAogICAgICAiZGVub21fdHJhY2VzIjogW10sCiAgICAgICJwYXJhbXMiOiB7CiAgICAgICAgInNlbmRfZW5hYmxlZCI6IHRydWUsCiAgICAgICAgInJlY2VpdmVfZW5hYmxlZCI6IHRydWUKICAgICAgfSwKICAgICAgInRvdGFsX2VzY3Jvd2VkIjogW10KICAgIH0sCiAgICAidXBncmFkZSI6IHt9LAogICAgInZlc3RpbmciOiB7fSwKICAgICJ3YXNtIjogewogICAgICAicGFyYW1zIjogewogICAgICAgICJjb2RlX3VwbG9hZF9hY2Nlc3MiOiB7CiAgICAgICAgICAicGVybWlzc2lvbiI6ICJFdmVyeWJvZHkiLAogICAgICAgICAgImFkZHJlc3NlcyI6IFtdCiAgICAgICAgfSwKICAgICAgICAiaW5zdGFudGlhdGVfZGVmYXVsdF9wZXJtaXNzaW9uIjogIkV2ZXJ5Ym9keSIKICAgICAgfSwKICAgICAgImNvZGVzIjogW10sCiAgICAgICJjb250cmFjdHMiOiBbXSwKICAgICAgInNlcXVlbmNlcyI6IFtdCiAgICB9CiAgfSwKICAiY29uc2Vuc3VzIjogewogICAgInBhcmFtcyI6IHsKICAgICAgImJsb2NrIjogewogICAgICAgICJtYXhfYnl0ZXMiOiAiMjIwMjAwOTYiLAogICAgICAgICJtYXhfZ2FzIjogIi0xIgogICAgICB9LAogICAgICAiZXZpZGVuY2UiOiB7CiAgICAgICAgIm1heF9hZ2VfbnVtX2Jsb2NrcyI6ICIxMDAwMDAiLAogICAgICAgICJtYXhfYWdlX2R1cmF0aW9uIjogIjE3MjgwMDAwMDAwMDAwMCIsCiAgICAgICAgIm1heF9ieXRlcyI6ICIxMDQ4NTc2IgogICAgICB9LAogICAgICAidmFsaWRhdG9yIjogewogICAgICAgICJwdWJfa2V5X3R5cGVzIjogWwogICAgICAgICAgImVkMjU1MTkiCiAgICAgICAgXQogICAgICB9LAogICAgICAidmVyc2lvbiI6IHsKICAgICAgICAiYXBwIjogIjAiCiAgICAgIH0sCiAgICAgICJhYmNpIjogewogICAgICAgICJ2b3RlX2V4dGVuc2lvbnNfZW5hYmxlX2hlaWdodCI6ICIwIgogICAgICB9CiAgICB9CiAgfQp9"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"consensus_params\",\"params\":{\"height\":\"0\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"block_height": "67",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1"
},
"evidence": {
"max_age_num_blocks": "100000",
"max_age_duration": "172800000000000",
"max_bytes": "1048576"
},
"validator": {
"pub_key_types": [
"ed25519"
]
},
"version": {
"app": "0"
},
"abci": {
"vote_extensions_enable_height": "0"
}
}
}
}curl -X POST https://cometrpc.testnet.landslide.network -d '{"jsonrpc":"2.0","id":1,"method":"unconfirmed_txs","params":{"limit":"20"}}'{
"jsonrpc": "2.0",
"id": 1,
"result": {
"n_txs": "0",
"total": "0",
"total_bytes": "0",
"txs": []
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"num_unconfirmed_txs\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"n_txs": "0",
"total": "0",
"total_bytes": "0",
"txs": null
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"num_unconfirmed_txs\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"n_txs": "0",
"total": "0",
"total_bytes": "0",
"txs": null
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tx_search\",\"params\":{\"query\":\"tx.height=1\",\"prove\":true,\"page\":\"1\",\"per_page\":\"30\",\"order_by\":\"asc\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"txs": [],
"total_count": "0"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"block_search\",\"params\":{\"query\":\"block.height > 1\",\"page\":\"1\",\"per_page\":\"20\",\"order_by\":\"desc\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blocks": [],
"total_count": "0"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"broadcast_tx_sync\",\"params\":{\"tx\":\"a/null/c\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"code": 2,
"data": "",
"log": "expected 2 wire type, got 3: tx parse error",
"codespace": "sdk",
"hash": "8C4547C2D0B04641DB22F4F5B10B64A1A8181AD514352795022B9EFC86A67056"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"broadcast_tx_async\",\"params\":{\"tx\":\"a/null/c\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"code": 0,
"data": "",
"log": "",
"codespace": "",
"hash": "8C4547C2D0B04641DB22F4F5B10B64A1A8181AD514352795022B9EFC86A67056"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"check_tx\",\"params\":{\"tx\":\"a/null/c\"}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"code": 2,
"data": null,
"log": "expected 2 wire type, got 3: tx parse error",
"info": "",
"gas_wanted": "0",
"gas_used": "1174",
"events": [],
"codespace": "sdk"
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"abci_info\"}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"response": {
"data": "WasmApp",
"last_block_height": "67",
"last_block_app_hash": "S6enjHgkIVQb/2Avml61hJNuqPNO0we3IpFZ9RbaB+Y="
}
}
}curl -X POST https://cometrpc.testnet.landslide.network -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"abci_query\",\"params\":{\"path\":\"/key\", \"data\":\"5761736d417070\", \"height\":\"1\", \"prove\":true}}"{
"jsonrpc": "2.0",
"id": 1,
"result": {
"response": {
"code": 6,
"log": "unknown query path: unknown request",
"info": "",
"index": "0",
"key": null,
"value": null,
"proofOps": null,
"height": "0",
"codespace": "sdk"
}
}
}Landslide is a revolutionary IBC-enabled Avalanche L1 that bridges the gap between Avalanche and the interchain ecosystem. It allows any IBC-enabled chain to run natively on the Avalanche network, focusing on CosmWasm-based dApps to run natively on the Avalanche network, opening up new possibilities for cross-chain interactions and development.
Native IBC Connectivity: Seamlessly transfer assets between Landslide and other IBC-enabled chains.
Sub-Second Finality: Achieve transaction finality in under 1 second, significantly faster than traditional CometBFT-based chains.
Cosmos SDK Compatibility: Easily port existing Cosmos-based dApps to Landslide with 100% SDK compatibility.
Cross-Chain DeFi: Enable sophisticated DeFi operations across multiple blockchain networks.
Avalanche Performance: Leverage Avalanche's high throughput and low fees for improved user experience.
Landslide creates interoperability between the Avalanche and Cosmos ecosystems, fostering a more interconnected and robust blockchain landscape. Developers can utilize Avalanche's performance while maintaining access to the rich Cosmos ecosystem. Users benefit from increased liquidity, a more comprehensive range of applications, and a streamlined experience across multiple networks.
To begin your journey with Landslide, explore the following sections:
Connecting to Landslide Wasm Testnet
Running Landslide Wasm Application Locally
Deploying Smart Contracts on Landslide
Join us in shaping the future of interoperable blockchain technology with Landslide!
