Documentation

Technical reference for the Data Provenance toolkit.

How It Works

Data Provenance stores cryptographic proofs of data existence, ownership, and lineage on Swarm with optional on-chain anchoring on Base.

Core Concepts

Provenance Record — SHA-256 hash + metadata + timestamp + Swarm reference. Original data is never stored.

Lineage Chain — Linked provenance records tracking updates, derivations, access, transfers.

On-Chain Anchor — Hash registered on DataProvenance contract (Base Sepolia). Blockchain-level immutability.

REST API

Base URL: dataprovenance.app/api/

POST/api/prove
Create provenance record. Hash + metadata in, Swarm reference out.
GET/api/verify/{reference}
Verify record. Returns hash, timestamp, metadata, chain status, lineage.
POST/api/lineage
Add to chain. Requires wallet signature.
GET/api/lineage/{reference}
Full lineage chain for a record.
GET/api/records/{wallet}
All records by wallet. Signature required.

Example

curl -X POST https://dataprovenance.app/api/prove \
  -H "Content-Type: application/json" \
  -d '{"hash":"e3b0c44...","metadata":{"filename":"report.pdf"}}'

# → {"reference":"a1b2c3d4...","receipt_url":"https://dataprovenance.app/r/a1b2c3d4"}

Smart Contracts

ContractNetworkAddress
DataProvenanceBase Sepolia0x1234...5678
ConsentReceiptBase Sepolia0xabcd...ef01

MCP Server

// claude_desktop_config.json
{"mcpServers":{"data-provenance":{"command":"docker","args":["run","-i","--rm","ghcr.io/datafund/swarm-provenance-mcp"]}}}

React Components

import { ProveIt, VerifyIt } from '@dataprovenance/react';

<ProveIt gateway="https://dataprovenance.app/api" onProved={r => console.log(r)} />
<VerifyIt reference="a1b2c3d4..." />