Verifiable robot experience data.
Register, inspect, license, and independently verify robot-learning episodes.
ActionProof is a provenance and licensing layer for physical-AI and robotics data. It turns a robot episode into an inspectable passport that binds technical metadata, quality evidence, usage rights, and payment to the exact registered bytes.
The POC focuses on the buyer's real decision—not marketplace theater:
Are these the registered bytes? Can my robot use them? What evidence supports the outcome? What am I legally allowed to do after payment?
- Discover task-specific episodes using structured search and compatibility filters.
- Inspect robot embodiment, action space, sensors, timing, outcome evidence, and quality checks.
- Register a JSON, MCAP, ZIP, or LeRobot-compatible episode.
- Commit its SHA-256 digest to Base Sepolia while the raw bytes remain off-chain.
- License it with test USDC and receive a terms-bound receipt.
- Verify a downloaded file locally; one changed byte produces an explicit mismatch.
| Capability | Implementation |
|---|---|
| Episode ingestion | Browser upload with a 250 MB POC limit |
| Structured passport | Versioned actionproof/episode-manifest/0.1 sidecar |
| Off-chain storage | Private Cloudflare R2 object storage |
| Searchable metadata | Cloudflare D1 with generated migrations |
| Integrity | Browser SHA-256 plus independent server rehashing |
| Testnet anchor | Digest included in Base Sepolia transaction calldata |
| Licensing | Circle test-USDC transfer and terms-bound receipt |
| Tamper detection | Local-only digest comparison; raw file never leaves the browser |
| Assisted discovery | AI-suggested tags kept distinct from verified claims |
ActionProof does not claim that a blockchain hash proves a robot was honest. A commitment proves who registered specific bytes and claims at a point in time.
The UI therefore separates:
- Integrity: do the bytes and manifest match the registered commitments?
- Technical readiness: are schema, timing, calibration, and numeric checks valid?
- Outcome evidence: is success publisher-declared, replay-confirmed, or independently attested?
- Compatibility: does the embodiment and action interface match the buyer's target?
- Rights: which immutable license version did the buyer accept?
Authenticity becomes stronger through signed capture, verified organizations, deterministic replay, and independent attestations—not through a single green badge.
Browser
├─ local SHA-256 + metadata extraction
├─ independent tamper verifier
└─ EVM wallet / Base Sepolia
│
▼
Vinext application on Cloudflare Workers
├─ API rehashes finalized upload
├─ D1: manifests + license receipts
└─ R2: private episode bytes
│
▼
Base Sepolia
├─ episode digest commitment
└─ test-USDC payment transaction
Raw robot data never goes on-chain. The public projection contains only sanitized metadata, hashes, quality evidence, license terms, and chain references.
Requirements: Node.js 22.13 or newer.
npm install
npm run devOpen the printed local URL. To test tamper detection, download the sample from the Register screen, verify it, change one byte, and verify it again.
Useful commands:
npm run lint
npm run build
npm run db:generateapp/ Product UI and API routes
contracts/ActionProofRegistry.sol
Terms-bound registry contract for the next phase
db/ D1 schema and bindings
docs/episode-manifest.schema.json
Versioned manifest contract
drizzle/ Generated database migration
public/sample-episode.json Deterministic pick-and-place fixture
This is a proof of concept, not an audited production protocol.
- The live flow anchors the content digest in transaction calldata and stores its terms-bound payment receipt in D1.
- Deploying
ActionProofRegistry.solwill bind episode, terms, payment, and a non-transferable receipt in one contract event. - The POC uses a constrained sample parser; full LeRobot v3 and MCAP parsing is next.
- Organization identity, hardware-backed robot signing, encrypted key release, and disputes require production services.
- Testnet tokens have no monetary value.
- RFC 8785 canonical JSON and RFC 6962 Merkle test vectors.
- LeRobot v3 and MCAP adapters with synchronized episode previews.
- Organization and device-key verification with revocation.
- Contract unit, fuzz, invariant, and third-party audit work.
- Encrypted delivery, buyer-specific access grants, and provenance-preserving derivations.
- Third-party quality attestations and target-policy compatibility benchmarks.
Read CONTRIBUTING.md before opening a pull request. Please report vulnerabilities privately using the process in SECURITY.md; do not disclose them in a public issue.
Licensed under the Apache License 2.0. The sample robot episode is synthetic and included for demonstration.