FAQ
Frequently asked questions about Oak Chain.
Why Oak Chain?
Why the project exists, why now, and the bets it makes, including what happens if Ethereum or adoption fails, are covered in the Thesis.
Understanding Oak Chain
Who runs the validators?
Anyone can run the open-source software or operate an independent cluster. Membership in a specific Aeron cluster is currently operator-configured; there is no deployed permissionless public validator network or automatic validator discovery/admission service.
How much do validators earn? What are the costs?
Operating costs include hardware, storage, bandwidth, and, in chain-backed mode, RPC and settlement costs. V5 fees accrue to one cluster treasury. The contract does not split fees among validators or guarantee revenue; treasury distribution is an off-chain operator policy.
See Smart Contract for the current contract boundary.
Is my content public?
Yes, all content on Oak Chain is publicly readable. For private content, encrypt before storing.
What's the difference between SDK (Model 1) and AEM Connector (Model 2)?
Oak Chain offers two integration paths:
Model 1: Oak Chain SDK (Blockchain-Native)
- For: New applications, modern web/mobile apps, EDS deployments
- Technology: JavaScript/TypeScript SDK with REST API client
- Integration: Direct HTTPS API calls to validators
- Best when: Building from scratch, using React/Next.js, or deploying to Edge Delivery Services
Model 2: Oak Chain Connector (AEM Integration)
- For: Existing Adobe Experience Manager customers
- Technology: one OSGi bundle and an opt-in tool; Oak's composite node store mounts chain content read-only at
/oak-chain - Integration: JCR API over a read-only composite mount; segments are read over HTTP (like Cold Standby)
- Best when: Already running AEM 6.5 LTS and want chain content inside it. AEM as a Cloud Service is not supported. See AEM 6.5 LTS Integration.
Both models connect to the same validator cluster. The difference is how your application accesses Oak Chain. SDK for new apps, Connector for existing AEM.
See Architecture for detailed comparison.
What happens if my IPFS node goes down?
IPFS is decentralized. If your node goes down, binaries remain available if:
- Other IPFS nodes have pinned your content
- IPFS gateways (ipfs.io, Cloudflare, Pinata) cached your CID
- CDN edge caches have the binary
Best practices:
- Use a pinning service (for example Pinata or Infura IPFS) for redundancy
- Pin important binaries on multiple IPFS nodes
- Use IPFS gateways as fallback (configured in your application)
Important: Consensus stores binary references, while bytes may be author-hosted or written to a validator-configured BlobStore. A CID proves identity, not availability; at least one reachable storage provider must retain the bytes.
See Binary Storage Guide for IPFS setup.
How does wallet-based sharding work?
Your content lives under a path derived from your wallet address:
/oak-chain/{L1}/{L2}/{L3}/0x{wallet}/...
You cannot choose the path or the cluster. Clusters can claim ranges of the first prefix level, and a validator with sharding turned on redirects writes for wallets another cluster owns. Sharding is off by default, and cross-cluster deployments are not yet validated.
See Content Paths for the rules.
Payments & Economics
Why do I need to pay?
In chain-backed (sepolia) mode, payments provide:
- Spam prevention. Cost deters abuse.
- Payment record. Each write's payment is an Ethereum transaction anyone can check.
- Quality filter. Only content worth publishing gets published.
In mock mode, the default, payments are simulated. Chain-backed payments are not yet validated.
Is Oak Chain for everything?
No. Oak Chain is for published content meant to be seen and shared.
The economic filter: Writing costs ETH. This naturally curates the network. You won't pay to store garbage. But the network is open, so low-quality content isn't excluded, just discouraged by cost.
Think of it like publishing: You could print anything, but printing costs money, so you publish what matters.
How much does it cost?
Pricing is flat: every settled write or delete costs the same, paid in ETH to the ValidatorPaymentV5 contract. Current prices, gas costs, and capability flags are on Smart Contract.
Can I use testnet for free?
Yes! Use Sepolia testnet with free test ETH:
See Testnet Guide for setup.
What if my payment fails?
- Transaction reverted → No charge, retry
- Insufficient funds → Get more ETH, retry
- Wrong amount → Payment rejected, retry with the correct amount (excess ETH is refunded automatically)
- Proposal already settled → Replay protection rejected the duplicate; settle again with a new
proposalId
In sepolia mode, validators verify the settlement before a queued write is released to consensus. Mock mode, the default, simulates payment.
Technical
How fast is it?
Oak releases verified proposals through an adaptive packing buffer before Aeron consensus.
- release timing depends on verification status, queue pressure, and Aeron health
- Ethereum confirmation windows still matter for settlement verification
See Consensus Model for timing.
What's the maximum content size?
Organization names and other path rules are on Content Paths. Binary size limits for validator-hosted uploads are on Binary Storage. With author-hosted binaries, Oak Chain stores only the CID, so the file size is up to your storage.
Can I delete content?
Yes. Submit a delete proposal with your wallet signature. The content is removed from the Oak tree, but:
- Historical segments may retain data until compaction
- IPFS binaries remain until unpinned
- Blockchain payment records are permanent
What about abandoned or spam content?
This is a planned design, not something the validator does today. Today only the owning wallet can delete its content. The plan is cross-cluster garbage collection proposals:
Since clusters mount each other read-only, they can observe content quality. If Cluster B sees spam in Cluster A's shard, Cluster B can propose deletion. The authoritative cluster (A) decides whether to accept.
This creates a community moderation layer without central authority. Clusters have economic incentive to maintain quality (validators want a reputable network).
What happens if a validator goes down?
Raft consensus handles failures automatically:
- 1 of 3 down: Network continues normally
- 2 of 3 down: Network pauses (no quorum)
- Recovery: Failed nodes catch up via snapshot (design; crash and restart recovery is not yet validated)
Failover behavior depends on the Aeron configuration and deployment topology; no public production failover SLO is currently established. See Consensus Model.
What's the minimum cluster size? How many validators do I need?
Minimum: 3 validators (for fault tolerance)
- 1 can fail, network continues
- 2 failures = no quorum, network pauses
Recommended: 5 validators (production)
- Can tolerate 2 failures
- More geographic distribution
Cluster size: current lifecycle evidence centers on fixed three- and five-node test topologies. Larger membership and multi-cluster scaling require deployment-specific validation; there is no published production maximum or linear-scaling guarantee.
See Operators Guide for cluster setup.
Can I migrate existing AEM content to Oak Chain?
Yes, but migration tools are in development. Current options:
The validator has no segment import route, so content goes in through write proposals.
Option 1: Content API Migration
- Use AEM's Content Services API to read content
- Write to Oak Chain through the validator API or SDK
- Requires custom migration script
Option 2: Gradual Migration
- Opt in to the AEM 6.5 LTS mount
- Mount
/oak-chainread-only initially - Migrate content incrementally via write proposals
Note: Binary migration requires uploading binaries to IPFS first, then storing CIDs in Oak Chain.
Migration tooling is planned for future releases. See AEM Integration Guide for current integration options.
What's the read/write performance? How many writes per second?
Current performance evidence is limited to local, single-host validation and includes documented finalization and backpressure bottlenecks. No production throughput, linear cross-cluster scaling, constant read-latency, or failover SLO has been demonstrated. Benchmark the actual payload, storage, and network topology before publishing capacity claims.
How is my content secured?
- Wallet signature. Only you can write to your namespace (checked in
sepoliamode; mock mode checks the format only). - Raft consensus. Majority of validators must agree.
- Ethereum settlement. In chain-backed mode, payments are anchored to Ethereum.
- Replication. Content stored on multiple validators.
Can someone else write to my namespace?
In sepolia mode, no. Every write requires a signature from the namespace owner's wallet, and without your private key no one can:
- Create content under your wallet path
- Modify your existing content
- Delete your content
In mock mode, the default, the validator checks only the signature format, so anyone who can reach it can write under any wallet. Run mock mode only on trusted networks.
What if I lose my wallet?
Your content remains accessible (public reads), but you cannot:
- Write new content to that namespace
- Modify existing content
- Delete content
Best practice: Use a hardware wallet and secure your seed phrase.
Is the code audited?
Oak Chain is built on:
- Apache Jackrabbit Oak. 10+ years in production at Adobe.
- Aeron Cluster. Used in financial trading systems.
- Ethereum. Battle-tested smart contracts.
The Oak Chain integration layer and payment contract are open source for review. This documentation records no independent audit.
Is Oak Chain GDPR/HIPAA compliant?
Current status: Oak Chain is public by design. All content is publicly readable. This creates compliance challenges:
GDPR concerns:
- Right to erasure: Content can be deleted, but historical segments may persist until GC
- Data portability: Content is exportable (Oak TAR format)
- Data residency: Validators may be in any jurisdiction
HIPAA concerns:
- Public accessibility: All content is readable by anyone
- Encryption: Encrypt PHI before storing (Oak Chain doesn't encrypt at rest)
- Audit trails: Blockchain provides immutable audit logs
Recommendations:
- Encrypt sensitive data before storing in Oak Chain
- Use Oak Chain for public content only (product catalogs, marketing)
- Keep PHI/PII in private AEM instances
- Consider private clusters for compliance-sensitive content
Future: Access control lists (ACLs) and encryption at rest are planned features.
Can I export my content? What format?
Yes. Oak Chain uses Oak TAR segment format, which is:
- Standard Oak format (compatible with any Oak repository)
- Exportable via validator API or Oak tools
- Portable to other Oak-based systems
Export options:
- TAR segments: Full repository export (segments + journal)
- Content API: JSON export via REST API
- JCR API: Standard JCR export (if using AEM Connector)
Migration away: You can export your content and import it into:
- Another Oak Chain cluster
- Standard AEM instance
- Any Oak-based CMS
Note: IPFS binaries must be exported separately (download from IPFS by CID).
Integration
Does it work with AEM?
AEM 6.5 LTS can mount Oak Chain content read-only at /oak-chain through an opt-in composite mount; see AEM 6.5 LTS Integration. AEM as a Cloud Service is not supported. Inside AEM the mounted content is ordinary JCR:
- Same JCR API
- Same content model
- Same Sling patterns
- HTTP segment transfer (like Cold Standby)
Can I use it with React/Vue/etc?
Yes. Oak Chain exposes a REST API:
// Read content (clusterId comes from /v1/explorer/content/nav)
const response = await fetch(
`http://validator:8090/v1/explorer/content/clusters/${clusterId}/node?path=/oak-chain/...`
);
const node = await response.json();
// Write content (with wallet signature)
await fetch('http://validator:8090/v1/propose-write', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
proposalId: '0x1111111111111111111111111111111111111111111111111111111111111111',
walletAddress: wallet,
message: JSON.stringify(content),
ethereumTxHash: txHash,
signature,
}),
});
Is there a JavaScript SDK?
There is a JavaScript package at somarc/oak-chain-sdk, but the write-side client is currently being realigned to the validator contract. For chain-backed writes today, prefer direct HTTP against the validator API with a client-supplied proposalId. See API Reference for the current HTTP contract.
Can I run my own cluster?
Yes! Oak Chain is open source. You can:
- Run a private cluster for your organization
- Operate an independent cluster or join an operator-managed cluster by invitation
- Fork and customize for your use case
git clone https://github.com/somarc/oak-chain-infra.git
git clone https://github.com/somarc/jackrabbit-oak.git
cd oak-chain-infra && npm ci && npm link
export CLUSTER_RUNTIME_ROOT=/tmp/oak-chain
oak-chain mock up -- --fresh --build
See Operators Guide for production setup.
Can an organization use multiple wallets?
Yes. Organizations can use multiple wallets for:
- Brand separation: Different wallets for different brands/products
- Team isolation: Separate wallets per team/department
- Security: Limit exposure if one wallet is compromised
Management:
- Each wallet has its own namespace (
/oak-chain/{L1}/{L2}/{L3}/0x{wallet}/...) - Content is isolated per wallet
- No built-in cross-wallet management UI (use your own tooling)
Best practice: Use a wallet management system (like MetaMask's account switching or a multi-sig wallet) to manage multiple wallets.
Is there content versioning?
Current status: Oak Chain uses Oak's immutable segment store, which provides:
- Revision history: Every write creates a new revision
- Access via revision: Can read content at specific revisions
- JCR versioning: Not yet implemented (planned feature)
How it works:
- Each write creates a new revision (like Git commits)
- Previous revisions remain accessible until GC
- Revision access via HTTP is not yet exposed (planned).
Limitations:
- No JCR versioning API yet (planned)
- No version labels or branches
- GC may remove old revisions (configurable retention)
Future: Full JCR versioning support is planned, including version labels, checkpoints, and version history APIs.
Who pays Ethereum gas fees?
Authors pay for both:
- Settlement fees (to the configured cluster treasury in the V5 reference path)
- Gas fees (to Ethereum network) - Transaction costs
Measured gas costs are on Smart Contract.
What query languages are supported?
Current:
- JCR queries (XPath, SQL-2) - inside AEM; Oak's indexes do not cover
/oak-chain - REST API - JSON responses for content reads
- SSE streaming - Real-time content feed
Planned:
- GraphQL API - For flexible queries
- Full-text search - Via Oak indexes
Note: Oak Chain uses Oak's query engine, so standard JCR query syntax works. Queries execute against the local Oak segment store. In AEM, read /oak-chain by path: Oak's indexes do not cover the mount.
How do I monitor my content? What metrics are available?
Available surfaces:
- Validator dashboard:
http://validator:8090/- role, term, and reachable validators against quorum - Prometheus metrics:
http://validator:8090/metrics- metric names start withoak_, for exampleoak_consensus_is_leader,oak_validators_reachable, andoak_segments_disk_usage_bytes - Health endpoint:
http://validator:8090/health- node health status
Grafana dashboards: Production dashboards in development. See Operators Guide for current monitoring setup.
Are there rate limits on writes?
Yes. Validators rate-limit requests per client, per validator, and writes per wallet, and answer 429 when a limit is hit. See API Reference for the defaults. Beyond that:
- Adaptive release: Queue pressure and Aeron health govern release timing
- Consensus throughput: deployment-specific; current evidence is local and does not establish a production rate
- Cost: in chain-backed mode, every write is a paid settlement
Use Sepolia or local mock mode for development and dry-runs.
Can I transfer content ownership to another wallet?
Not directly. Content is tied to the wallet that created it. Options:
Option 1: Re-publish
- Export content from old wallet namespace
- Re-publish to new wallet namespace (pays write fees again)
- Old content remains (but orphaned)
Option 2: Reference
- Keep content in original wallet
- Create references/links from new wallet namespace
- Cross-wallet references work via composite mounts
Future: Content ownership transfer is a planned feature, allowing wallet-to-wallet transfers with proper authorization.
Roadmap & Contributing
What's coming next?
See Status for what works today and what is planned.
How can I contribute?
- Code: github.com/somarc/jackrabbit-oak (validator) and github.com/somarc/oak-chain-infra (cluster scripts)
- Docs: github.com/somarc/oak-chain-docs-eds
- Feedback: Open an issue
See the project's GitHub repository for contribution guidance.
Still have questions?
- Docs issues: github.com/somarc/oak-chain-docs-eds/issues
- Code issues: github.com/somarc/jackrabbit-oak/issues
- Documentation: Browse the sidebar
- Source Code: github.com/somarc