Skip to Content

Architecture

cfxdevkit follows a four-tier layered architecture. Dependencies flow downward only — no upward or circular imports are allowed.

Tier model

┌──────────────────────────────────────────────────────────────────┐ │ Tier 3 — Projects & Apps │ │ projects/cas │ projects/chainbrawler │ projects/electro │ ├──────────────────────────────────────────────────────────────────┤ │ Tier 2 — Domain Logic │ │ repos/cfx-domain │ ├──────────────────────────────────────────────────────────────────┤ │ Tier 1 — Developer Platform │ │ repos/cfx-tools │ ├──────────────────────────────────────────────────────────────────┤ │ Tier 0 — Framework │ │ cfx-solidity │ cfx-core │ cfx-ui │ cfx-keys │ └──────────────────────────────────────────────────────────────────┘ ▲ ▲ ▲ tools/ infrastructure/ docs/ ← cross-cutting

Package map

PackageTierRepo slice
@cfxdevkit/abis0repos/cfx-solidity
@cfxdevkit/cdk0repos/cfx-core
@cfxdevkit/contracts0repos/cfx-solidity
@cfxdevkit/defi-react0repos/cfx-ui
@cfxdevkit/devnode0repos/cfx-core
@cfxdevkit/executor0repos/cfx-core
@cfxdevkit/protocol0repos/cfx-core
@cfxdevkit/react0repos/cfx-ui
@cfxdevkit/services0repos/cfx-keys
@cfxdevkit/signer-session0repos/cfx-keys
@cfxdevkit/testing0repos/cfx-core
@cfxdevkit/theme0repos/cfx-ui
@cfxdevkit/ui0repos/cfx-ui
@cfxdevkit/ui-core0repos/cfx-ui
@cfxdevkit/wallet0repos/cfx-keys
@cfxdevkit/wallet-connect0repos/cfx-ui
@cfxdevkit/cli1repos/cfx-tools
@cfxdevkit/client1repos/cfx-tools
@cfxdevkit/compiler1repos/cfx-tools
@cfxdevkit/create1repos/cfx-tools
@cfxdevkit/devnode-core1repos/cfx-tools
@cfxdevkit/devnode-server1repos/cfx-tools
@cfxdevkit/keystore-server1repos/cfx-tools
@cfxdevkit/llm-agents1repos/cfx-tools
@cfxdevkit/mcp-server1repos/cfx-tools
@cfxdevkit/automation2repos/cfx-domain
@cfxdevkit/game-engine2repos/cfx-domain

Key principles

One-way dependency graph — Tiers cannot create cycles. A tier-0 package must never import from tier-1 or higher.

Explicit public surfaces — Every publishable package exposes an exports map in package.json. Deep imports outside the declared sub-paths are not supported.

No circular dependencies — Enforced by Moon task ordering and arch-check CI gate.

Config packages are not tiers — Shared config packages (biome-config, tsconfig, moon-config, arch-rules) are build-time utilities excluded from the tier model.

This file is fully regenerated by pnpm sync:architecture. Do not edit manually.

Last updated on