Skip to main content

What you will learn

  • How to start ISCL Core with an RPC endpoint
  • How to import a wallet key
  • How to submit a transaction intent and observe the secure execution flow
  • How to use Docker Compose for a full demo stack

Local quick start

1

Clone and build

git clone https://github.com/clavion/clavion.git
cd clavion
npm install
npm run build
2

Start ISCL Core

Start with a Base RPC endpoint for transaction simulation:
ISCL_RPC_URL_8453=https://mainnet.base.org npm run dev
ISCL Core is now listening on http://127.0.0.1:3100.
3

Verify health

curl http://localhost:3100/v1/health
{
  "status": "ok",
  "version": "0.1.0",
  "uptime": 2.5
}
4

Import a wallet key

Import an existing private key (or generate a new one):
# Generate a new key
npx clavion-cli key generate

# Or import an existing key
echo "0xYourPrivateKey" | npx clavion-cli key import

# Verify
npx clavion-cli key list
5

Check a balance

Query an ERC-20 balance (USDC on Base):
curl "http://localhost:3100/v1/balance/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913/0xYourWalletAddress?chainId=8453"
{
  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "account": "0xYourWalletAddress",
  "balance": "1000000",
  "chainId": 8453
}
6

Submit a transaction intent

Request approval for a USDC transfer:
curl -X POST http://localhost:3100/v1/tx/approve-request \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1",
    "id": "550e8400-e29b-41d4-a716-446655440001",
    "timestamp": 1700000000000,
    "chain": { "type": "evm", "chainId": 8453 },
    "wallet": { "address": "0xYourWalletAddress" },
    "action": {
      "type": "transfer",
      "asset": {
        "kind": "erc20",
        "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
      },
      "to": "0xRecipientAddress",
      "amount": "1000000"
    },
    "constraints": {
      "maxGasWei": "1000000000000000",
      "deadline": 1700003600,
      "maxSlippageBps": 0
    }
  }'
ISCL Core will:
  1. Validate the intent against the schema
  2. Evaluate policy rules
  3. Run preflight simulation
  4. Prompt you for approval (in the terminal)
  5. Return an approval token
Approve the transaction in the terminal when prompted.

Docker Compose (full stack)

For a complete demo with a local Anvil fork:
# Start ISCL Core + Anvil Base fork
docker compose -f docker/compose.yaml up -d

# Start the full demo stack (adds OpenClaw agent)
docker compose -f docker/compose.yaml --profile demo up -d
Check that all services are running:
docker compose -f docker/compose.yaml ps
Follow logs:
docker compose -f docker/compose.yaml logs -f iscl-core

Volume persistence

VolumePathContents
keystore-data/home/iscl/.iscl/keystoreEncrypted keystore files
audit-data/home/iscl/.iscl/dataAudit trail database

Stopping

# Preserve data
docker compose -f docker/compose.yaml down

# Full reset (removes volumes)
docker compose -f docker/compose.yaml down -v

Verification

After completing the quick start, verify that:
ISCL Core responds to health checks at localhost:3100
At least one key is listed by clavion-cli key list
Balance queries return data from the configured chain
The approval prompt appears when you submit a TxIntent

Next steps