Tools Overview
Archway Developer CLI
Archway's Developer CLI is a command-line tool for working with smart contracts. The CLI functions as a wrapper around rustc
, cargo
, archwayd
and cosmwasm-rust-optimizer
. Think of it like a user friendly version of archwayd
with support for compiling Rust.
There are three core goals of the CLI:
- Speed up development
- Deploy, connect and interact with contracts on Archway
- Encourage security and best practices for developers
Go to the Developer CLI page to find a list of available CLI commands.
The Future of Archway CLI
At a future date, Archway CLI will require the installation of less dependencies and will evolve away from wrapping other binaries with user friendly syntax. This will be achieved through the development of an Archway Light Client, and a Local Blockchain Utility.
Archway Light Client
The Archway Light Client will be developed to replace dependency on archwayd
for interacting with Archway nodes.
Follow the development of this enhancement
Local Blockchain Utility
The Local Blockchain Utility will start a local Archway blockchain with pre-funded accounts. It will operate on an unexposed network allowing developers to quickly fire up a personal Archway blockchain to run tests, execute commands, or inspect contract state while controlling how the chain operates.
Follow the development of this enhancement
Archway Daemon / Archwayd
The archwayd
binary is the core implementation of the Archway protocol. It leverages the Cosmos SDK and CosmWasm to reward validators and creators for their contributions to the network. The command-line interface runs a full-node of Archway and provides utilities for chain genesis, account management (keys), validators, nodes, queries and transactions.
Users familiar with Cosmos Hub will recognize the Archway daemon is Archway's version of Gaiad. It's built using the same Cosmos SDK modules, but introduces a new SDK module called x/gastracker
which monitors gas consumed by applications on the network and distributes developer rewards.
Cosmos SDK Modules
x/auth
: Accounts and signaturesx/bank
: Token transfersx/staking
: Staking logicx/mint
: Inflation logicx/distribution
: Fee distribution logicx/slashing
: Slashing logicx/gov
: Governance logicibc-go/modules
: Inter-blockchain communicationx/params
: Handles app-level parameters
Archway SDK Modules
x/tracking
: measures gas consumption and rewards developersx/rewards
: calculates and distributes rewards to smart contracts
Go to the Archwayd CLI Page for a full list of the available commands.
arch3.js
arch3.js
is a JavaScript library for interacting with the Archway Protocol. arch3.js
eliminates the need of working with multiple CosmJS
clients by extending their functionalities. It also connects with Archway's unique reward system.
More information can be found on the arch3.js page.
CosmWasm
CosmWasm is a Cosmos framework that allows developers to write multi-chain smart contracts using any programming language which compiles to Wasm. It is written as a module that can plug into the Cosmos SDK, making it easy for deploying Cosmos blockchains that utilize Wasm smart contracts.
Disregarding code pertaining to specific chains, CosmWasm contracts deploy and behave interchangeably among blockchains running the wasmd
binary.Archway tooling provides modules for programming Archway smart contracts in Rust, but in future will support Wasm development in both Rust and Golang.
For more information on CosmWasm, please go to the CosmWasm docs.