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: uakt 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 are returned.
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
- SDL Reference → - Learn SDL configuration
- SDL Examples → - 290+ deployment examples
Need help? Join Discord #developers channel!