Skip to main content

Quickstart

Get started with EigenX CLI and deploy your first verifiable application to a Trusted Execution Environment (TEE) in minutes.

Prerequisites

Before you begin, ensure you have:

  • Docker - To package and publish application images (Download)
  • Testnet or Mainnet ETH - For deployment transactions

Installation

macOS/Linux

curl -fsSL https://eigenx-scripts.s3.us-east-1.amazonaws.com/install-eigenx.sh | bash

Windows

curl -fsSL https://eigenx-scripts.s3.us-east-1.amazonaws.com/install-eigenx.ps1 | powershell -

Initial Setup

Docker Login

First, log in to your Docker registry. This is required to push your application images:

docker login

Authenticate with EigenX

You have two options for authentication:

Option 1: Use an Existing Private Key

eigenx auth login

This command will prompt you to enter your private key and store it securely in your OS keyring.

Option 2: Generate a New Private Key

eigenx auth generate --store

This generates a new private key and stores it securely.

Get Testnet Funds

Check your wallet address:

eigenx auth whoami
Address: 0x9431Cf5DA0CE60664661341db650763B08286B18
Source: stored credentials (sepolia)

The current environment (Mainnet or Sepolia testnet) is displayed. To change from Mainnet to Sepolia, use eigenx env set sepolia.

Developing on Sepolia

To get testnet ETH, use:

Create & Deploy Your First App

Create a New Application

Create a new application from a template. Choose from: typescript, python, golang, or rust

eigenx app create my-app typescript
cd my-app

This creates a new project with:

  • Application code from the template
  • A Dockerfile configured for TEE deployment
  • An .env.example file for environment variables

Configure Environment Variables

cp .env.example .env

Edit .env to add any environment variables your application needs:

# Example .env content
API_KEY=your_api_key_here
DATABASE_URL=your_database_url

# Variables with _PUBLIC suffix are visible to users
NETWORK_PUBLIC=sepolia
tip

Variables with the _PUBLIC suffix will be visible to users for transparency. Standard variables remain encrypted within the TEE.

Subscribe to EigenCompute

Before deploying, you'll need an EigenCompute subscription.

To subscribe:

eigenx billing subscribe

The payment portal is displayed. Enter your payment method details and click the Subscribe button.

Mainnet Pricing

Current EigenCompute pricing is the testnet pricing. Mainnet deployments are available testnet pricing for a promotional period ending on 12/31/2025.

Deploy to TEE

Deploy your application to a Trusted Execution Environment:

eigenx app deploy

The CLI will:

  1. Build your Docker image targeting linux/amd64
  2. Push the image to your Docker registry
  3. Deploy to a TEE instance
  4. Return your app details including app ID and instance IP

View Your Application

After deployment, view your app's information:

eigenx app info

View real-time logs:

eigenx app logs

Port Configuration

To make your application accessible over the internet, you need to expose ports in your Dockerfile.

Basic Port Exposure

Add the EXPOSE directive to your Dockerfile:

FROM --platform=linux/amd64 node:18
USER root
WORKDIR /app
COPY . .
RUN npm install

# Expose the port your app listens on
EXPOSE 3000

CMD ["npm", "start"]

Application Binding

Your application must bind to 0.0.0.0 (not localhost) to be accessible.

For more advanced port configuration including multiple ports and port ranges, see the Port Exposure Guide.

Next Steps

  • Explore CLI Commands - Learn about all available commands
  • Review Core Concepts - Deep dive into keys, environment variables, and security

Troubleshooting

Docker Build Fails

Ensure your Dockerfile targets the correct platform:

FROM --platform=linux/amd64 node:18

Deployment Transaction Fails

Check your ETH balance:

eigenx auth whoami

Ensure you have sufficient mainnet ETH for deployment transactions.

Image Push Fails

Ensure you're logged into Docker:

docker login

App Not Starting

Check your app logs for errors:

eigenx app logs

Common issues:

  • Port conflicts - ensure APP_PORT is set correctly
  • Missing environment variables
  • Application crashes - check your code

Get Help