From d77895452bae02af4b4cc9903e2a43bfde735c56 Mon Sep 17 00:00:00 2001 From: Violet Agent Date: Fri, 12 Jun 2026 11:37:39 +0300 Subject: [PATCH 1/4] Use website branding in docs --- public/bloom-mark.svg | 17 +++++++++-------- public/favicon.svg | 10 ++++++++++ public/og.png | Bin 0 -> 42177 bytes src/pages/index.mdx | 34 +++++++++++++++++++++++++++++++++- vocs.config.ts | 21 ++++++++++++++++----- 5 files changed, 68 insertions(+), 14 deletions(-) create mode 100644 public/favicon.svg create mode 100644 public/og.png diff --git a/public/bloom-mark.svg b/public/bloom-mark.svg index 51bd683..ce01cc1 100644 --- a/public/bloom-mark.svg +++ b/public/bloom-mark.svg @@ -1,9 +1,10 @@ - - - - - - - + + + + + + + + + - diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..ce01cc1 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/og.png b/public/og.png new file mode 100644 index 0000000000000000000000000000000000000000..a2dc5422b201f62d62f2a2b97546c3ec87be1c0c GIT binary patch literal 42177 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 literal 0 HcmV?d00001 diff --git a/src/pages/index.mdx b/src/pages/index.mdx index b473e29..2e3f299 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -1,4 +1,36 @@ -# Bloom Docs +--- +title: /bloom | Documentation +description: Documentation for Bloom, the agentic Ethereum wallet mounted as a virtual filesystem. +--- + +
+ /bloom +
+ + Bloom is an **agentic Ethereum wallet mounted as a virtual filesystem**. diff --git a/vocs.config.ts b/vocs.config.ts index b43d5f0..daed1b7 100644 --- a/vocs.config.ts +++ b/vocs.config.ts @@ -1,13 +1,24 @@ import { defineConfig } from 'vocs/config' +const env = (globalThis as typeof globalThis & { + process?: { env?: Record } +}).process?.env ?? {} + +const siteUrl = + env.CF_PAGES_BRANCH === 'master' + ? 'https://docs.bloom.directory' + : env.CF_PAGES_URL + export default defineConfig({ - title: 'Bloom Docs', - description: 'Agentic Ethereum wallet documentation for Bloom.', - logoUrl: '/bloom-mark.svg', - iconUrl: '/bloom-mark.svg', + title: '/bloom | Documentation', + description: + 'Documentation for Bloom, the agentic Ethereum wallet mounted as a virtual filesystem.', + logoUrl: '/favicon.svg', + iconUrl: '/favicon.svg', + ogImageUrl: siteUrl ? `${siteUrl}/og.png` : '/og.png', + baseUrl: siteUrl, rootDir: 'src/pages', renderStrategy: 'full-static', - baseUrl: 'https://docs.bloom.directory', socials: [ { icon: 'github', link: 'https://github.com/bloom-directory' }, { icon: 'x', link: 'https://x.com/bloomdirectory' }, From aa0919092489466cc9a9849986680816d40a50fb Mon Sep 17 00:00:00 2001 From: Violet Agent Date: Fri, 12 Jun 2026 13:00:07 +0300 Subject: [PATCH 2/4] Match OG wordmark branding --- public/og.png | Bin 42177 -> 51850 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/og.png b/public/og.png index a2dc5422b201f62d62f2a2b97546c3ec87be1c0c..aeac8f3e096e02731fd849681fcb184ce845273a 100644 GIT binary patch literal 51850 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�wUsZ$)fy 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

xh= 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 From 7136e0a81b939862ba4425eaa3b2056a8f213703 Mon Sep 17 00:00:00 2001 From: Violet Agent Date: Fri, 12 Jun 2026 13:12:36 +0300 Subject: [PATCH 3/4] Update docs content and mounted filesystem examples --- src/pages/getting-started/agent-setup.mdx | 21 ++++--- src/pages/getting-started/quickstart.mdx | 37 +++++------- src/pages/index.mdx | 2 +- src/pages/introduction/benefits.mdx | 4 +- src/pages/introduction/core-concepts.mdx | 14 ++--- src/pages/petals/overview.mdx | 39 +++++------- src/pages/reference/deployment.mdx | 50 ---------------- src/pages/reference/supported-chains.mdx | 59 +++++++++++++++++-- .../reference/technical-architecture.mdx | 33 ++++++----- src/pages/wallet/defi-intents.mdx | 10 ++-- src/pages/wallet/filesystem-guide.mdx | 41 ++++++------- src/pages/wallet/wallets-and-transactions.mdx | 13 ++-- src/pages/wallet/watches-and-simulation.mdx | 19 +++--- vocs.config.ts | 1 - 14 files changed, 159 insertions(+), 184 deletions(-) delete mode 100644 src/pages/reference/deployment.mdx diff --git a/src/pages/getting-started/agent-setup.mdx b/src/pages/getting-started/agent-setup.mdx index 60763eb..4fafd12 100644 --- a/src/pages/getting-started/agent-setup.mdx +++ b/src/pages/getting-started/agent-setup.mdx @@ -10,14 +10,13 @@ An agent should then: 1. Install or build the `bloom` binary. 2. Run `bloom init`. -3. Prefer a mounted filesystem when available. -4. Fall back to `bloom vfs cat|ls|write` when mounting is blocked. -5. Inspect `/docs/README.md`, `/status/`, and the top-level tree before taking actions. -6. Explain what it can do and ask before confirming any transaction. +3. Mount Bloom at `/bloom` or the configured mount path. +4. Inspect `/bloom/docs/README.md`, `/bloom/status/`, and the top-level tree before taking actions. +5. Explain what it can do and ask before confirming any transaction. ## Rules for agents -- Do not write custom signing or broadcast code unless Bloom cannot satisfy the task. +- Do not write or use custom signing or broadcast code. - Read generated plans before asking the user to approve anything. - Treat missing config, disabled broadcasts, and policy failures as safety signals, not obstacles to bypass. - Keep live mainnet and L2 sends opt-in. @@ -25,10 +24,10 @@ An agent should then: ## Useful discovery commands ```sh -bloom vfs ls / -bloom vfs cat /docs/README.md -bloom vfs cat /status/daemon.json -bloom vfs cat /status/backends/summary.json -bloom vfs ls /chains -bloom vfs ls /tools +ls /bloom/ +cat /bloom/docs/README.md +cat /bloom/status/daemon.json +cat /bloom/status/backends/summary.json +ls /bloom/chains +ls /bloom/tools ``` diff --git a/src/pages/getting-started/quickstart.mdx b/src/pages/getting-started/quickstart.mdx index cd76238..8fc728e 100644 --- a/src/pages/getting-started/quickstart.mdx +++ b/src/pages/getting-started/quickstart.mdx @@ -1,6 +1,6 @@ # Quickstart -This walkthrough uses the CLI fallback. If the mount is available, the same paths work through `/bloom` or your selected mount directory. +This walkthrough uses the mounted `/bloom` filesystem. Bloom’s command-specific fallbacks exist for constrained environments, but normal shell tools against the mount are the default interface. ## Prerequisites @@ -14,33 +14,25 @@ cargo build -p bloom --all-features cargo run -p bloom -- init ``` -`bloom init` creates the Bloom home directory, writes the default config, and registers read-ready chain defaults. - -## Inspect chain state - -```sh -cargo run -p bloom -- vfs ls / -cargo run -p bloom -- vfs cat /docs/README.md -cargo run -p bloom -- vfs cat /chains/ethereum/head/number -cargo run -p bloom -- vfs cat /prices/spot/eth.usd -``` +`bloom init` creates the Bloom home directory, writes the default config, and registers read-ready chain defaults. The default mount path is `/bloom`. ## Mount the filesystem -Create a mount directory and start the daemon: +Create the mount directory and start the daemon: ```sh -mkdir -p "$HOME/bloom" -cargo run -p bloom -- serve --mount "$HOME/bloom" +sudo mkdir -p /bloom +cargo run -p bloom -- serve --mount /bloom ``` Then inspect it like any other directory: ```sh -ls ~/bloom -cat ~/bloom/docs/README.md -ls ~/bloom/chains -cat ~/bloom/chains/ethereum/head/number +ls /bloom/ +cat /bloom/docs/README.md +ls /bloom/chains +cat /bloom/chains/ethereum/head/number +cat /bloom/prices/spot/eth.usd ``` ## Create a demo wallet @@ -57,16 +49,15 @@ The key is encrypted in the keystore. The filesystem exposes address and public With Anvil running on `127.0.0.1:8545`: ```sh -bloom vfs write \ - /wallets/alice/chains/anvil/outbox/new.tx \ - --data 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' +printf '%s' 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ + > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` Review the pending entry: ```sh -bloom vfs ls /wallets/alice/chains/anvil/outbox/pending -bloom vfs cat /wallets/alice/chains/anvil/outbox/pending//plan.md +ls /bloom/wallets/alice/chains/anvil/outbox/pending +cat /bloom/wallets/alice/chains/anvil/outbox/pending//plan.md ``` Confirm only after reading the plan. diff --git a/src/pages/index.mdx b/src/pages/index.mdx index 2e3f299..5647589 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -61,4 +61,4 @@ For the shortest onboarding path, tell your agent: Read https://bloom.directory/SKILL.md and set up Bloom. ``` -The agent should then mount Bloom or use the `bloom vfs` fallback, inspect the in-tree docs, explain the capabilities it found, and use Bloom instead of writing bespoke Web3 SDK code. +The agent should then mount Bloom at `/bloom`, inspect the in-tree docs, explain the capabilities it found, and use Bloom instead of writing bespoke Web3 SDK code. diff --git a/src/pages/introduction/benefits.mdx b/src/pages/introduction/benefits.mdx index f74bc59..16ea79b 100644 --- a/src/pages/introduction/benefits.mdx +++ b/src/pages/introduction/benefits.mdx @@ -12,10 +12,10 @@ Bloom is designed around the operating model agents already understand: files. ## For agents -- **No custom Web3 loop.** Agents can use `ls`, `cat`, and writes rather than assembling RPC calls and signing flows from scratch. +- **No custom Web3 loop.** Agents can use `ls`, `cat`, and file writes under `/bloom` rather than assembling RPC calls and signing flows from scratch. - **Discoverable capabilities.** The mounted tree exposes docs, status, supported chains, wallets, tools, and control files in one place. - **Plans before actions.** Every write-oriented workflow is staged into readable artifacts such as `plan.md`, `intent.json`, and `policy_check.json`. -- **Lower integration cost.** The same paths work through the mounted filesystem and through the `bloom vfs cat|ls|write` fallback. +- **Lower integration cost.** The same paths work through ordinary shell tools, scripts, and file-aware agent runtimes once `/bloom` is mounted. ## For developers and integrators diff --git a/src/pages/introduction/core-concepts.mdx b/src/pages/introduction/core-concepts.mdx index 2edaf2f..ba45482 100644 --- a/src/pages/introduction/core-concepts.mdx +++ b/src/pages/introduction/core-concepts.mdx @@ -6,16 +6,12 @@ Bloom exposes blockchain and wallet operations as paths. Reading a file performs ## Mounted directory -The preferred interface is a mounted directory such as `~/bloom`, `/bloom`, or `/Volumes/bloom`. The mount lets any agent or shell tool interact with Bloom using ordinary filesystem operations. - -## `bloom vfs` fallback - -When mounting is unavailable, the CLI exposes the same paths: +The preferred interface is the mounted `/bloom` directory. The mount lets any agent or shell tool interact with Bloom using ordinary filesystem operations. ```sh -bloom vfs ls / -bloom vfs cat /docs/README.md -bloom vfs write /wallets/new --data alice +ls /bloom/ +cat /bloom/docs/README.md +printf '%s' alice > /bloom/wallets/new ``` ## Stage-confirm flow @@ -28,4 +24,4 @@ Policies live per wallet and enforce caps, recipient rules, contract-call gates, ## Audit log -Bloom appends writes and side-effecting reads to a hash-chained audit log under the Bloom home directory. The current head is exposed through `status/audit/head`. +Bloom appends writes and side-effecting reads to a hash-chained audit log under the Bloom home directory. The current head is exposed through `/bloom/status/audit/head`. diff --git a/src/pages/petals/overview.mdx b/src/pages/petals/overview.mdx index 94d1d81..bd43c0c 100644 --- a/src/pages/petals/overview.mdx +++ b/src/pages/petals/overview.mdx @@ -1,31 +1,26 @@ # Petals -A petal is a Bloom application module compiled to WebAssembly. A deployed petal -is content-addressed by its wasm hash and bound to a human-readable path such as -`/bloom/core/fungible` or `/bloom/dex/pool`. +## ⚠️ WARNING - EARLY / UNFINISHED -Petals are invoked through programmable transaction blocks, or PTBs. A PTB can -call multiple petal functions, pass outputs from one command into later -commands, transfer objects, split and merge coins, and commit or revert -atomically. +Petals are not ready for prime-time use. They are in active development, the APIs and runtime model may change, and the current documentation is primarily for Bloom developers rather than end users. + +Today, Petals should be understood as the path toward safe extensions to WalletFS: small, reviewable modules that can add capabilities behind Bloom’s policy, planning, and filesystem boundaries without asking agents to write custom signing or broadcast code. + +A petal is a Bloom application module compiled to WebAssembly. A deployed petal is content-addressed by its wasm hash and bound to a human-readable path such as `/bloom/core/fungible` or `/bloom/dex/pool`. + +Petals are invoked through programmable transaction blocks, or PTBs. A PTB can call multiple petal functions, pass outputs from one command into later commands, transfer objects, split and merge coins, and commit or revert atomically. ## What Petal Authors Write -Petal authors should start in their own Rust project, not inside the Bloom -monorepo. Today, depend on the Bloom repo by git URL, build your crate to wasm, -and use the Bloom CLI to deploy the resulting `.wasm`. +Petal authors should start in their own Rust project, not inside the Bloom monorepo. Today, depend on the Bloom repo by git URL, build your crate to wasm, and use the Bloom CLI to deploy the resulting `.wasm`. Petal authors write Rust crates that depend on the Bloom runtime and macros: -- `bloom-resource`: guest-side runtime types such as `Resource`, `Coin`, - `Capability`, `Signer`, `UID`, `BloomType`, and host wrappers. -- `bloom-resource-macros`: `#[bloom::petal]`, `#[bloom::object]`, - `#[bloom::capability]`, `#[derive(BloomType)]`, and - `#[bloom::invariant]`. +- `bloom-resource`: guest-side runtime types such as `Resource`, `Coin`, `Capability`, `Signer`, `UID`, `BloomType`, and host wrappers. +- `bloom-resource-macros`: `#[bloom::petal]`, `#[bloom::object]`, `#[bloom::capability]`, `#[derive(BloomType)]`, and `#[bloom::invariant]`. - `bloom-objects`: object IDs, owners, access modes, and type tags. -Every public function inside a `#[bloom::petal]` module becomes a callable -entry point. The macro emits: +Every public function inside a `#[bloom::petal]` module becomes a callable entry point. The macro emits: - one wasm export named `__petal_`; - a `bloom_petal_manifest_v0` custom section; @@ -33,12 +28,6 @@ entry point. The macro emits: ## What The Chain Uses -At deploy time, Bloom checks that the wasm contains a manifest section, that the -manifest path matches the deploy path, and that every manifest function has a -matching wasm export. +At deploy time, Bloom checks that the wasm contains a manifest section, that the manifest path matches the deploy path, and that every manifest function has a matching wasm export. -At call time, the PTB validator loads the manifest, checks argument kinds and -object access modes, then the executor runs the wasm under a deterministic -chain VM. Constants, returns, and object payloads use Bloom's canonical, -manifest-driven value codec; old ad hoc petal payload layouts are not the -supported authoring model. +At call time, the PTB validator loads the manifest, checks argument kinds and object access modes, then the executor runs the wasm under a deterministic chain VM. Constants, returns, and object payloads use Bloom's canonical, manifest-driven value codec; old ad hoc petal payload layouts are not the supported authoring model. diff --git a/src/pages/reference/deployment.mdx b/src/pages/reference/deployment.mdx deleted file mode 100644 index 811a208..0000000 --- a/src/pages/reference/deployment.mdx +++ /dev/null @@ -1,50 +0,0 @@ -# Deployment - -The docs are configured for Cloudflare Pages. Vocs does **not** require Cloudflare Workers when it is built with full-static output. - -## Pages settings - -Use the existing Cloudflare Pages project for this repository with custom build settings: - -| Setting | Value | -| --- | --- | -| Framework preset | `None` / custom | -| Root directory | repository root | -| Build command | `npm ci && npm run build` | -| Build output directory | `dist/public` | -| Node version | `22`, or Cloudflare Pages' current LTS if 22 is unavailable | - -The Vocs config uses: - -```ts -renderStrategy: 'full-static' -``` - -That makes `vocs build` emit HTML and assets under `dist/public`, which Pages can serve directly. - -## Production deploys - -Connect the Pages project to `bloom-directory/docs` and configure production deployments from `master`. - -When a PR merges into `master`, Cloudflare Pages should run the build command and publish `dist/public`. - -## Pull request previews - -Cloudflare Pages supports automatic preview deployments for GitHub pull requests. - -To enable them: - -1. Open the Cloudflare dashboard. -2. Go to **Workers & Pages → docs Pages project → Settings → Builds & deployments**. -3. Ensure the project is connected to `bloom-directory/docs`. -4. Set production branch to `master`. -5. Enable preview deployments for pull requests / non-production branches. -6. Confirm the build settings above. - -After that, each PR should get a Cloudflare Pages preview URL and a GitHub deployment/check attached to the PR. - -## When would Workers be needed? - -Use Workers only if the docs need custom edge logic: auth, redirects that Pages cannot express, headers/caching beyond Pages config, API endpoints, or server-side rendering. - -For the current Bloom docs site, static Pages hosting is enough and simpler. diff --git a/src/pages/reference/supported-chains.mdx b/src/pages/reference/supported-chains.mdx index d166f61..472b41f 100644 --- a/src/pages/reference/supported-chains.mdx +++ b/src/pages/reference/supported-chains.mdx @@ -19,14 +19,61 @@ Reads, simulations, and planning work with zero configuration when public RPC de ## Chain paths ```txt -/chains//head/number -/chains//head/hash -/chains//blocks/ -/chains//addresses/

/... -/chains//contracts/
/... -/chains//tx//... +/bloom/chains//head/number +/bloom/chains//head/hash +/bloom/chains//blocks/ +/bloom/chains//addresses/
/... +/bloom/chains//contracts/
/... +/bloom/chains//tx//... ``` +## Adding custom chains + +Custom EVM chains are added to `~/.bloom/config.toml` under `[chains.]`. The name becomes the filesystem path segment under `/bloom/chains//`, so keep it lowercase and shell-friendly. + +A minimal read-only chain entry needs a display name, numeric EVM `chain_id`, native token metadata, and at least one RPC endpoint: + +```toml +[chains.mychain] +name = "mychain" +chain_id = 12345 +display_name = "My Chain" +native_symbol = "MYC" +native_decimals = 18 +rpc_urls = ["https://rpc.mychain.example"] +allow_broadcast = false +``` + +For richer endpoint selection, use `rpc_endpoints` instead of `rpc_urls`: + +```toml +[[chains.mychain.rpc_endpoints]] +url = "https://rpc-primary.mychain.example" +weight = 100 +max_rps = 25 +http_only = true + +[[chains.mychain.rpc_endpoints]] +url = "https://rpc-backup.mychain.example" +weight = 50 +``` + +Optional fields: + +- `etherscan_api_url` — Etherscan-compatible explorer API base URL for ABI/source/address-history surfaces. +- `legacy_tx = true` — use legacy `gas_price` transactions instead of EIP-1559 fee fields. +- `allow_broadcast = true` — permit live sends on this chain. Keep this `false` until the chain is tested and policy is configured. + +After editing config, restart the daemon and verify the mounted paths: + +```sh +bloom serve --mount /bloom +ls /bloom/chains/mychain +cat /bloom/chains/mychain/head/number +``` + +If reads fail, check `/bloom/status/backends/summary.json` and the daemon logs first. Custom chains must provide at least one usable `rpc_urls` or `rpc_endpoints` entry. + ## Etherscan-backed surfaces Address history and contract source/ABI metadata use Etherscan v2 with a TTL cache when configured. diff --git a/src/pages/reference/technical-architecture.mdx b/src/pages/reference/technical-architecture.mdx index 1273e60..af633fa 100644 --- a/src/pages/reference/technical-architecture.mdx +++ b/src/pages/reference/technical-architecture.mdx @@ -7,23 +7,24 @@ Bloom is a Rust workspace split into focused crates around a daemon, virtual fil ```txt agent or user │ - ├─ mounted filesystem: ~/bloom, /bloom, /Volumes/bloom + ├─ mounted filesystem: /bloom + │ │ + │ ├─ shell reads: ls /bloom/chains, cat /bloom/status/daemon.json + │ └─ shell writes: printf ... > /bloom/wallets//chains//outbox/new.tx │ - └─ CLI fallback: bloom vfs cat|ls|write - │ - ▼ - bloom daemon - │ - ├─ VFS router and handlers - ├─ wallet transaction engine - ├─ encrypted keystore and signer - ├─ chain RPC pool and Etherscan-backed metadata - ├─ DeFi routing via Enso - ├─ watch executor - └─ audit log and policy enforcement + ▼ +bloom daemon + │ + ├─ VFS router and handlers + ├─ wallet transaction engine + ├─ encrypted keystore and signer + ├─ chain RPC pool and Etherscan-backed metadata + ├─ DeFi routing via Enso + ├─ watch executor + └─ audit log and policy enforcement ``` -`bloom serve` runs a long-lived daemon and listens on a Unix-domain JSON-RPC socket at `~/.bloom/run/bloom.sock`. Later `bloom vfs` calls auto-route through the socket when it exists, sharing unlock cache, watches, DeFi sessions, Etherscan cache, and daemon state. +`bloom serve --mount /bloom` runs a long-lived daemon and exposes the mounted filesystem. Standard shell reads and writes share daemon state including unlock cache, watches, DeFi sessions, Etherscan cache, and policy/audit state. ## Core crates @@ -47,7 +48,7 @@ agent or user ## Data flow for a transaction -1. Agent writes an intent to a wallet outbox path. +1. Agent writes an intent to a wallet outbox path under `/bloom`. 2. The VFS router dispatches to wallet handlers. 3. The transaction engine parses the intent and resolves chain, recipient, gas, value, calldata, and nonce defaults. 4. Simulation and policy checks run. @@ -58,6 +59,6 @@ agent or user ## Backend boundaries -Some surfaces are direct RPC reads. Others use Etherscan v2 where an indexer is required today. The live backend declaration is exposed under `status/backends/` and `status/backends/summary.json`. +Some surfaces are direct RPC reads. Others use Etherscan v2 where an indexer is required today. The live backend declaration is exposed under `/bloom/status/backends/` and `/bloom/status/backends/summary.json`. The future `indexer` backend is reserved but intentionally returns a clear not-implemented error today. diff --git a/src/pages/wallet/defi-intents.mdx b/src/pages/wallet/defi-intents.mdx index 36848f7..d2b6407 100644 --- a/src/pages/wallet/defi-intents.mdx +++ b/src/pages/wallet/defi-intents.mdx @@ -1,14 +1,14 @@ # DeFi intents -Bloom exposes DeFi routing under `defi/intents//`. The current implementation uses Enso Shortcuts. +Bloom exposes DeFi routing under `/bloom/defi/intents//`. The current implementation uses Enso Shortcuts. ## Natural-language flow ```sh -bloom vfs write /defi/intents/alice/new --data 'swap 100 usdc to eth on ethereum' -bloom vfs ls /defi/intents/alice -bloom vfs cat /defi/intents/alice//plan.md -bloom vfs cat /defi/intents/alice//route.json +printf '%s' 'swap 100 usdc to eth on ethereum' > /bloom/defi/intents/alice/new +ls /bloom/defi/intents/alice +cat /bloom/defi/intents/alice//plan.md +cat /bloom/defi/intents/alice//route.json ``` A session may include: diff --git a/src/pages/wallet/filesystem-guide.mdx b/src/pages/wallet/filesystem-guide.mdx index cd0a9a3..c175392 100644 --- a/src/pages/wallet/filesystem-guide.mdx +++ b/src/pages/wallet/filesystem-guide.mdx @@ -1,39 +1,40 @@ # Filesystem guide -Bloom’s VFS is rooted at the selected mount path or at `/` when addressed through `bloom vfs`. +Bloom’s VFS is normally mounted at `/bloom`. Use standard shell tools against that mount: reads are `cat`/`ls`, writes are file writes. ## Top-level layout | Path | Purpose | | --- | --- | -| `chains//` | Chain heads, blocks, addresses, contracts, gas, txs, receipts, mempool, and Etherscan-backed history. | -| `wallets//` | Managed wallets, balances, nonce, outbox, and signing surfaces. | -| `defi/intents//` | Natural-language and structured DeFi routing through Enso. | -| `watch//` | Polling subscriptions for balances, blocks, gas, and events. | -| `simulate//` | `eth_call` and state-override sandboxes without signing or broadcast. | -| `tools/` | Hashes, ABI, RLP, base64, hex, units, EIP-712, and address helpers. | -| `prices/` | DefiLlama spot prices and 24h changes. | -| `addressbook/` | Local petname directory. | -| `ens/` | ENS forward resolution. | -| `status/` | Daemon health, backend declarations, audit state, cache counts, and policy flags. | -| `docs/` | In-tree operational docs vendored into the VFS. | +| `/bloom/chains//` | Chain heads, blocks, addresses, contracts, gas, txs, receipts, mempool, and Etherscan-backed history. | +| `/bloom/wallets//` | Managed wallets, balances, nonce, outbox, and signing surfaces. | +| `/bloom/defi/intents//` | Natural-language and structured DeFi routing through Enso. | +| `/bloom/watch//` | Polling subscriptions for balances, blocks, gas, and events. | +| `/bloom/simulate//` | `eth_call` and state-override sandboxes without signing or broadcast. | +| `/bloom/tools/` | Hashes, ABI, RLP, base64, hex, units, EIP-712, and address helpers. | +| `/bloom/prices/` | DefiLlama spot prices and 24h changes. | +| `/bloom/addressbook/` | Local petname directory. | +| `/bloom/ens/` | ENS forward resolution. | +| `/bloom/status/` | Daemon health, backend declarations, audit state, cache counts, and policy flags. | +| `/bloom/docs/` | In-tree operational docs vendored into the VFS. | ## Read examples ```sh -bloom vfs cat /chains/base/head/number -bloom vfs cat /chains/ethereum/gas -bloom vfs cat /chains/ethereum/contracts/
/abi -bloom vfs cat /prices/spot/eth.usd -bloom vfs cat /ens/vitalik.eth +cat /bloom/chains/base/head/number +cat /bloom/chains/ethereum/gas +cat /bloom/chains/ethereum/contracts/
/abi +cat /bloom/prices/spot/eth.usd +cat /bloom/ens/vitalik.eth ``` ## Write examples ```sh -bloom vfs write /wallets/new --data alice -bloom vfs write /addressbook/treasury --data 0x... -bloom vfs write /wallets/alice/chains/anvil/outbox/new.tx --data 'send 0.01 eth to 0x... on anvil' +printf '%s' alice > /bloom/wallets/new +printf '%s' 0x... > /bloom/addressbook/treasury +printf '%s' 'send 0.01 eth to 0x... on anvil' \ + > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` Every write surface should produce inspectable state rather than surprising side effects. diff --git a/src/pages/wallet/wallets-and-transactions.mdx b/src/pages/wallet/wallets-and-transactions.mdx index b192e62..6bc5dc3 100644 --- a/src/pages/wallet/wallets-and-transactions.mdx +++ b/src/pages/wallet/wallets-and-transactions.mdx @@ -7,7 +7,7 @@ Bloom wallets are local encrypted keys or watch-only addresses exposed through t Plain text creates a local wallet: ```sh -bloom vfs write /wallets/new --data alice +printf '%s' alice > /bloom/wallets/new ``` TOML supports explicit forms: @@ -25,9 +25,8 @@ passphrase = "..." # optional; falls back to BLOOM_PASSPHRASE Write to the wallet outbox: ```sh -bloom vfs write \ - /wallets/alice/chains/anvil/outbox/new.tx \ - --data 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' +printf '%s' 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ + > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` Bloom parses the intent, fills defaults, simulates where possible, runs policy checks, and creates a pending directory. @@ -35,9 +34,9 @@ Bloom parses the intent, fills defaults, simulates where possible, runs policy c ## Review and confirm ```sh -bloom vfs ls /wallets/alice/chains/anvil/outbox/pending -bloom vfs cat /wallets/alice/chains/anvil/outbox/pending//plan.md -bloom vfs cat /wallets/alice/chains/anvil/outbox/pending//policy_check.json +ls /bloom/wallets/alice/chains/anvil/outbox/pending +cat /bloom/wallets/alice/chains/anvil/outbox/pending//plan.md +cat /bloom/wallets/alice/chains/anvil/outbox/pending//policy_check.json ``` When running the long-lived daemon, confirm by writing non-empty content to `confirm`. For one-shot CLI flows, `bloom wallet confirm` unlocks and broadcasts in one command. diff --git a/src/pages/wallet/watches-and-simulation.mdx b/src/pages/wallet/watches-and-simulation.mdx index eb66df4..b5cace4 100644 --- a/src/pages/wallet/watches-and-simulation.mdx +++ b/src/pages/wallet/watches-and-simulation.mdx @@ -11,13 +11,16 @@ Kinds include: - `gas_price` - `event` -Write a TOML spec to `watch/new`, then inspect the watch directory: +Write a TOML spec to `/bloom/watch/new`, then inspect the watch directory: ```sh -bloom vfs write /watch/new --data 'kind = "block"\nchain = "base"' -bloom vfs ls /watch/ -bloom vfs cat /watch//live -bloom vfs cat /watch//history.jsonl +cat > /bloom/watch/new <<'EOF' +kind = "block" +chain = "base" +EOF +ls /bloom/watch/ +cat /bloom/watch//live +cat /bloom/watch//history.jsonl ``` Live files rotate at 1 MiB. @@ -29,7 +32,7 @@ Simulation sessions expose `eth_call` and state override workflows without signi Use simulation when an agent needs to inspect call effects, debug calldata, or prepare a plan before staging a wallet transaction. ```sh -bloom vfs write /simulate/new --data '{"chain":"anvil","to":"0x...","data":"0x..."}' -bloom vfs cat /simulate//result.json -bloom vfs cat /simulate//plan.md +printf '%s' '{"chain":"anvil","to":"0x...","data":"0x..."}' > /bloom/simulate/new +cat /bloom/simulate//result.json +cat /bloom/simulate//plan.md ``` diff --git a/vocs.config.ts b/vocs.config.ts index daed1b7..d0ab29e 100644 --- a/vocs.config.ts +++ b/vocs.config.ts @@ -61,7 +61,6 @@ export default defineConfig({ { text: 'Supported chains', link: '/reference/supported-chains' }, { text: 'Project map', link: '/reference/project-map' }, { text: 'Development', link: '/reference/development' }, - { text: 'Deployment', link: '/reference/deployment' }, { text: 'Limitations', link: '/reference/limitations' }, ], }, From 30fe612ed888b0f64d65da08bb9b36cd3447fd9d Mon Sep 17 00:00:00 2001 From: Violet Agent Date: Fri, 12 Jun 2026 13:46:29 +0300 Subject: [PATCH 4/4] Refine docs examples and architecture notes --- src/pages/getting-started/quickstart.mdx | 2 +- src/pages/introduction/core-concepts.mdx | 2 +- src/pages/petals/overview.mdx | 2 ++ src/pages/reference/technical-architecture.mdx | 15 ++++++++++++++- src/pages/wallet/defi-intents.mdx | 2 +- src/pages/wallet/filesystem-guide.mdx | 6 +++--- src/pages/wallet/wallets-and-transactions.mdx | 4 ++-- src/pages/wallet/watches-and-simulation.mdx | 2 +- 8 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/pages/getting-started/quickstart.mdx b/src/pages/getting-started/quickstart.mdx index 8fc728e..84a03b2 100644 --- a/src/pages/getting-started/quickstart.mdx +++ b/src/pages/getting-started/quickstart.mdx @@ -49,7 +49,7 @@ The key is encrypted in the keystore. The filesystem exposes address and public With Anvil running on `127.0.0.1:8545`: ```sh -printf '%s' 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ +echo 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` diff --git a/src/pages/introduction/core-concepts.mdx b/src/pages/introduction/core-concepts.mdx index ba45482..f0191d2 100644 --- a/src/pages/introduction/core-concepts.mdx +++ b/src/pages/introduction/core-concepts.mdx @@ -11,7 +11,7 @@ The preferred interface is the mounted `/bloom` directory. The mount lets any ag ```sh ls /bloom/ cat /bloom/docs/README.md -printf '%s' alice > /bloom/wallets/new +echo alice > /bloom/wallets/new ``` ## Stage-confirm flow diff --git a/src/pages/petals/overview.mdx b/src/pages/petals/overview.mdx index bd43c0c..43e3600 100644 --- a/src/pages/petals/overview.mdx +++ b/src/pages/petals/overview.mdx @@ -6,6 +6,8 @@ Petals are not ready for prime-time use. They are in active development, the API Today, Petals should be understood as the path toward safe extensions to WalletFS: small, reviewable modules that can add capabilities behind Bloom’s policy, planning, and filesystem boundaries without asking agents to write custom signing or broadcast code. +For an early example of a custom petal, see [`bloombook`](https://github.com/bloom-directory/bloombook). It is useful as a developer reference for how Petals can package new filesystem-backed capabilities, but it should be treated as experimental alongside the Petals runtime itself. + A petal is a Bloom application module compiled to WebAssembly. A deployed petal is content-addressed by its wasm hash and bound to a human-readable path such as `/bloom/core/fungible` or `/bloom/dex/pool`. Petals are invoked through programmable transaction blocks, or PTBs. A PTB can call multiple petal functions, pass outputs from one command into later commands, transfer objects, split and merge coins, and commit or revert atomically. diff --git a/src/pages/reference/technical-architecture.mdx b/src/pages/reference/technical-architecture.mdx index af633fa..ecbd825 100644 --- a/src/pages/reference/technical-architecture.mdx +++ b/src/pages/reference/technical-architecture.mdx @@ -10,7 +10,7 @@ agent or user ├─ mounted filesystem: /bloom │ │ │ ├─ shell reads: ls /bloom/chains, cat /bloom/status/daemon.json - │ └─ shell writes: printf ... > /bloom/wallets//chains//outbox/new.tx + │ └─ shell writes: echo ... > /bloom/wallets//chains//outbox/new.tx │ ▼ bloom daemon @@ -26,6 +26,19 @@ bloom daemon `bloom serve --mount /bloom` runs a long-lived daemon and exposes the mounted filesystem. Standard shell reads and writes share daemon state including unlock cache, watches, DeFi sessions, Etherscan cache, and policy/audit state. +## NFS mount surface + +Bloom exposes the VFS over NFS v4.1. The local `/bloom` mount is not a separate API from the VFS router; it is the normal filesystem surface backed by Bloom's daemon, handlers, policy checks, and audit model. + +This matters because Bloom should fit into ordinary Unix and infrastructure workflows rather than asking every agent or app to speak a custom CLI protocol. Over time, Bloom expects to rely more on this NFS layer for: + +- Unix permission boundaries and familiar file ownership/mode semantics; +- Docker and hypervisor use cases where `/bloom` can be shared into containers, VMs, or sandboxes as a mounted volume; +- multi-process workflows where different tools read plans, inspect state, and stage intents through the same mounted tree; +- safer automation patterns that can be constrained with standard filesystem access controls before Bloom's own policy layer evaluates an action. + +This area is still active work. Examples, experiments, and contributions around NFS permissions, container/VM volume sharing, and operational deployment patterns are welcome. + ## Core crates | Crate | Responsibility | diff --git a/src/pages/wallet/defi-intents.mdx b/src/pages/wallet/defi-intents.mdx index d2b6407..ca55b71 100644 --- a/src/pages/wallet/defi-intents.mdx +++ b/src/pages/wallet/defi-intents.mdx @@ -5,7 +5,7 @@ Bloom exposes DeFi routing under `/bloom/defi/intents//`. The current im ## Natural-language flow ```sh -printf '%s' 'swap 100 usdc to eth on ethereum' > /bloom/defi/intents/alice/new +echo 'swap 100 usdc to eth on ethereum' > /bloom/defi/intents/alice/new ls /bloom/defi/intents/alice cat /bloom/defi/intents/alice//plan.md cat /bloom/defi/intents/alice//route.json diff --git a/src/pages/wallet/filesystem-guide.mdx b/src/pages/wallet/filesystem-guide.mdx index c175392..8ffac34 100644 --- a/src/pages/wallet/filesystem-guide.mdx +++ b/src/pages/wallet/filesystem-guide.mdx @@ -31,9 +31,9 @@ cat /bloom/ens/vitalik.eth ## Write examples ```sh -printf '%s' alice > /bloom/wallets/new -printf '%s' 0x... > /bloom/addressbook/treasury -printf '%s' 'send 0.01 eth to 0x... on anvil' \ +echo alice > /bloom/wallets/new +echo 0x... > /bloom/addressbook/treasury +echo 'send 0.01 eth to 0x... on anvil' \ > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` diff --git a/src/pages/wallet/wallets-and-transactions.mdx b/src/pages/wallet/wallets-and-transactions.mdx index 6bc5dc3..f02a4f9 100644 --- a/src/pages/wallet/wallets-and-transactions.mdx +++ b/src/pages/wallet/wallets-and-transactions.mdx @@ -7,7 +7,7 @@ Bloom wallets are local encrypted keys or watch-only addresses exposed through t Plain text creates a local wallet: ```sh -printf '%s' alice > /bloom/wallets/new +echo alice > /bloom/wallets/new ``` TOML supports explicit forms: @@ -25,7 +25,7 @@ passphrase = "..." # optional; falls back to BLOOM_PASSPHRASE Write to the wallet outbox: ```sh -printf '%s' 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ +echo 'send 0.01 eth to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 on anvil' \ > /bloom/wallets/alice/chains/anvil/outbox/new.tx ``` diff --git a/src/pages/wallet/watches-and-simulation.mdx b/src/pages/wallet/watches-and-simulation.mdx index b5cace4..f351304 100644 --- a/src/pages/wallet/watches-and-simulation.mdx +++ b/src/pages/wallet/watches-and-simulation.mdx @@ -32,7 +32,7 @@ Simulation sessions expose `eth_call` and state override workflows without signi Use simulation when an agent needs to inspect call effects, debug calldata, or prepare a plan before staging a wallet transaction. ```sh -printf '%s' '{"chain":"anvil","to":"0x...","data":"0x..."}' > /bloom/simulate/new +echo '{"chain":"anvil","to":"0x...","data":"0x..."}' > /bloom/simulate/new cat /bloom/simulate//result.json cat /bloom/simulate//plan.md ```