Akash Console Integration

Deploy on Akash from the CLI without managing keys or buying AKT.

Contexts with the console-api auth method route deployment operations through the Akash Console Managed Wallet API. The Console backend handles signing and broadcasting, deposits are in USD, and no local keys are needed.

The Console API key is the identity for this context. A local keyring and default-account are intentionally optional.


Set Up a Console Context

Create a console-api context and store your API key:

Terminal window
# Set up a console-api context
akt context create console --network mainnet --auth-method console-api --set-current
# Validate and store your API key as the context credential
akt console login
# Or supply it positionally in a non-interactive shell
akt console login akt_your_key

Create the API key in Akash Console under Settings > API Keys. akt console login validates the key, then writes it to contexts/<name>/console-api-key (mode 0600); it is never written to config.yaml and never printed.

The key resolves in this order: --console-api-key flag > AKT_CONSOLE_API_KEY environment variable > per-context stored credential. Switching context switches Console identity.

You can also store or replace the key with akt context edit <context> --console-api-key <key>. An empty string removes it.

Verify the context:

Terminal window
akt console whoami

Deploy with the Managed Wallet

On a console-api context, the top-level workflow commands route through the Console automatically. Deposits are USD and must be at least \(0.50. Accepted forms include `5`, `5usd`, `\)5, and 5.50usd`:

Terminal window
# Deploy using the Console managed wallet
akt deploy deploy.yaml --deposit 5
# List your deployments
akt console deployment list
# Update a deployment
akt update deploy.yaml 12345
# Close a deployment
akt close 12345

USD input uses plain decimal notation with at most two fractional digits. Signs, exponent notation, underscores, non-finite values, and sub-cent amounts are rejected before an API request. Coin values such as 5000000uakt are rejected on the Console rail.

akt deploy creates the deployment, waits for bids, and creates the lease through the Console. The Console handles manifest submission internally.

Managed deployments are priced in uact, the canonical deployment pricing denomination on both rails. Console escrow values use micro-ACT as micro-USD and pretty output renders them as dollars. Direct chain transactions such as akt tx bank send and akt tx gov vote require a keyring context. Use the top-level workflows or the matching akt console command for managed-wallet deployment operations.

Because the context has no local default account, bare owner-scoped chain queries refuse instead of widening to every network record. Use akt console deployment list for the managed account, or pass an explicit Akash owner address to a chain query.


Bids and Leases

Terminal window
# List bids for a deployment
akt console bid list 12345
# Accept a bid by creating a lease and sending the manifest
akt console lease create 12345 akash1prov...

akt console lease create defaults to the manifest cached per context by deployment create, so the provider argument is the only decision left.

Note: The --manifest flag takes the manifest the Console renders, not the SDL file. The Console returns that manifest exactly once, at deployment create; when it cannot be cached (for example, with no active context), the create result includes it so you can pass it to lease create later. Passing the SDL by mistake fails locally with a message naming the cause.


Deployment Lifecycle

Drive the Console API directly with the akt console deployment group:

Terminal window
# List / inspect deployments
akt console deployment list
akt console deployment list active --limit 20 --skip 0
akt console deployment get 12345
# Create a deployment (managed wallet signs server-side)
akt console deployment create deploy.yaml 5
# Update takes the dseq before the SDL file
akt console deployment update 12345 deploy.yaml
# Add funds to a deployment's escrow
akt console deployment deposit 12345 5
# View or change a deployment's auto-top-up setting
akt console deployment settings 12345 true
# Close
akt console deployment close 12345

Create, update, deposit, settings changes, and close validate their identifiers and current deployment state before mutation. Update, deposit, settings changes, and close reject closed deployments. Close also rejects an absent deployment, so a repeated close never appears successful.


Live Lease Operations

Live lease commands reach the provider gateway directly, authorized by a short-lived Console-minted JWT, with no wallet and no local key involved. One-shot calls use a 300-second token; streaming and interactive modes use 3600 seconds.

Terminal window
# Stream logs for one service
akt console logs 12345 web --follow
# Last 100 lines across all services
akt console logs 12345 --tail 100
# Kubernetes events for the lease
akt console events 12345 --follow
# One live status snapshot from the provider gateway
akt console status 12345
# Re-poll every 30s until Ctrl-C
akt console status 12345 --watch --interval 30s
# Interactive shell in a container (defaults to /bin/sh)
akt console shell 12345 web
# Run a single command (a.k.a. exec)
akt console shell 12345 web -- ls -la

Note: The service filter and --tail are applied client-side. The filter matches the service name as a pod-name prefix (the provider reports pod names like web-5cfc6c7b4b-4cl7z), and --tail bounds a one-shot read; it does not combine with --follow.

An explicit command launched from a terminal does not attach stdin, so it exits when the remote command finishes. Piped input attaches automatically; add --stdin to force attachment. JSON and YAML shell output require an explicit command and return separate stdout and stderr fields.


Wallet and Usage

All amounts are rendered in USD:

Terminal window
# Managed wallet balance and settings
akt console wallet list
akt console wallet balance
akt console wallet settings
akt console wallet cost
# Spend history for an explicit range (positional dates)
akt console usage 2026-01-01 2026-01-31

Note: An account that has never configured auto-reload reports the unconfigured default ("configured": false) instead of an error. Running akt console wallet settings true creates the settings record and enables auto-reload, which authorizes automatic credit purchases against your payment method.

Console bids reported in uact per block include an estimated 30-day dollar cost based on six-second blocks. Other denominations remain explicit.


Browse the Marketplace

These commands hit public Console endpoints and need neither an API key nor a configured context:

Terminal window
# Provider catalog
akt console provider list
akt console provider get akash1prov...
akt console provider regions
akt console provider auditors
# GPU availability and pricing
akt console gpu
# Deployment templates
akt console template list
akt console template get <id>
# Print a template's raw SDL to stdout (for piping)
akt console template sdl <id> > deploy.yaml
# Which providers can run this SDL? (bid screening)
akt console screen deploy.yaml
# Screen explicit resources without an SDL
akt console screen --cpu 2 --memory 4Gi --gpu 1 --gpu-model a100

When you pass both an SDL and resource flags, explicit flags override the values read from the SDL. Provider attributes, auditors, storage, resource count, and reclamation window are also available as screening flags. Run akt console screen --help for the full list.


Credentials

Terminal window
# Manage Console API keys
akt console apikey list
akt console apikey create ci-key
akt console apikey delete <id>
# Mint a short-lived provider-scoped JWT
akt console jwt create

akt console apikey create prints the secret exactly once. Store it securely because it cannot be retrieved again.

API key deletion verifies that the UUID exists before sending the delete request. A repeated delete exits nonzero instead of printing deleted: true for an absent key.

After each successful Console leaf command, akt writes an action-specific Next: hint to stderr. JSON and YAML on stdout remain safe to pipe, and --quiet suppresses the hint.