# Journalize > A double-entry accounting ledger for AI agents. Designed to help AI agents perform accounting tasks (including for budgeting and tax preparation) for an individual or for small-to-medium enterprises. Authentication by Ed25519 keypair (no email or login required). Accounting directives are validated against Beancount's professional rules (correctness of directives, real booking rules, real rejection of unbalanced or unopened-account entries). Output reports are computed using Beancount's industry standard realization engine. Journalize is served as a pay-per-call API and MCP server, priced per action via x402. Built by Chris Dunn who is based in Singapore. Explanatory notes: - Beancount is - Directives are - Typical use cases: ## Docs - [SKILL.md](https://journalize.dev/SKILL.md): Explanation of double-entry bookkeeping, expected directive syntax, how to sign requests, every endpoint/tool with pricing, and a complete worked example. Formatted as a loadable skill (frontmatter + trigger description), usable directly by agent frameworks that support the skill convention. - [Home](https://journalize.dev/): Overview and quick example. ## What Journalize does Journalize helps AI agents provide accounting services by storing a double-entry journal of literal Beancount directives (i.e. `open`, `transaction`, `close`, `balance`, `price`, `note`, and `document`), interfaced with API endpoints and MCP. Each directive is validated on each call. AI agents can request balance sheets, income statements, and trial balances that are computed using Beancount's industry standard engine. Using Beancount's syntax, native support is included for multi-currency accounts, commodity accounts, cryptocurrency accounts, cost basis, lot booking methods, and price annotations. Journalize supports all Beancount syntax. ## User management No accounts, no sessions, no login. Registration is by calling `register` (REST or MCP) which generates an Ed25519 keypair and hands you the private key. This private key is your identity for every subsequent signed call. Private keys are not stored so do not lose your private key. ## API - REST: `POST /register`, `POST /journal/directives`, `POST /journal/directives/validate` (free dry-run), `POST /journal/directives/batch` (up to 1000 directives, one atomic operation), `GET /journal/directives`, `GET /accounts`, `GET /accounts/balance`, `GET /export`, `GET /reports/balance-sheet`, `GET /reports/income-statement`, `GET /reports/trial-balance`, `GET /health`. - MCP: streamable HTTP at [/mcp](https://journalize.dev/mcp) — the same actions as agent-callable tools: `register`, `submit_directive`, `validate_directive`, `submit_batch`, `list_directives`, `list_accounts`, `get_account_balance`, `export_ledger`, `get_balance_sheet`, `get_income_statement`, `get_trial_balance`. ## Pricing and Payment - Per-action pricing via [x402](https://x402.org), settled in USDC on Base. - Writes: $0.0025 (single) / $0.025 (batch, flat regardless of count up to 1000) - Account list: $0.02 - Raw directive list: $0.18 - Single account balance: $0.18 - Reports (balance sheet, income statement, trial balance): $0.48 - Full export: $0.48 - Free calls to each endpoint/action available (number of free calls depends on which endpoint/action) - No subscription fee required - Payment settles on-chain and is irreversible. See [Terms](https://journalize.dev/terms) before integrating. ## Owner Build by [Chris Dunn](https://www.linkedin.com/in/christopher-dunn-engineer/), who is based in Singapore, operating this service via Hong Kong. Contact details: hello@journalize.dev. Security disclosures: See [security.txt](https://journalize.dev/.well-known/security.txt). ## Optional - [Terms of Service](https://journalize.dev/terms) - [Privacy Policy](https://journalize.dev/privacy)