Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
.venv
.env
.env.*
!.env.example
*.env
*.key
*.pem
*.p12
*.pfx
id_rsa
id_ed25519
.mypy_cache
.pytest_cache
.ruff_cache
Expand All @@ -16,3 +26,6 @@ __pycache__
*.pyc
.pytype
video/
apps/ops-console/.next
apps/ops-console/node_modules
apps/ops-console/.npm-cache
46 changes: 4 additions & 42 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ OMNICLAW_ENV=development
OMNICLAW_LOG_LEVEL=INFO

# =============================================================================
# Buyer / Seller Signing Key
# Buyer Signing Key
# =============================================================================

# Private key used by the SDK or Financial Policy Engine for allowed actions.
# Private key used by the SDK or Financial Policy Engine for allowed buyer actions.
# In production, use restricted infrastructure and secret management.
OMNICLAW_PRIVATE_KEY=0x...

Expand Down Expand Up @@ -77,52 +77,14 @@ OMNICLAW_NANOPAYMENTS_TOPUP_THRESHOLD=1.00
OMNICLAW_NANOPAYMENTS_TOPUP_AMOUNT=10.00
OMNICLAW_NANOPAYMENTS_MICRO_THRESHOLD=1.00

# Optional Gateway contract override for seller GatewayWalletBatched metadata.
# Optional Gateway contract override for GatewayWalletBatched metadata.
CIRCLE_GATEWAY_CONTRACT=

# =============================================================================
# Vendor / Enterprise SDK Seller
# =============================================================================

# Vendor wallet that receives seller payments.
SELLER_ADDRESS=0x...

# Default Circle seller path:
# payment=client.sell("$0.25", seller_address=os.environ["SELLER_ADDRESS"])

# Thirdweb managed x402 seller path:
# payment=client.sell("$0.25", seller_address=os.environ["SELLER_ADDRESS"], facilitator="thirdweb")
THIRDWEB_SECRET_KEY=
THIRDWEB_SERVER_WALLET_ADDRESS=
THIRDWEB_X402_NETWORK=base-sepolia

# OmniClaw self-hosted exact seller path:
# payment=client.sell("$0.25", seller_address=os.environ["SELLER_ADDRESS"], facilitator="omniclaw")
OMNICLAW_X402_SELF_HOSTED_FACILITATOR_URL=http://127.0.0.1:4022
OMNICLAW_X402_EXACT_NETWORK_PROFILE=ARC-TESTNET

# =============================================================================
# Self-Hosted Exact Facilitator
# =============================================================================

# Run with:
# omniclaw facilitator exact --network-profile ARC-TESTNET --port 4022
OMNICLAW_X402_FACILITATOR_PRIVATE_KEY=0x...
OMNICLAW_X402_FACILITATOR_NETWORK_PROFILE=ARC-TESTNET
OMNICLAW_X402_FACILITATOR_RPC_URL=https://rpc.testnet.arc.network
OMNICLAW_X402_FACILITATOR_NETWORKS=eip155:5042002
OMNICLAW_X402_FACILITATOR_HOST=0.0.0.0
OMNICLAW_X402_FACILITATOR_PORT=4022

# =============================================================================
# Production Hardening
# =============================================================================

# Required for production seller replay protection.
OMNICLAW_SELLER_NONCE_REDIS_URL=redis://localhost:6379/1
OMNICLAW_SELLER_REQUIRE_DISTRIBUTED_NONCE=true

# Strict settlement should remain enabled for production payment gates.
# Strict settlement should remain enabled for production buyer x402 payments.
OMNICLAW_STRICT_SETTLEMENT=true

# Webhook verification and deduplication.
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
.env.*
!.env.example
.env.local
*.env
*.pem
*.key
secrets.json
Expand Down
22 changes: 13 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

### Changed
- Removed the obsolete secondary console entrypoint and pointed both console scripts at the unified `omniclaw.cli` buyer/core CLI.
- Updated public docs and release verification so removed setup/server/doctor commands are no longer advertised.

## [0.0.6] - 2026-04-14

### Added
- Added the owner/operator `omniclaw facilitator exact` command for self-hosted x402 exact settlement.
- Added public facilitator documentation covering Circle Gateway, external facilitators, and OmniClaw self-hosted exact settlement.
- Added x402 exact-settlement buyer support.
- Added public documentation for Circle Gateway and x402 exact payment flows.
- Added Arc Testnet exact-settlement support documentation using CAIP-2 `eip155:5042002`.
- Added B2B SDK examples for vendor APIs, machine-to-vendor payments, external exact facilitators, and self-hosted exact settlement.
- Added a public `.env.example` with role-based configuration for agents, vendors, facilitators, Circle Gateway, Thirdweb, and production hardening.
- Added B2B SDK examples for machine-to-machine payments.
- Added a public `.env.example` with role-based configuration for agents, Circle Gateway, Thirdweb, and production hardening.

### Changed
- Moved the owner/operator CLI entrypoint to `omniclaw.admin_cli:main` so it no longer conflicts with the `omniclaw.cli` agent CLI package.
- Updated release artifact verification for the new admin CLI module and package layout.
- Reworked public README and docs around agent buyer, SDK buyer, vendor SDK seller, Financial Policy Engine, and facilitator deployment paths.
- Moved the owner/operator CLI entrypoint away from the `omniclaw.cli` agent CLI package.
- Updated release artifact verification for the package layout.
- Reworked public README and docs around agent buyer, SDK buyer, and Financial Policy Engine paths.
- Updated the OmniClaw CLI skill to require idempotency keys for x402 URL payments.
- Bumped runtime and shipped CLI skill metadata to `0.0.6`.

Expand Down Expand Up @@ -50,8 +54,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [0.0.3] - 2026-03-25

### Added
- Multi-facilitator support: Circle Gateway, Coinbase CDP, OrderN, RBX, Thirdweb
- Seller SDK: Full seller-side SDK for accepting x402 payments
- Payment rail support: Circle Gateway, Coinbase CDP, OrderN, RBX, Thirdweb
- x402 buyer support for paid HTTP resources
- Trust Gate: ERC-8004 based identity and reputation verification
- Payment Intents: 2-phase commit with fund reservation
- Enhanced buyer SDK with smart payment routing
Expand Down
7 changes: 3 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ WORKDIR /app
COPY pyproject.toml README.md ./
COPY src/ src/

RUN pip install --no-cache-dir ".[ops]"
RUN pip install --no-cache-dir .

# ─── Runtime stage ────────────────────────────────────────────────────
FROM python:3.12-slim
Expand All @@ -18,9 +18,8 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/pytho
COPY --from=builder /usr/local/bin/ /usr/local/bin/
COPY --from=builder /app/ /app/

EXPOSE 8088
EXPOSE 8080

ENV OMNICLAW_OPS_PORT=8088
ENV OMNICLAW_REDIS_URL=redis://redis:6379/0

CMD ["uvicorn", "omniclaw.ops.api:app", "--host", "0.0.0.0", "--port", "8088"]
CMD ["uvicorn", "omniclaw.agent.server:app", "--host", "0.0.0.0", "--port", "8080"]
Loading
Loading