evm-wallet-docker-e2e

Run the evm-wallet Docker e2e tests (build, start stack, wait for healthy, test, diagnose failures).

6 stars

Best use case

evm-wallet-docker-e2e is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Run the evm-wallet Docker e2e tests (build, start stack, wait for healthy, test, diagnose failures).

Teams using evm-wallet-docker-e2e should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/evm-wallet-docker-e2e/SKILL.md --create-dirs "https://raw.githubusercontent.com/MetaMask/ocap-kernel/main/.claude/skills/evm-wallet-docker-e2e/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/evm-wallet-docker-e2e/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How evm-wallet-docker-e2e Compares

Feature / Agentevm-wallet-docker-e2eStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Run the evm-wallet Docker e2e tests (build, start stack, wait for healthy, test, diagnose failures).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

Run all commands from the repo root unless noted.

## 1. Verify Docker is running

```bash
docker info 2>&1 | head -5
```

If it fails, tell the user Docker is not running and ask them to start Docker Desktop (or the daemon), then wait for confirmation before continuing.

## 2. Build the repo and Docker images

```bash
yarn workspace @ocap/evm-wallet-experiment docker:build 2>&1 | tail -30
```

This builds the full monorepo then builds the Docker images. It may take a few minutes. Report any errors from the tail output.

## 3. Tear down any existing stack, then start fresh

Always bring the stack down first to avoid stale container state (e.g. spent delegation budgets from a previous run leaking into the new run).

```bash
yarn workspace @ocap/evm-wallet-experiment docker:down 2>&1 | tail -10
```

Then start the stack:

```bash
yarn workspace @ocap/evm-wallet-experiment docker:ensure-logs && \
  yarn workspace @ocap/evm-wallet-experiment docker:compose up -d 2>&1 | tail -20
```

## 4. Wait for all services to be healthy

Poll every 10 seconds (up to 3 minutes / 18 attempts). All 8 services must reach `(healthy)` status before proceeding:

- `evm`, `bundler`
- `kernel-home-bundler-7702`, `kernel-away-bundler-7702`
- `kernel-home-bundler-hybrid`, `kernel-away-bundler-hybrid`
- `kernel-home-peer-relay`, `kernel-away-peer-relay`

```bash
i=0; while [ $i -lt 18 ]; do
  i=$((i+1))
  ps_out=$(yarn workspace @ocap/evm-wallet-experiment docker:ps 2>&1)
  healthy=$(echo "$ps_out" | grep -c "(healthy)" || true)
  echo "Attempt $i/18: $healthy/8 healthy"
  if [ "$healthy" -ge 8 ]; then echo "Stack ready."; break; fi
  if [ "$i" -eq 18 ]; then echo "Timed out:"; echo "$ps_out"; exit 1; fi
  sleep 10
done
```

If the loop exits with a timeout, show the last `docker:ps` output and stop — do not proceed to the tests.

## 5. Run the e2e tests

```bash
yarn workspace @ocap/evm-wallet-experiment test:e2e:docker 2>&1 | tail -80
```

The vitest reporter also writes structured results to `packages/evm-wallet-experiment/logs/test-results.json`.

## 6. Diagnose failures

If tests fail, investigate in this order:

### Structured test results

```bash
cat packages/evm-wallet-experiment/logs/test-results.json
```

Look at the `testResults` array for failed tests and their error messages.

### Service logs

Container logs are written to `packages/evm-wallet-experiment/logs/`. Check the service(s) relevant to the failing test mode first:

```bash
tail -150 packages/evm-wallet-experiment/logs/<service>.log
```

Service log files:

- `evm.log` — Anvil chain (check for on-chain errors)
- `kernel-home-bundler-7702.log`, `kernel-away-bundler-7702.log`
- `kernel-home-bundler-hybrid.log`, `kernel-away-bundler-hybrid.log`
- `kernel-home-peer-relay.log`, `kernel-away-peer-relay.log`

Start with the pair(s) involved in the failing test, then `evm.log` for on-chain issues.

Related Skills

wallet

6
from MetaMask/ocap-kernel

Use the wallet tools for all balance, send, and sign operations. Supports both ETH and ERC-20 tokens. The away wallet operates autonomously after setup — the home device does not need to be online.

metamask

6
from MetaMask/ocap-kernel

Use the MetaMask tools to request and interact with wallet capabilities from the MetaMask capability vendor.

discovery

6
from MetaMask/ocap-kernel

Use the discovery tools to find and use services through a service matcher. Do not rely on prior knowledge of services, providers, or APIs.

update-changelogs

6
from MetaMask/ocap-kernel

Updates changelogs for all packages with consumer-facing changes.

push

6
from MetaMask/ocap-kernel

Pushes the current branch to the remote repository.

pr

6
from MetaMask/ocap-kernel

Creates a pull request for the current branch.

lint-build-test

6
from MetaMask/ocap-kernel

How to check code by linting, building, and testing.

glossary

6
from MetaMask/ocap-kernel

How to add entries to the glossary

create-package

6
from MetaMask/ocap-kernel

Create a new monorepo package using the create-package CLI

commit

6
from MetaMask/ocap-kernel

Optionally checks, then commits code to the current or a new feature branch.

code-review

6
from MetaMask/ocap-kernel

How to review code; a pull request, feature branch, local changes etc.

docker-patterns

144923
from affaan-m/everything-claude-code

Docker and Docker Compose patterns for local development, container security, networking, volume strategies, and multi-service orchestration. Use when setting up containerized development environments or reviewing Docker configurations.

DevelopmentClaude