Get set up with the provider-services CLI to deploy on Akash Network.
This guide walks you through installing the CLI, creating a wallet, and funding your account.
Install provider-services
Select your operating system:
MacOS
Option 1: Using Homebrew (Recommended)
brew tap akash-network/tapbrew install akash-provider-servicesOption 2: Download Binary
cd ~/Downloads
# Download the latest releasecurl -sfL https://raw.githubusercontent.com/akash-network/provider/main/install.sh | bashMove the Binary
sudo mv ./bin/provider-services /usr/local/binVerify Installation
provider-services versionExpected Output
v0.10.0Download and Install Binary
cd ~
# Install dependenciesapt install jq -yapt install unzip -y
# Download and install provider-servicescurl -sfL https://raw.githubusercontent.com/akash-network/provider/main/install.sh | bashAdd to Path
vi /etc/environmentAdd the following to PATH:
/root/binMake Path Active
. /etc/environmentVerify Installation
provider-services versionExpected Output
v0.10.0Windows
Using WSL2 (Recommended)
Install Windows Subsystem for Linux 2, then follow the Linux instructions above.
Native Windows
- Download the latest Windows binary from GitHub Releases
- Extract the
.zipfile - Move
provider-services.exeto a directory in your PATH - Open PowerShell and verify:
provider-services versionFrom Source
Installing provider-services from source:
$ go get -d github.com/akash-network/provider$ cd $GOPATH/src/github.com/akash-network/provider$ AKASH_NET="https://raw.githubusercontent.com/akash-network/net/main/mainnet"$ AKASH_VERSION="$(curl -s https://api.github.com/repos/akash-network/provider/releases/latest | jq -r '.tag_name')"$ git checkout "$AKASH_VERSION"$ make deps-install$ make installRequirements:
- golang 1.21+
- Properly set
GOPATH $GOPATH/binpresent in$PATH
Once you have the dependencies setup, download and build using make install.
Verify Installation
provider-services versionCreate an Account
Configure the name of your key:
AKASH_KEY_NAME=my-walletVerify the variable is set:
echo $AKASH_KEY_NAMESet the keyring backend:
AKASH_KEYRING_BACKEND=osCreate an Akash account:
provider-services keys add $AKASH_KEY_NAMERead the output and save your mnemonic phrase in a safe place.
Set your account address as a variable:
export AKASH_ACCOUNT_ADDRESS="$(provider-services keys show $AKASH_KEY_NAME -a)"
echo $AKASH_ACCOUNT_ADDRESSNote that if you close your Terminal window this variable will not be saved.
Fund your Account
A minimum deposit of 0.5 AKT is required to deploy on Akash. A small transaction fee is also applied to deployment leases.
Get AKT tokens:
Configure your Network
Configure the base URL for the Akash Network:
AKASH_NET="https://raw.githubusercontent.com/akash-network/net/main/mainnet"Version
AKASH_VERSION="$(curl -s https://api.github.com/repos/akash-network/provider/releases/latest | jq -r '.tag_name')"Chain ID
export AKASH_CHAIN_ID="$(curl -s "$AKASH_NET/chain-id.txt")"Network Node
export AKASH_NODE="$(curl -s "$AKASH_NET/rpc-nodes.txt" | shuf -n 1)"Confirm Network Variables
echo $AKASH_NODE $AKASH_CHAIN_ID $AKASH_KEYRING_BACKENDYou should see something similar to:
http://135.181.60.250:26657 akashnet-2 os
Set Additional Environment Variables
| Variable | Description | Recommended Value |
|---|---|---|
| AKASH_GAS | Gas limit to set per-transaction | auto |
| AKASH_GAS_ADJUSTMENT | Adjustment factor to be multiplied against the estimate | 1.25 |
| AKASH_GAS_PRICES | Gas prices in decimal format to determine transaction fee | 0.025uakt |
| AKASH_SIGN_MODE | Signature mode | amino-json |
export AKASH_GAS=autoexport AKASH_GAS_ADJUSTMENT=1.25export AKASH_GAS_PRICES=0.025uaktexport AKASH_SIGN_MODE=amino-jsonCheck your Account Balance
provider-services query bank balances --node $AKASH_NODE $AKASH_ACCOUNT_ADDRESSYou should see a response similar to:
balances:- amount: "93000637" denom: uaktpagination: next_key: null total: "0"Note: Balance is denominated in uAKT (AKT x 10^-6). In the example above, the account has a balance of 93 AKT.
Your account must have a minimum balance of 0.5 AKT to create a deployment.
Authentication
Akash provider services support two authentication methods:
JWT Authentication (Default - Recommended)
JWT (JSON Web Tokens) is the default and recommended authentication method for provider-services v0.10.0+.
Advantages:
- No blockchain transactions required
- No certificate expiration to manage
- Simpler setup
- No additional costs
JWT tokens are automatically generated and managed by provider-services CLI. No setup required!
When you run deployment commands, the CLI automatically:
- Signs requests with your account’s private key
- Creates JWT tokens
- Sends authenticated requests to providers
You’re ready to deploy! Jump to Next Steps.
mTLS Certificate Authentication (Optional)
mTLS (mutual TLS) certificates are an alternative authentication method.
When to use mTLS:
- You require certificate-based authentication
- You’re integrating with systems that require X.509 certificates
- You prefer blockchain-stored credentials
Generate Certificate
provider-services tx cert generate client --from $AKASH_KEY_NAMENote: If it errors with Error: certificate error: cannot overwrite certificate, add --overwrite flag.
Publish Certificate to Blockchain
provider-services tx cert publish client --from $AKASH_KEY_NAMECertificate Notes:
- Certificates cost transaction fees (~0.01 AKT)
- Valid for one year, then must be renewed
- Stored on the Akash blockchain
- Can be revoked and regenerated
Next Steps
Now that you’re set up, you can:
- CLI Configuration - Configure networks and advanced settings
- CLI Commands Reference - Learn all available commands
- Core Concepts - Understand how Akash works
Troubleshooting
”command not found: provider-services”
The binary isn’t in your PATH. Try:
# Find where it's installedwhich provider-services
# Add to PATH (Linux/macOS)export PATH=$PATH:/path/to/provider-services“account not found”
Your wallet hasn’t been created or funded yet. Go back to Create an Account and Fund your Account.
”insufficient fees”
Increase your gas prices:
export AKASH_GAS_PRICES=0.05uaktRPC Node Issues
If the default RPC node is down, try an alternative:
export AKASH_NODE=https://rpc.akash.forbole.com:443# orexport AKASH_NODE=https://akash-rpc.polkachu.com:443Need Help?
- Akash Discord - Get help from the community
- GitHub Issues - Report bugs