Choosing an Anchoring Strategy

Side-by-side comparison of all four strategies — Public, Private, Hybrid, and Custom — plus a decision tree to pick the right one for your workload.

At a glance

Strategy Chain(s) Cost Verifiable by Setup
Public Polygon Amoy / Mainnet ~$0.000007/record Anyone (Polygonscan) Zero — default
Private Hyperledger Fabric (BYO) $0 (no gas) Network members only Import X.509 cert
Hybrid Fabric + Polygon (both) ~$0.000007/record (EVM only) Internal AND public Import Fabric cert
Custom Any EVM RPC or Fabric profile Depends on chain Depends on chain Manual config

Decision tree

Answer three questions, get a strategy.

Q1. Does your data need to stay inside your own infrastructure for regulatory reasons?
  → YES: continue to Q2
  → NO: use Public (Polygon). Done.

Q2. Do external auditors / regulators / customers also need to verify these records?
  → YES: use Hybrid (Fabric + Polygon). Done.
  → NO: continue to Q3

Q3. Do you have a non-standard chain requirement (Besu, Quorum, Ethereum mainnet, custom Fabric MSP)?
  → YES: use Custom. Done.
  → NO: use Private (Fabric BYO). Done.

Public — Polygon

How it works

Records are queued, batched (up to 256 records) into a Merkle tree, and the tree's root is written to a smart contract on Polygon Amoy (testnet) or Polygon Mainnet. The root is permanent, public, and verifiable on Polygonscan by anyone — including your customers, auditors, regulators, or random third parties.

What you get on-chain

  • blockNumber — Polygon block where the Merkle root was committed
  • transactionHash — full 0x…-prefixed transaction hash
  • batchId — numeric ID assigned by the smart contract
  • merkleProof — array of hashes that lets a verifier reconstruct the root

When to pick Public

  • SaaS, marketplace, or B2C apps where end users need to verify provenance
  • AI-generated content provenance (C2PA, watermarking)
  • Notarization, timestamping, certificate issuance
  • Any workflow where "trust me — it's on Polygon" is stronger than "trust my server"

Private — Hyperledger Fabric (BYO)

How it works

You bring your own Fabric network — peers, orderer, CA. Anchora deploys the anchora-anchor chaincode on a channel of your choosing, authenticates via your X.509 identity (issued by your CA), and writes batches to the chaincode using the fabric-gateway SDK. No gas fees. No external chain. No data leaves your network.

What you get on-chain

  • blockNumberalways null (fabric-gateway doesn't expose block height in submit responses)
  • transactionHash — raw Fabric txID (no 0x prefix)
  • batchId — string (you choose the format)
  • merkleProof — same Merkle proof as Public, just verified against your chaincode's stored root

When to pick Private

  • Banking, insurance, healthcare — data sovereignty + regulatory residency
  • Defense, government — air-gapped or sovereign cloud requirements
  • Pharma — GxP / 21 CFR Part 11 — auditable internal ledger
  • B2B consortium — only members verify, no public footprint

Setup overview

  1. Have a running Fabric network (peers + orderer + CA reachable from Anchora's worker)
  2. Issue an X.509 identity for Anchora (cert + private key)
  3. Create a project in the Console, pick "Private (Fabric BYO)"
  4. Project Settings → Blockchain → import cert + key + connection profile
  5. Anchora deploys the anchora-anchor chaincode on your channel

Full walkthrough: Fabric Setup (BYO) Guide

Hybrid — Both at once

How it works

Same Merkle root, two independent attestations. At batch time, the worker computes the Merkle tree, then submits the root to BOTH your private Fabric chaincode AND Polygon in a single batching pass. Each record's webhook payload carries both anchors. Verification can be done independently against either chain — same hash, same proof.

Why "Hybrid" is more than "anchor twice"

Three reliability features make Hybrid practical at scale:

  • Atomic batch boundary: a record never appears on one chain without the other being attempted in the same pass
  • Dual-anchor retry: if the secondary chain fails (RPC blip, timeout), the primary still succeeds; the secondary back-fills hourly, up to 5 attempts
  • Independent verification: /v1/verify returns separate verified verdicts for primary and dualAnchor — so you know which chain stands and which (if any) doesn't

When to pick Hybrid

  • Bank issuing loan documents: Fabric for internal audit, Polygon proof for the borrower to verify independently
  • Pharma clinical trials: Fabric for sponsor & CRO, Polygon proof for FDA inspection
  • Government records: Fabric for inter-agency, Polygon proof for FOIA / public inspection
  • Any workflow where "internal" and "external" verification paths must coexist

Full guide: Hybrid Mode Guide

Custom — Bespoke chain config

How it works

Manual override. Point at any EVM-compatible RPC (Ethereum Mainnet, Sepolia, Besu, Quorum, BNB Chain, Arbitrum) or any Fabric channel + MSP combination. You provide:

  • RPC URL + chain ID + smart contract address (for EVM)
  • Connection profile + MSP + cert + key (for Fabric)

When to pick Custom

  • You're running Besu / Quorum for an existing consortium
  • You want Ethereum Mainnet for premium attestation (higher gas, deeper Lindy)
  • Your Fabric topology doesn't match a standard profile (custom MSP, multi-org channels)
  • You're prototyping on Sepolia or a private devnet

Switching strategies later

Strategy is a project-level Setting. You can switch a project from Public → Hybrid (or any other combination) without changing your application code — the POST /v1/anchor request body is identical across all strategies. Existing records stay anchored to whichever chain(s) they originally landed on; new records follow the new strategy. There's no migration, no API-key rotation, no SDK update.

Cost comparison

Workload Public Private Hybrid
10K records/month ~$0.07 gas $0 gas ~$0.07 gas
1M records/month ~$7 gas $0 gas ~$7 gas
100M records/month ~$700 gas $0 gas (infra cost only) ~$700 gas

Gas estimates based on Polygon Amoy at ~30 gwei. Mainnet typically 2–5x. Private has no gas but you operate your own Fabric infra. Hybrid pays gas on EVM side only.

Next Steps