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
Clone and build
git clone https://github.com/clavion/clavion.git
cd clavion
npm install
npm run build
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. Verify health
curl http://localhost:3100/v1/health
{
"status": "ok",
"version": "0.1.0",
"uptime": 2.5
}
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
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
}
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:
- Validate the intent against the schema
- Evaluate policy rules
- Run preflight simulation
- Prompt you for approval (in the terminal)
- 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
| Volume | Path | Contents |
|---|
keystore-data | /home/iscl/.iscl/keystore | Encrypted keystore files |
audit-data | /home/iscl/.iscl/data | Audit 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