Practical examples and workflows for common CLI tasks.
This guide provides real-world examples for frequently performed operations.
Deployment Workflows
Create and Deploy an Application
1. Write your SDL file (deploy.yml):
version: "2.0"services: web: image: nginx:1.25.3 expose: - port: 80 as: 80 to: - global: trueprofiles: compute: web: resources: cpu: units: 0.5 memory: size: 512Mi storage: size: 512Mi placement: akash: pricing: web: denom: uact amount: 100deployment: web: akash: profile: web count: 12. Create deployment:
provider-services tx deployment create deploy.yml \ --from $AKASH_KEY_NAME3. Wait and query bids:
# Get your addressAKASH_ADDRESS=$(provider-services keys show my-wallet -a)
# Query bids (wait 30 seconds after creating deployment)provider-services query market bid list --owner $AKASH_ADDRESS4. Accept a bid (create lease):
provider-services tx market lease create \ --dseq <deployment-seq> \ --provider <provider-address> \ --from $AKASH_KEY_NAME5. Send manifest:
provider-services send-manifest deploy.yml \ --dseq <deployment-seq> \ --provider <provider-address> \ --from $AKASH_KEY_NAMEWallet Management
Create and Fund a Wallet
# Create walletprovider-services keys add my-wallet
# Save mnemonic securely!
# Get addressprovider-services keys show my-wallet -a
# Check balanceprovider-services query bank balances $(provider-services keys show my-wallet -a)Restore from Mnemonic
provider-services keys add my-wallet --recover# Enter your mnemonic when promptedExport Private Key
provider-services keys export my-wallet# Enter password when promptedMonitoring Deployments
Check Deployment Status
# Get deployment infoprovider-services query deployment get \ --dseq <deployment-seq> \ --owner <address>
# Check lease statusprovider-services query market lease list --owner <address>View Logs
provider-services lease-logs \ --dseq <deployment-seq> \ --provider <provider-address> \ --from $AKASH_KEY_NAMEGet Service Status
provider-services lease-status \ --dseq <deployment-seq> \ --provider <provider-address> \ --from $AKASH_KEY_NAMEUpdating Deployments
What Can Be Updated?
Can update:
- Container image versions
- Environment variables
- Command and args
- Some exposed port configurations
Cannot update (must close and recreate deployment):
- CPU, memory, storage, GPU resources
- Placement criteria (provider attributes)
- Service names
Update Deployment (2-Step Process)
Updating a deployment requires two steps:
Step 1: Update on-chain deployment hash
# Modify your SDL filenano deploy.yml
# Update deployment on-chainakash tx deployment update deploy.yml \ --dseq <deployment-seq> \ --from $AKASH_KEY_NAMEStep 2: Send updated manifest to provider
# Send updated manifest to providerprovider-services send-manifest deploy.yml \ --dseq <deployment-seq> \ --provider <provider-address> \ --from $AKASH_KEY_NAMEClosing Deployments
Close Deployment
provider-services tx deployment close \ --dseq <deployment-seq> \ --from $AKASH_KEY_NAMENote: This closes the deployment and all associated leases. Funds in escrow (ACT) are returned. Recommend funding deployments with ACT unless the circuit breaker is in effect.
Querying the Network
Find Providers
# List all providersprovider-services query provider list
# Filter by attributes (example)provider-services query provider list | grep "region: us-west"Check Network Status
# Latest blockprovider-services query block
# Network parametersprovider-services query paramsScripting and Automation
Deployment Script Example
#!/bin/bash
# Assumes environment variables are set: AKASH_KEY_NAME, AKASH_GAS, AKASH_GAS_ADJUSTMENTSDL_FILE="deploy.yml"
# Create deploymentecho "Creating deployment..."RESULT=$(provider-services tx deployment create $SDL_FILE --from $AKASH_KEY_NAME -y --output json)DSEQ=$(echo $RESULT | jq -r '.logs[0].events[] | select(.type=="akash.v1.EventDeploymentCreated") | .attributes[] | select(.key=="dseq") | .value')
echo "Deployment created: $DSEQ"echo "Waiting for bids..."sleep 30
# Query bidsBIDS=$(provider-services query market bid list --owner $(provider-services keys show $AKASH_KEY_NAME -a) --dseq $DSEQ --output json)PROVIDER=$(echo $BIDS | jq -r '.bids[0].bid.provider')
echo "Creating lease with provider: $PROVIDER"provider-services tx market lease create --dseq $DSEQ --provider $PROVIDER --from $AKASH_KEY_NAME -y
echo "Sending manifest..."provider-services send-manifest $SDL_FILE --dseq $DSEQ --provider $PROVIDER --from $AKASH_KEY_NAME
echo "Deployment complete!"echo "DSEQ: $DSEQ"echo "Provider: $PROVIDER"Troubleshooting
Check Transaction Status
# If transaction fails, check the hashprovider-services query tx <tx-hash>Verify Configuration
# Check all environment variablesenv | grep AKASHTest Connection
# Query latest blockprovider-services query blockNext Steps
- Commands Reference → - Complete CLI command reference
- Mint & Burn ACT → - Convert between AKT and ACT
- SDL Reference → - Learn SDL configuration
- SDL Examples → - 290+ deployment examples
Need help? Join Discord #developers channel!